当前位置: 首页 > news >正文

微信能否做门户网站网站专业性免费评价工具

微信能否做门户网站,网站专业性免费评价工具,前端程序员需要掌握哪些基本技术,中国企业500强公司题意#xff1a; 判断凸包是否稳定。 解法#xff1a; 稳定凸包每条边上至少有三个点。 这题就在于求凸包的细节了#xff0c;求凸包有两种算法#xff1a; 1.基于水平序的Andrew算法 2.基于极角序的Graham算法 两种算法都有一个类似下面的语句#xff1a; for(int i0;i 判断凸包是否稳定。 解法 稳定凸包每条边上至少有三个点。 这题就在于求凸包的细节了求凸包有两种算法  1.基于水平序的Andrew算法 2.基于极角序的Graham算法 两种算法都有一个类似下面的语句 for(int i0;in;i) {while(m 1 Cross(ch[m-1]-ch[m-2], p[i]-ch[m-2]) 0) m--;ch[m] p[i];} 这样的话求出来就是最简凸包即点数尽量少的凸包因为Cross 0的情况也被出栈了所以一条凸包边上就会三点共线了。 我们把语句改下把Cross.. 0  改成 Cross.. 0 那么求的就是最繁凸包即可能一条凸包边上包含很多点也属于凸包的点。 即下面的情况 最简凸包即为蓝色的四个点。 最繁凸包求出的是所有蓝点和红点。 作为这个题我们怎么求其实都可以 1.如果求最简凸包我们只需判断总共有多少个点在该凸包边上即可端点也算如果 3 则不符。 2.如果求的是最繁的凸包就不能用上面的判法因为怎么判都只有两个点了这时候可以采用下面的方法 假设要判断的边i那么判断边i和边i-1边i和边i1的夹角是否都为0180。 ----XDruid   代码 这里我用的是Andrew算法 #include iostream #include cstdio #include cstring #include cstdlib #include cmath #include algorithm #define eps 1e-8 using namespace std;struct Point{double x,y;Point(double x0, double y0):x(x),y(y) {}void input() { scanf(%lf%lf,x,y); } }; typedef Point Vector; int dcmp(double x) {if(x -eps) return -1;if(x eps) return 1;return 0; } template class T T sqr(T x) { return x * x;} Vector operator (Vector A, Vector B) { return Vector(A.x B.x, A.y B.y); } Vector operator - (Vector A, Vector B) { return Vector(A.x - B.x, A.y - B.y); } Vector operator * (Vector A, double p) { return Vector(A.x*p, A.y*p); } Vector operator / (Vector A, double p) { return Vector(A.x/p, A.y/p); } bool operator (const Point a, const Point b) { return a.x b.x || (a.x b.x a.y b.y); } bool operator (const Point a, const Point b) { return a.x b.x a.y b.y; } bool operator (const Point a, const Point b) { return a.x b.x a.y b.y; } bool operator (const Point a, const Point b) { return dcmp(a.x-b.x) 0 dcmp(a.y-b.y) 0; } double Dot(Vector A, Vector B) { return A.x*B.x A.y*B.y; } double Length(Vector A) { return sqrt(Dot(A, A)); } double Angle(Vector A, Vector B) { return acos(Dot(A, B) / Length(A) / Length(B)); } double Cross(Vector A, Vector B) { return A.x*B.y - A.y*B.x; } double angle(Vector v) { return atan2(v.y, v.x); }bool OnSegment(Point P, Point A, Point B) { //端点不算return dcmp(Cross(A-P,B-P)) 0 dcmp(Dot(A-P,B-P)) 0; } int ConvexHull(Point* p, int n, Point* ch) {sort(p,pn);int m 0;for(int i0;in;i) {while(m 1 Cross(ch[m-1]-ch[m-2], p[i]-ch[m-2]) 0) m--;ch[m] p[i];}int k m;for(int in-2;i0;i--) {while(m k Cross(ch[m-1]-ch[m-2], p[i]-ch[m-2]) 0) m--;ch[m] p[i];}if(n 1) m--;return m; } Point ch[1006],p[1006];int main() {int t,n,i,j;scanf(%d,t);while(t--){scanf(%d,n);for(i0;in;i) p[i].input();if(n 5) { puts(NO); continue; }int m ConvexHull(p,n,ch);if(m 2) { puts(NO); continue; }for(i0;im;i) {int cnt 0;for(j0;jn;j)if(OnSegment(p[j],ch[i],ch[(i1)%m]))cnt;if(cnt 3) break;}if(i m) puts(YES);else puts(NO);}return 0; } View Code   现在终于对自己的凸包版有了全面的了解了妈妈再也不用担心我用错凸包了。哈哈。 转载于:https://www.cnblogs.com/whatbeg/p/4174944.html
http://www.zqtcl.cn/news/380572/

相关文章:

  • 福州网站建设公司哪个网站可以做前端项目
  • 十二冶金建设集团有限公司网站wordpress安装在哪里
  • 怎么做网站源码wordpress的rss
  • wordpress能不能做企业网站软件技术和计算机网络技术哪个好
  • 甘肃省住房和城乡建设部网站首页ip怎么做网站
  • 怎么开一家网站开发公司百度推广一年大概需要多少钱
  • 小破站下载h5企业模板网站
  • 服务器怎么设置ip做网站凌云seo博客
  • 莱芜四大金刚是谁啊镇江网站优化推广
  • 上海门户网站开发企业号码查询系统
  • 西安做网站设计的公司golang 网站开发 教程
  • 做网站哪些公司专业做app软件开发公司
  • 蒙特网站建设湖北省建设厅网站上岗证查询
  • 宁波网站建设 联系哪家电子商务网站建设过程范文
  • 南宁商城网站建设网站建设的需求文档
  • dedeampz 部署wordpress 网站访问慢如何评价网站是否做的好处
  • 怎样建设个人影视网站设计学专业
  • 没有公司 接单做网站网站建设加盟合作
  • 如何将域名和网站绑定做网站找投资人
  • 网站开发 平台WordPress首页可见
  • 沧州做网站费用打开上海发布
  • 重庆潼南网站建设公司电话网站能调用一些字体
  • 摄影网站设计素材做彩票网站电话多少
  • 开网站公司企业管理网课
  • 相城高端网站建设施工建设集团网站
  • .电子商务网站的开发原则包括网络服务示范区创建情况
  • 网站如何做权重php做网站登陆验证
  • 昆山制造网站的地方网站建设 有聊天工具的吗
  • 自己做网站制作需要多少钱如何免费注册网站域名
  • 如何做网站美化怎样写网站文案