H - Windmill Animation
来源:互联网 发布:电脑编程有没有女孩 编辑:程序博客网 时间:2024/05/16 14:34
/* 赛后ZC AC,做两个射线,判断一下偏移角和点在射线的方向即可。 感觉挺水的..... 比赛的时候没写出来.... 态度很重要....*/#include <cstdio>#include <iostream>#include <cmath>#define pi 3.1415926using namespace std;int t,m,s,I;double A;int i,j;struct Point{ double x; double y;}P[30],b,a,ta;double dis(Point a){ return sqrt(a.x*a.x+a.y*a.y);}double dmu(Point aa,Point bb){ return aa.x*bb.x+aa.y*bb.y;}double xmu(Point aa,Point bb){ return aa.x*bb.y-aa.y*bb.x;}int main(){ cin>>t; int nca; int o; while(t--){ scanf("%d%d%d%d%lf",&nca,&m,&s,&I,&A); for(i=1;i<=m;i++) scanf("%d%lf%lf",&j,&P[i].x,&P[i].y); double fd=(A/180.0)*pi; a.x=cos(fd); a.y=sin(fd); b.x=-a.x; b.y=-a.y; o=I; int ans; printf("%d ",nca); int f=0; for(j=1;j<=s;j++){ double M=-360.0; //printf("oa:%.1lf %.1lf ob:%.1lf %.1lf\n",a.x,a.y,b.x,b.y); for(i=1;i<=m;i++){ if(i==o || i==I) continue; ta.x=P[i].x-P[I].x; ta.y=P[i].y-P[I].y; double tt=xmu(a,ta); //printf("ta:%.1lf %.1lf\n",ta.x,ta.y); if(tt>0){ double cdu=dmu(a,ta)/dis(a)/dis(ta); //puts("1"); if(M<cdu){ M=cdu; f=1; ans=i; } } else if(tt<0){ double cdu=dmu(b,ta)/dis(b)/dis(ta); if(M<cdu){ M=cdu; f=2; ans=i; } } } o=I; I=ans; if(j!=s) printf("%d ",ans); else printf("%d\n",ans); if(f==1) { b.x=P[o].x-P[I].x; b.y=P[o].y-P[I].y; a.x=-b.x; a.y=-b.y; } else { a.x=P[o].x-P[I].x; a.y=P[o].y-P[I].y; b.x=-a.x; b.y=-a.y; } } }}/*21 5 5 1 451 -1 12 1 13 0 04 -1 -25 1 -2*/
0 0
- H - Windmill Animation
- hdu 4491 Windmill Animation
- hdu4491 Windmill Animation (几何)
- hdu4491 Windmill Animation(计算几何)
- UVALive 6179 Windmill Animation 解题报告
- 简单计算几何 hdu-4491 Windmill Animation
- hdu 4491 Windmill Animation(几何+模拟)
- UVALive 6179 Windmill Animation 规律题
- animation
- animation
- Animation
- Animation
- Animation
- Animation
- Animation
- Animation
- Animation
- Animation
- 重写equals方法的同时为什么要重写hashcode方法
- 01背包问题-状态d[i][j],f[i][j],滚动数组--java实现
- ccd和cmos的区别
- Java虚拟机原理、内存分配和回收机制
- Java多线程学习
- H - Windmill Animation
- 经典SQL--求一年有多少天
- Java SSH框架学习(入门)
- iOS虚拟键盘上添加动态按钮
- 八码数问题
- 网络配置管理
- 字符串的存储方式以及静态存储区域、栈、堆
- 【字符串】Count and Say
- 二叉树重建