uva920 扫描线水题
来源:互联网 发布:数据字典的功能 编辑:程序博客网 时间:2024/06/11 18:55
/**************************************************************题意:给你一些连续的山峰,山峰一边有平行于地面的阳光,求能被阳光照到的山坡的长度思路:先把出入的点按x排序一下,这样按顺序把点连接就是山峰了,然后从阳光来的方向扫描点,算出答案,求和***************************************************************/#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#include <cmath>using namespace std;struct Point{ int x,y; Point(int a=0,int b=0):x(a),y(b){}}point[111];bool cmpx(Point a,Point b){return a.x<b.x || (a.x==b.x && a.y>b.y);}int main(){ int T,n,i,j; double ans; scanf("%d",&T); while(T--) { ans=0.0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %d",&point[i].x,&point[i].y); } sort(point,point+n,cmpx); int py=0; for(i=n-1;i>=0;i--) { while(i>=0 && point[i].y<=py) i--; if(i<0) break; ans+=1.0*(point[i].y-py)/cos(atan2(1.0*(point[i+1].x-point[i].x),1.0*(point[i].y-point[i+1].y))); py=point[i].y; //printf("%d %d ans=%f\n",line[i],point[j].x,ans); } printf("%.2f\n",ans); } return 0;}
0 0
- uva920 扫描线水题
- 扫描
- 扫描
- uva972 Horizon Line 扫描线水题
- 性格扫描
- 键盘扫描
- 隔行扫描
- 扫描工具
- 高级扫描
- 扫描工具
- 扫描目录
- 索引扫描
- 隔行扫描
- 扫描线
- 在线扫描
- 按键扫描
- 扫描端口
- 扫描端口
- Tomcat的获取和安装
- poj-1836
- 【Visual C++】游戏开发笔记十二 游戏输入消息处理(一) 键盘消息处理
- 是什么系列之Avro
- 【Java】如何使用java synchronized进行线程同步
- uva920 扫描线水题
- hdu2053 a/b + c/d
- DelayQueue Demo
- 【Visual C++】游戏开发笔记十三 游戏输入消息处理(二) 鼠标消息处理
- Session机制。
- 【Visual C++】游戏开发笔记十四 游戏画面绘图(四) 华丽的CImage类
- 杭电2503 gcd的应用,因为题目要求最简化的结果
- jQuery监听下拉框选中内容发生改变
- 是开了房间了喀什的肌肤了撒打开附件离开