POJ1696-Space Ant
来源:互联网 发布:数组方法的使用 编辑:程序博客网 时间:2024/06/06 02:47
说说这道题的感悟。。这样的题我觉得还是看你的思维是否缜密。。我写这个程序的时候漏洞百出。
在赋值的时候,把差值赋给了下一个初始的angel导致一直WA。。下次一定要先想好再写,否则写的时候漏洞百出。。
#include <iostream>#include <cmath>using namespace std;const double pi = atan2( 0.0 , -1.0 );const double eps = 1e-10;bool res[51];double beangel;struct point{ int x, y; /*void input() { cin >> x >> y; } */ int len() { return x * x + y * y ; }};point p0;point a[51];point dec( point a , point b ){ point c; c.x = a.x - b.x; c.y = a.y - b.y; return c;}int cross( point a , point b){ return a.x * b.y - a.y * b.x;}int sorta( point a[] , int n ){ int flag = 0; double angel = 999, tempang; double angelll, tempanglll; for( int i = 1 ; i <= n ; i ++ ) if( res[i] ) { if( a[i].y >= p0.y ) tempang = atan2( a[i].y * 1.0 - p0.y * 1.0 , a[i].x * 1.0 - p0.x * 1.0 ); else tempang = 2 * pi + atan2( a[i].y * 1.0 - p0.y * 1.0 , a[i].x * 1.0 - p0.x * 1.0 ); tempanglll = tempang; tempang -= beangel; if( tempang < -eps ) tempang += 2 * pi; if( tempang - angel < -eps ) { angel = tempang; flag = i; angelll = tempanglll; } else if( tempang - angel < eps && dec( a[i] , p0 ).len() < dec ( a[flag] , p0 ).len() ) { flag = i; angel = tempang; angelll = tempanglll; } } res[flag] = false; beangel = angelll; p0.x = a[flag].x; p0.y = a[flag].y; return flag;}int main(){int kase, n, i, m, min, f, num[51], temp; cin >> kase; while( kase-- ) { cin >> n; m = n - 1; min = 12354; for( i = 1 ; i <=n ; i ++ ) { cin >> num[i]; //a[i].input(); cin >> a[i].x; cin >> a[i].y; if( a[i].y < min ) { min = a[i].y; f = i;} res[i] = true; } res[f] = false;cout << n;cout << " " << num[f]; p0.x = a[f].x; p0.y = a[f].y; beangel = 0; while( m ) { temp = sorta( a , n ); cout << " " << num[temp]; m--; } cout << endl; } return 0;}
0 0
- POJ1696-Space Ant
- poj1696 Space Ant
- POJ1696-Space Ant
- Poj1696 Space Ant
- poj1696 Space Ant
- poj1696 Space Ant 计算几何
- poj1696 Space Ant 点积,叉积,夹角
- POJ1696 Space Ant 【凸包-ToLeft-Test】
- POJ1696-Space Ant(凸包)
- poj1696 Space Ant(半平面交)
- POJ1696---Space Ant(基础计算几何:极角排序)
- POJ1696 space ant(计算几何,极角排序)
- poj1696 Space Ant (极角排序,叉积)
- poj1696
- poj1696
- poj1696
- Space Ant
- Space Ant
- 对象数组输入与输出
- Uva-111 History Grading 裸最长公共子序列
- c++中的动态联编
- 对象数组求最大值
- C++类实现最大数的输出
- POJ1696-Space Ant
- C#类生成器
- 读枯燥的资料时怎么集中精神?
- 前端高手也不能错过的css常识
- 实现Apache与Tomcat集群和负载均衡
- 完全二叉树(Complete Binary Tree)
- 一步步学习微软InfoPath2010和SP2010--第十二章节--管理和监控InfoPath Form Services(IPFS)(2)--IPFS性能因素
- 【精心推荐】几款极好的 JavaScript 文件上传插件
- 数据库练习