青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Why so serious? --[NKU]schindlerlee

pku1696 點(diǎn)積叉積基礎(chǔ)應(yīng)用

又有好長時間沒寫了解題報告了,保研總算搞定了,月底去武漢,磨槍中....
  1 /* 
  2  * SOUR:pku 1696
  3  * ALGO:computional geometry
  4  * DATE: Tue, 13 Oct 2009 10:42:25 +0800
  5  * COMM:3
  6  * 叉積點(diǎn)積轉(zhuǎn)啊轉(zhuǎn)啊
  7  * */
  8 #include<iostream>
  9 #include<cstdio>
 10 #include<cstdlib>
 11 #include<cstring>
 12 #include<algorithm>
 13 #include<cmath>
 14 using namespace std;
 15 typedef long long LL;
 16 const int maxint = 0x7fffffff;
 17 const long long max64 = 0x7fffffffffffffffll;
 18 #define pr(x) fprintf(stderr, x)
 19 /* #define pr(x) for(;0;) */
 20 const int N = 128;
 21 struct point_t {
 22     int x, y, idx;
 23      point_t() {
 24     } point_t(int a, int b) {
 25         x = a, y = b;
 26     }
 27 } p[N], st[N];
 28 
 29 bool vis[N];
 30 
 31 #define sqr(x) ((x)*(x))
 32 double dist(point_t a)
 33 return sqrt(sqr(a.x) + sqr(a.y)); } 
 34 double dist(point_t a, point_t b)
 35 return sqrt(sqr(a.x - b.x) + sqr(a.y - b.y)); } 
 36 
 37 point_t operator +(point_t a, point_t b)
 38 return point_t(a.x + b.x, a.y + b.y); } 
 39 point_t operator -(point_t a, point_t b)
 40 return point_t(a.x - b.x, a.y - b.y); } 
 41 
 42 int cross_mul(point_t a, point_t b)
 43 return a.x * b.y - a.y * b.x; } 
 44 int cross_mul(point_t a, point_t b, point_t c)
 45 return cross_mul(a - c, b - c); } 
 46 int dot_mul(point_t a, point_t b)
 47 return a.x * b.x + a.y * b.y; } 
 48 int dot_mul(point_t a, point_t b, point_t c)
 49 return dot_mul(a - c, b - c); } 
 50 
 51 double angle(point_t a, point_t b)
 52 {
 53     double val = dot_mul(a, b);
 54     val /= dist(a);
 55     val /= dist(b);
 56     return val;
 57 }
 58 
 59 int n, idx, top;
 60 const int inf = (1 << 29);
 61 void graham()
 62 {
 63     int i, j, k;
 64     memset(vis, 0sizeof(vis));
 65     top = 2, st[0= p[0], st[1= p[1];
 66     vis[0= vis[1= true;
 67     for (i = 2; i <= n; i++) {
 68         double val = -inf;
 69         int idx;
 70         for (j = 2; j <= n; j++) {
 71             if (!vis[j]) {
 72                 int c = cross_mul(st[top - 1], p[j], st[top - 2]);
 73                 double d = angle(st[top - 1- st[top - 2], p[j] - st[top - 1]);
 74                 if (c > 0) {
 75                     if ((d > val) || (d == val && dist(p[j], st[top - 1]) < dist(p[idx], st[top - 1]))) {
 76                         idx = j;
 77                         val = d;
 78                     }
 79                 }
 80             }
 81         }
 82         if (val == -inf)
 83             break;
 84         st[top++= p[idx], vis[idx] = true;
 85     }
 86 }
 87 
 88 int main()
 89 {
 90     int i, j, k, testid;
 91     scanf("%d"&testid);
 92     while (testid-- > 0) {
 93         scanf("%d"&n);
 94         idx = 1;
 95         scanf("%d%d%d"&p[1].idx, &p[1].x, &p[1].y);
 96         for (i = 2; i <= n; i++) {
 97             scanf("%d%d%d"&p[i].idx, &p[i].x, &p[i].y);
 98             if ((p[i].y < p[idx].y) || (p[i].y == p[idx].y && p[i].x < p[idx].x)) {
 99                 idx = i;
100             }
101         }
102         swap(p[1], p[idx]);
103         p[0].idx = 0, p[0].x = 0, p[0].y = p[1].y;
104         graham();
105         printf("%d", top - 1);
106         for (i = 1; i < top - 1; i++) {
107             printf(" %d", st[i].idx);
108         }
109         printf(" %d\n", st[i].idx);
110     }
111     return 0;
112 }
113 

posted on 2009-10-13 15:15 schindlerlee 閱讀(1211) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜激情综合网| 国内一区二区三区在线视频| 久久久www| 欧美日韩亚洲一区二区三区在线观看| 久久这里只精品最新地址| 国产精品毛片va一区二区三区 | 亚洲第一区在线| 亚洲欧美日韩国产中文| 中文一区二区| 欧美精品www| 欧美国产专区| 亚洲二区在线| 久久精品亚洲一区二区| 久久久精品国产99久久精品芒果| 欧美日韩在线播放三区四区| 亚洲国产欧美国产综合一区| 在线观看欧美激情| 久久久综合精品| 免费日韩视频| 曰韩精品一区二区| 久久色在线播放| 欧美二区在线| 亚洲精品资源| 欧美另类一区二区三区| 亚洲黑丝在线| 日韩一级在线观看| 欧美国产免费| 亚洲韩日在线| 在线一区二区三区四区五区| 欧美视频日韩视频| 亚洲免费影视| 麻豆成人在线播放| 亚洲国产日韩一级| 欧美精品福利在线| 中文高清一区| 欧美在线免费| 在线观看视频欧美| 欧美激情一二三区| 99热在线精品观看| 久久国产精品99国产精| 国内精品久久久久久久97牛牛| 久久久精品午夜少妇| 狂野欧美激情性xxxx欧美| 亚洲国产91精品在线观看| 嫩草国产精品入口| 亚洲视频免费看| 久久综合亚州| 99国产精品久久久久久久| 欧美日韩一区三区| 欧美亚洲一区| 欧美激情精品久久久久久黑人 | 久久久久国产一区二区| 亚洲盗摄视频| 亚洲欧美国产一区二区三区| 国产一区二区在线免费观看| 乱人伦精品视频在线观看| 一本色道久久99精品综合 | 亚洲欧美资源在线| 麻豆精品精品国产自在97香蕉| 亚洲日本黄色| 国产精品免费小视频| 久久久久久久网站| 亚洲伦理网站| 免费看黄裸体一级大秀欧美| 日韩亚洲视频| 国语自产精品视频在线看一大j8| 欧美v国产在线一区二区三区| 亚洲视频欧美在线| 欧美激情精品久久久久久久变态 | 欧美另类一区二区三区| 欧美一区二区三区免费看 | 久久久精品一区| 一区二区三欧美| 一区二区亚洲| 国产精品自拍视频| 欧美人体xx| 久热re这里精品视频在线6| 亚洲免费视频网站| 日韩一区二区福利| 欧美激情bt| 久久视频一区| 性久久久久久久久| 亚洲私人影院| 日韩亚洲欧美一区二区三区| 在线国产亚洲欧美| 国产视频亚洲精品| 国产精品日本一区二区 | 欧美jizz19性欧美| 久久精品成人欧美大片古装| 亚洲一区免费视频| 99国产精品国产精品毛片| 亚洲第一色中文字幕| 久久亚洲私人国产精品va媚药| 午夜精品久久久久影视 | 亚洲精品久久嫩草网站秘色| 精东粉嫩av免费一区二区三区| 国产麻豆综合| 国产日韩精品一区观看| 国产精品国产一区二区| 欧美日韩精品中文字幕| 欧美日韩高清免费| 欧美日韩一区二区免费在线观看 | 亚洲区第一页| 日韩小视频在线观看专区| 亚洲激情在线播放| 亚洲激情一区二区| 亚洲毛片网站| 一本色道精品久久一区二区三区| 日韩亚洲视频| 中日韩在线视频| 亚洲女性裸体视频| 性久久久久久久久| 久久久久网址| 欧美a级片网| 亚洲电影免费观看高清完整版在线观看| 欧美成人一区在线| 亚洲第一网站| 一区二区三区久久久| 亚洲自拍偷拍网址| 欧美一级大片在线免费观看| 久久久久久九九九九| 欧美成人精品1314www| 欧美片网站免费| 国产精品视频一| 国产亚洲一区二区精品| 尤物九九久久国产精品的分类| 亚洲国产免费看| 一区二区三区久久网| 亚洲欧美日产图| 看欧美日韩国产| 亚洲精品乱码久久久久久| 9久草视频在线视频精品| 亚洲欧洲久久| 亚洲欧美日韩精品久久| 久久精品视频在线看| 欧美sm视频| 一区二区三欧美| 久久久免费观看视频| 欧美日韩精品一区二区| 国产无遮挡一区二区三区毛片日本| 伊伊综合在线| 亚洲永久免费精品| 久久这里有精品视频| 亚洲精品一区二区在线| 小嫩嫩精品导航| 欧美成人精精品一区二区频| 国产精品裸体一区二区三区| 亚洲成人在线网| 午夜一区二区三视频在线观看| 免费观看成人| 亚洲一区精品在线| 欧美阿v一级看视频| 国产情侣一区| 亚洲视频图片小说| 蜜桃视频一区| 亚洲欧美日韩国产综合| 欧美国产极速在线| 国产一区二区三区高清播放| 一区二区三区国产在线观看| 久久婷婷成人综合色| 中文日韩欧美| 欧美精品啪啪| 亚洲激情在线激情| 久久久欧美精品sm网站| 在线视频精品一区| 欧美成人a∨高清免费观看| 国产午夜精品全部视频在线播放| 夜夜爽99久久国产综合精品女不卡| 久久久久久精| 亚洲欧美在线高清| 欧美日韩中国免费专区在线看| 亚洲国产另类精品专区| 久久狠狠亚洲综合| 亚洲一级片在线看| 欧美日韩一级片在线观看| 亚洲人成毛片在线播放| 久久综合色一综合色88| 性色av一区二区三区红粉影视| 欧美午夜寂寞影院| aa级大片欧美三级| 亚洲激情视频网| 欧美成在线观看| 亚洲福利在线视频| 开心色5月久久精品| 亚洲欧美中文日韩在线| 国产精品视频一二| 性欧美video另类hd性玩具| 在线亚洲成人| 国产精品久久亚洲7777| 亚洲一区二区av电影| 日韩一本二本av| 国产精品盗摄一区二区三区| 亚洲午夜电影网| 亚洲小视频在线观看| 欧美性做爰猛烈叫床潮| 亚洲欧美电影院| 亚洲欧美中日韩| 激情伊人五月天久久综合| 久久综合国产精品台湾中文娱乐网| 久久精品视频在线|