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

徐州市鼓楼区建设局网站中国电信黄页app

徐州市鼓楼区建设局网站,中国电信黄页app,做 理财网站,wordpress更换主题显示不出来原文地址#xff1a;http://blog.csdn.net/suwei19870312/article/details/542281 基本问题#xff1a; 平面上有n个点p1,p2, ..., pn, 要求求出一个面积最小的凸多边形#xff0c;使得这个多边形包含所有平面上的点。 根据算法导论上提供的两个方法做一些介绍#xff1a; …原文地址http://blog.csdn.net/suwei19870312/article/details/542281 基本问题 平面上有n个点p1,p2, ..., pn, 要求求出一个面积最小的凸多边形使得这个多边形包含所有平面上的点。   根据算法导论上提供的两个方法做一些介绍 算法1 Graham扫描法 下面直接给出一段伪代码方便描述 GRAHAM-SCAN(Q) {1. 取出所有点钟y坐标最小的点作为初始点p02. 之后对于所有其他点以p0为中心点集中的所有点按关于p0的极角逆时针排序,形成p1,p2,..pn-13. push(p0,S) 4. push(p1,S)5. push(P2.S)for(i: 3-m){ px nexttoTop(S)py Top(S) do while (如果(py-pi向量)相对于(px-py向量)是向右走的)pop(S)px nextotTop(S)py Top(S)push(pi, S);}return S; }最后S栈中保存了所有凸多边形的顶点集合   下面用图示表示一下算法的过程 1.初始化所有的p0,p1,...pn-1   2.  p0p1,p2入栈    3. 这时候栈顶元素是p2,次栈顶元素p1, 枚举p3, 那么可以看出 p2-p3的向量相对于p2-p1的向量是向右走的所以栈中弹出p2, 压入p3    4. P4入栈由于栈顶元素是p3次栈顶元素是p1, 那么p3-p4向量相对于p1-p3向量是向左走的所以压入p4     5.由于栈顶元素是p4次栈顶元素是p3, 那么p4-p5向量相对于p3-p4向量是向右走的所以弹出p4,压入p5 //xiaoxia版 #include stdio.h #include math.h #include stdlib.h typedef struct {double x;double y; }POINT; POINT result[102]; //保存凸包上的点相当于所说的栈S POINT a[102]; int n,top; double Distance(POINT p1,POINT p2) //两点间的距离 {return sqrt((p1.x-p2.x)*(p1.x-p2.x)(p1.y-p2.y)*(p1.y-p2.y)); } double Multiply(POINT p1,POINT p2,POINT p3) //叉积 { return ((p2.x-p1.x)*(p3.y-p1.y)-(p2.y-p1.y)*(p3.x-p1.x)); } int Compare(const void *p1,const void *p2) //根据p0-p1的极值和p0-p2的极值进行比较如果极值相同则用距离长度比较 {POINT *p3,*p4;double m;p3(POINT *)p1; p4(POINT *)p2; mMultiply(a[0],*p3,*p4) ;if(m0) return 1;else if(m0(Distance(a[0],*p3)Distance(a[0],*p4)))return 1;else return -1; } //寻找凸包的过程p0,p1,p2..的寻找过程在下面main中进行了 void Tubao() {int i;result[0].xa[0].x;result[0].ya[0].y;result[1].xa[1].x;result[1].ya[1].y;result[2].xa[2].x;result[2].ya[2].y;top2;for(i3;in;i){while(Multiply(result[top-1],result[top],a[i])0 top2)top--;result[top1].xa[i].x;result[top1].ya[i].y;top;} } int main() {int i,p;double px,py,len,temp;while(scanf(%d,n)!EOF,n){for(i0;in;i)scanf(%lf%lf,a[i].x,a[i].y);if(n1){printf(0.00/n);continue;}else if(n2){printf(%.2lf/n,Distance(a[0],a[1]));continue;}//这里的目的好像是找出y坐标最小的点之后把他定义为P0 py-1;for(i0;in;i){if(py-1 || a[i].ypy){pxa[i].x;pya[i].y;pi;}else if(a[i].ypy a[i].xpx){pxa[i].x;pya[i].y;pi;}}//swap(a[0],a[p])tempa[0].x;a[0].xa[p].x;a[p].xtemp;tempa[0].y;a[0].ya[p].y;a[p].ytemp;//用叉乘来实现排序的比较 qsort(a[1],n-1,sizeof(double)*2,Compare);a[n].xa[0].x;a[n].ya[0].y;//调用tubao Tubao();len0.0;for(i0;itop;i)lenlenDistance(result[i],result[i1]);printf(%.2lf/n,len);}return 0; }算法学习不断  转载于:https://www.cnblogs.com/Jason-Damon/archive/2011/10/14/2211058.html
http://www.yutouwan.com/news/140849/

相关文章:

  • 邢台哪里建网站凡客资源
  • 网站做标准曲线怎么自己注册域名
  • 科技 杭州 网站建设烟台网站建设ytwzjs
  • 做损坏文档的网站无法打开网页是怎么回事
  • html网站设计模板下载ui设计包括哪些
  • 在建项目人员查询网站wordpress的官方网站
  • 自己制作网站做外贸赚钱吗策划案推广
  • 自动写作文网站如何查看网站开发单位
  • 做网站涉及到哪些广州关键词快速排名
  • 制作网站数据库外贸累网站
  • 网站后台用什么语言网站备案包括空间内容吗
  • 外贸网站商城短剧小程序代理
  • 烟台提供网站设计制作wordpress登录卡死
  • 滨海做网站的公司找个网站怎么那么难
  • 博客做网站网站建设要用什么软件
  • 网站开发常用png私密浏览器免费版在线看小说
  • ps做网站首页效果特效python 有wordpress
  • 太原企业建站模板公司在选择网站时应考虑什么
  • 网站建设 工具seo优化一般包括
  • 如何进行网站关键词优化域名还没备案可以做网站吗
  • 东莞网站建设规范河南省招生网站服务平台
  • 万维网注册域名后怎么导入网站用dw做网页的步骤
  • 百度网站模板免费下载中国建设银行网站首页河西网点
  • 前端做网站如何调接口网站设计尺寸
  • 秦皇岛网站推广价钱深圳市网站哪家做的好
  • 做网站需要icp怎么加入电商
  • 网站建设免费加盟代理如何自己做的网站
  • 对网站和网页的认识室内设计培训机构排名前十
  • 上海美容网站建设dedecms手机网站模板安装教程
  • 莆田外贸网站建设做网站费免图片网站