poj1696Space Ant(逆时针螺旋形)
贪心做法,没次找最外面的点,也就是相对前面那条线偏转角度最小的点,除第一个点需要找到最下面的点即Y坐标最小,其余的每次进行极角排序。
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<vector>
#include<cmath>
#include<queue>
#include<set>
using namespace std;
#define N 55
#define LL long long
#define INF 0xfffffff
const double eps = 1e-;
const double pi = acos(-1.0);
const double inf = ~0u>>;
int o[];
struct Point
{
int x,y;
Point(double x=,double y=):x(x),y(y) {}
int id;
}p[N];
int cc;
typedef Point pointt;
pointt operator + (Point a,Point b)
{
return Point(a.x+b.x,a.y+b.y);
}
pointt operator - (Point a,Point b)
{
return Point(a.x-b.x,a.y-b.y);
}
double dis(Point a)
{
return sqrt(1.0*a.x*a.x+a.y*a.y);
}
int cross(Point a,Point b)
{
return a.x*b.y-a.y*b.x;
}
int mul(Point p0,Point p1,Point p2)
{
return cross(p1-p0,p2-p0);
} bool cmp(Point a,Point b)
{
if(mul(p[cc],a,b)==)
return dis(a-p[cc])<dis(b-p[]);
else
return mul(p[cc],a,b)>;
}
int main()
{
int t,i,n;
cin>>t;
while(t--)
{
scanf("%d",&n);
for(i = ; i <= n ;i++)
{
scanf("%d%d%d",&p[i].id,&p[i].x,&p[i].y);
}
int tmp = ;
for(i = ; i <= n; i++)
if(p[tmp].y>p[i].y)
{
tmp = i;
}
swap(p[],p[tmp]);
int g = ;
o[++g] = p[].id;
cc = ;
for(i = ;i <= n; i++)
{
sort(p+i,p+n+,cmp);
o[++g] = p[i].id;
cc = i;
}
printf("%d",g);
for(i = ;i <= g; i++)
printf(" %d",o[i]);
puts("");
}
return ;
}
poj1696Space Ant(逆时针螺旋形)的更多相关文章
- Codeforces Round #593 (Div. 2)D(螺旋形模拟)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;vector<int>po[100 ...
- LintCode-381.螺旋矩阵 II
螺旋矩阵 II 给你一个数n生成一个包含1-n^2的螺旋形矩阵 样例 n = 3 矩阵为 [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 标 ...
- Spiral Matrix螺旋遍历矩阵
假定有: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 这样一个数组矩阵,现要求对其进行顺时针方向螺旋形从外至内地遍历,即输出: [1,2,3,6,9,8,7,4 ...
- AutoCAD中的螺旋究竟是什么螺旋?
AutoCad从很早的时候就开始提供了螺旋线的功能,它的用法相对简单,非常适合用来对等距螺旋的理论进行演练. 选择螺旋线工具,首先画出一个基准圆,再向内(或向外)移动鼠标,拖出一个旋转3个周期的螺旋. ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
- 错觉-Info:让你难以置信的视错觉
ylbtech-错觉-Info:让你难以置信的视错觉 1.返回顶部 1. 看下图:如果你看到舞者逆时针旋转说明你用左脑,如果看到顺时针旋转说明你用右脑思维. 据说这是耶鲁大学五年的研究成果. 下图 ...
- Atitit 常用比较复杂的图像滤镜 attilax大总结
Atitit 常用比较复杂的图像滤镜 attilax大总结 像素画滤镜 水彩油画滤镜 素描滤镜 梦幻镜 特点是中央集焦,周围景物朦化微带光晕,使人产生如入梦境的感觉.常用于拍摄婚纱.明星照,也用于其它 ...
- 炉石传说 C# 设计文档(序)
经过3个月的开发,有很多感触. 以前一直以为技术是开发成败的第一因素,现在发现,等到你代码写的时间够长,经验够丰富,什么功能都能随手完成,对于业务的分析能力变成了第一位. 炉石山寨版的BS版本用到的H ...
随机推荐
- App store 如何使用 promo code | app store 打不开精品推荐和排行榜
1. app store 如何使用 promo code: 在app store的 右下角精品推荐标签页,拉到最下面 点击“兑换” ,跳转到新的页面,输入兑换码,然后右上角“兑换”,程序开始自动下载并 ...
- 收集 关于php的博文
1. 小狼的世界: 浅谈用php实现mvc:http://www.cnblogs.com/cocowool/archive/2009/09/08/1562874.html 关于MVC的定义和解释,可以 ...
- jquery函数和javascript函数的区别
一.窗口加载:http://www.w3school.com.cn/js/js_library_jquery.asp 在 JavaScript 中,您可以分配一个函数以处理窗口加载事件: JavaSc ...
- git学习相关资料
入门还是廖大师的博客. 搭建git服务器: http://blog.csdn.net/code_style/article/details/38764203
- Ajax案例:简易的购书网页
****使用Ajax可以不需要刷新整个页面,而使局部页面更新的技术: ****JSON是JavaScript得原生格式,JavaScript中处理JSON数据不需要特殊的工具或架包,其规则很简单,对象 ...
- JAVAWeb使用POI做导出Excel
一.需要了解的API ①HSSFWorkBook //代表一个Excel文件 ②HSSFSheet //代表一个表 ③HSSFRow //代表一个表中的某一行 ④HSSFCell //代表一个表中的某 ...
- 字符串转Json对象
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web.S ...
- SqlSever基础 union 联合查询,厉害的并集 重复项只显示一个 两个查询结果并在一起后排序
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- ruby学习总结04
1.类和实例的关系 使用[实例.class]查看某个对象属于哪个类 使用[实例.instance_of(类名)]判断该实例是否属于某个类 使用[实例.instance_methods]查看类的所有实例 ...
- maven入门教程
一.Maven 是什么? Maven 英文名称:专家,由名字可见,这个工具野心非常大.有人说他是"构建工具",一个用来把源代码构建成可发布的构件的工具.也有人说是项目管理工具. 官 ...