Wall(hdu 1348)
来源:互联网 发布:知彼手机定位破解版 编辑:程序博客网 时间:2024/04/30 01:47
套用凸包的模板
要注意调用求叉积的函数multi时 所传参数的顺序……在这死了好一会……
#include <stdio.h>#include <algorithm>#include <math.h>#define pi atan(1.0) * 4using namespace std;struct point{int x, y;}p[1100], stack[1100];int top;double dis(point a, point b) {//计算两点之间距离 return (sqrt(1.0 * ((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)))); } int multi(point a, point b, point c){return ((b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x));}int cmp(point a, point b){int m = multi(a, b, p[0]);if(m > 0)return 1;if(m == 0 && dis(a, p[0]) < dis(b, p[0]))return 1;//return 0;}void input(int n){int k = 0;for(int i = 0; i < n; i++){scanf("%d %d", &p[i].x, &p[i].y);if(p[i].x < p[k].x || (p[i].x == p[k].x && p[i].y < p[k].y))k = i;}point temp = p[k];p[k] = p[0];p[0] = temp;sort(p + 1, p + n, cmp);}void graham(int n){stack[0] = p[0];stack[1] = p[1];stack[2] = p[2];top = 2;for(int i = 3; i < n; i++){while(top > 0 && multi(stack[top - 1], p[i], stack[top]) > 0)top --;stack[++top] = p[i];} }int main (void){int t;scanf("%d", &t);while(t --){int n, l;scanf("%d %d", &n, &l);input(n);graham(n);double sum = 0;for(int i = 0; i < top; i++)sum += dis(stack[i], stack[i + 1]);sum += dis(stack[top], stack[0]);sum += 2 * pi * l;printf("%.lf\n", sum);if(t)printf("\n");}return 0;}
0 0
- Wall(hdu 1348)
- HDU-1348 Wall 凸包
- Hdu 1348 Wall 凸包
- hdu-1348 Wall(凸包)
- hdu 1348 Wall(凸包模板)
- hdu 1348 Wall 凸包模板题
- HDU 1348 Wall 凸包的周长
- hdu 1348 Wall (凸包模板)
- [HDU 1348] Wall 凸包周长
- [hdu 1348] Wall · 凸包
- hdu 1348 Wall (凸包模板)
- HDU 1348 Wall(Graham扫描法)
- HDU 4810 Wall Painting
- hdu 4810 Wall Painting
- hdu 4810 Wall Painting
- HDU-4810 Wall Painting
- HDU 4810 Wall Painting
- Wall Painting HDU
- POJ 1287 Networking
- HDU -- 1059 FatMouse' Trade
- SPOJ10606---Balanced Numbers(三进制数位dp)
- POJ -- 1017 Packets
- poj 1019 Number Sequence
- Wall(hdu 1348)
- POJ -- 2231 Moo Volume
- POJ 2421 Constructing Roads (MST)
- 【Java技术点滴】——ThreadLocal封装JDBC事务操作
- ZOJ 1586 QS Network (MST)
- HDU -- 1338 Game Prediction
- zoj 3088 Easter Holidays
- 1 JAVA 类数组
- 移动共享开发(三)应用信息注册