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

Why so serious? --[NKU]schindlerlee

pku1696 點積叉積基礎應用

又有好長時間沒寫了解題報告了,保研總算搞定了,月底去武漢,磨槍中....
  1 /* 
  2  * SOUR:pku 1696
  3  * ALGO:computional geometry
  4  * DATE: Tue, 13 Oct 2009 10:42:25 +0800
  5  * COMM:3
  6  * 叉積點積轉啊轉啊
  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 閱讀(1205) 評論(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>
            亚洲日本成人网| 久久久福利视频| 欧美亚洲一区在线| 欧美午夜无遮挡| 欧美在线视频一区| 欧美一激情一区二区三区| 亚洲午夜国产一区99re久久| 欧美剧在线免费观看网站| 99精品热视频| 一个色综合导航| 国产精品亚洲综合天堂夜夜| 欧美一区二区在线| 中文在线资源观看视频网站免费不卡| 国产精品网曝门| 欧美专区在线观看一区| 亚洲国产高清一区二区三区| 欧美黄色精品| 欧美亚洲一区二区在线| 欧美一区二区三区四区视频| 亚洲激情啪啪| 日韩亚洲精品在线| 国模套图日韩精品一区二区| 欧美激情1区2区| 欧美日本网站| 久久夜色精品国产| 先锋影音久久久| 亚洲网站视频福利| 先锋影院在线亚洲| 久久亚洲国产精品一区二区| 亚洲精品视频免费在线观看| 欧美一级成年大片在线观看| 久久精品一区蜜桃臀影院| 美女亚洲精品| 国产手机视频一区二区| 亚洲国产精品福利| 国产精品热久久久久夜色精品三区| 久久久久久九九九九| 免费在线亚洲| 亚洲国产成人精品女人久久久| 日韩午夜免费视频| 国产一区在线播放| 9i看片成人免费高清| 国产啪精品视频| 一本色道久久99精品综合| 国产午夜亚洲精品羞羞网站| 99视频精品免费观看| 国内精品视频一区| 欧美ab在线视频| 国产精品视频福利| 久久―日本道色综合久久| 欧美日韩国产限制| 欧美一区二区视频在线| 欧美精品成人91久久久久久久| 欧美一区=区| 欧美日韩在线不卡| 亚洲第一黄网| 亚洲成色精品| 欧美一激情一区二区三区| 在线电影国产精品| 欧美一级视频一区二区| 亚洲性视频网址| 欧美日韩一区二区三区高清| 蜜桃久久精品乱码一区二区| 国产综合欧美| 久久九九99| 一二三区精品| 一区二区毛片| 激情五月综合色婷婷一区二区| 久久激情五月丁香伊人| 久久久久久穴| 亚洲欧美激情视频| 国产精品欧美一区二区三区奶水| 欧美激情第三页| **欧美日韩vr在线| 嫩草成人www欧美| 久久在线免费| 亚洲二区在线| 久久野战av| 亚洲第一二三四五区| 狠狠噜噜久久| 久久激情综合| 久久综合一区二区| 亚洲欧洲一区二区三区| 久久综合久久久| 羞羞色国产精品| 国模叶桐国产精品一区| 久久精品盗摄| 久久亚洲高清| 伊人夜夜躁av伊人久久| 欧美岛国激情| 亚洲七七久久综合桃花剧情介绍| 亚洲国产精品黑人久久久| 午夜亚洲性色视频| 免费日韩一区二区| 亚洲欧洲精品天堂一级| 国产精品av免费在线观看| 一区二区欧美日韩视频| 欧美一区二视频| 狠狠爱综合网| 欧美日韩国产三区| 亚洲一区二区三区激情| 久久在线免费观看视频| 亚洲激情在线观看| 国产精品日韩一区| 久久视频免费观看| 夜夜嗨av一区二区三区网站四季av | 韩国欧美一区| 久久久久久久久久看片| 日韩视频中文| 香蕉视频成人在线观看 | 香蕉免费一区二区三区在线观看 | 亚洲激情av| 欧美高清视频www夜色资源网| 亚洲精品免费看| 亚洲午夜激情| 亚洲高清久久久| 国产精品yjizz| 欧美国产在线视频| 亚洲欧美国产日韩中文字幕 | 亚洲美女视频在线免费观看| 国产午夜精品全部视频在线播放| 美女久久网站| 性伦欧美刺激片在线观看| 亚洲国产美女久久久久| 久久久久久69| 亚洲曰本av电影| 99re66热这里只有精品3直播| 国产精品爽爽爽| 欧美日本三级| 老鸭窝亚洲一区二区三区| 最新亚洲视频| 蜜桃伊人久久| 亚洲综合色噜噜狠狠| 日韩视频一区二区三区在线播放免费观看| 国产精品成人v| 欧美日韩国产小视频在线观看| 久久精品九九| 欧美资源在线观看| 亚洲视频 欧洲视频| 99在线|亚洲一区二区| 亚洲第一区在线| 欧美国产日韩精品免费观看| 久久国产精品99国产精| 久久精品毛片| 午夜日韩激情| 午夜精品久久| 亚洲一区二区三区激情| 亚洲午夜电影网| 99国产欧美久久久精品| 日韩一级在线| 亚洲美女av黄| 宅男精品视频| 在线视频欧美日韩| 亚洲国产日韩综合一区| 国产精品乱看| 国产精品成人一区二区三区夜夜夜 | 欧美性做爰猛烈叫床潮| 欧美性一二三区| 欧美午夜在线观看| 国产精品腿扒开做爽爽爽挤奶网站| 欧美三级小说| 国产欧美日韩精品专区| 国产女精品视频网站免费| 精品白丝av| 亚洲第一福利社区| 99ri日韩精品视频| 亚洲无人区一区| 欧美在线网址| 卡一卡二国产精品| 亚洲第一区中文99精品| 91久久精品美女高潮| 一本一本久久a久久精品综合妖精| 日韩视频免费在线观看| 亚洲女同精品视频| 久久精品噜噜噜成人av农村| 欧美不卡视频一区发布| 欧美日韩色综合| 国产日韩欧美黄色| 亚洲二区免费| 亚洲欧美在线一区二区| 久久九九热re6这里有精品| 亚洲第一天堂av| av成人免费| 久久久久五月天| 欧美精品久久久久a| 国产精品超碰97尤物18| 国内自拍视频一区二区三区| 99精品久久免费看蜜臀剧情介绍| 亚洲一区二区三区在线| 久久视频在线看| 亚洲国产91| 欧美一区二区三区四区夜夜大片 | 久久久久国产精品人| 亚洲精品欧洲精品| 欧美一级成年大片在线观看| 欧美日韩成人在线观看| 国产日韩欧美二区| 亚洲午夜精品网| 男同欧美伦乱| 欧美一级成年大片在线观看|