博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1696
阅读量:5086 次
发布时间:2019-06-13

本文共 1428 字,大约阅读时间需要 4 分钟。

不错的一题,需要极角排序,看了别人的代码做的。。。。。。计算几何啊~~~

View Code
1 #include 
2 #include
3 #include
4 #include
5 6 const double er = 1e-8; 7 struct point 8 { 9 int index;10 int x,y;11 }p[100];12 int n;13 int res;14 15 int dis(point a,point b)16 {17 return sqrt(1.0*(a.x - b.x) * (a.x - b.x) + 1.0*(a.y - b.y)*(a.y - b.y));18 }19 20 double outer_product(point a,point b,point c)21 {22 return (b.x - a.x) * (c.y - a.y) - (b.y - a.y)*(c.x-a.x);23 }24 25 bool cmp(point a,point b)26 {27 double temp = outer_product(p[res - 1],a,b);28 if(temp > er) return true;29 temp = temp > 0?temp:(-temp);30 if(temp < er&&dis(a,p[res - 1]) < dis(b,p[res -1]))31 return true;32 return false;33 }34 35 int main()36 {37 int cas;38 scanf("%d",&cas);39 while(cas --)40 {41 scanf("%d",&n);42 for(int i = 0;i < n;i ++)43 {44 scanf("%d%d%d",&p[i].index,&p[i].x,&p[i].y);45 if(p[i].y < p[0].y) std::swap(p[i],p[0]);46 if(p[i].y == p[0].y)47 {48 if(p[i].x
< n;res ++)55 {56 std::sort(p+res,p+n,cmp);57 printf(" %d",p[res].index);58 }59 printf("\n");60 }61 62 return 0;63 }

 

转载于:https://www.cnblogs.com/Shirlies/archive/2012/04/12/2443518.html

你可能感兴趣的文章
SmartSql 常见问题
查看>>
Jenkins安装与配置
查看>>
To learn, or not to learn Windows Mobile - that is the question
查看>>
数据库高级应用之事务
查看>>
25-Fibonacci(矩阵快速幂)
查看>>
fastcgi与cgi的区别[转载]
查看>>
理解与模拟一个简单servlet容器
查看>>
Linux高阶命令进阶
查看>>
c++ 插入容器元素(insert)
查看>>
重写List集合的ToString方法
查看>>
localX,mouseX,stageX的区别
查看>>
链表 创建 插入 删除 查找 合并
查看>>
Matlab将变量写入文本文件
查看>>
在JS中创建对象的方式
查看>>
ognl.NoSuchPropertyException(没有对应属性异常)
查看>>
京东金融面试
查看>>
【面试题】反转单链表
查看>>
Jsp学习(四)
查看>>
SQL Cookbook:查询结果排序
查看>>
jQuery DOM节点操作 - 父节点、子节点、兄弟节点
查看>>