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

隨筆-21  評論-10  文章-21  trackbacks-0

PKU 1066 是一道感覺很好的題,用同側異側(位置)來表示的話思路會很清晰。

首先要從起點到終點穿過一道墻,等價于起點和終點在墻的異側,這樣就清楚的表示了穿過一道墻的充要條件。

接下來也變得簡單,就是枚舉終點,終點顯然在正方形的邊上。很快能發現他們是一塊一塊的。緊鄰的交點(墻和正方形所交的點)所構成的線段上的點相對墻的位置是同側。因為他們沒有被任何墻分割開。也就不可能異側。

這樣只要分塊枚舉,一塊枚舉只需一個點。




 1 #include<iostream>
 2 #include<cmath>
 3 #include<algorithm>
 4 using namespace std;
 5 double const EPS = 1e-8;
 6 const int INF = 1<<30;
 7 
 8 int dcmp(double x){return x < -EPS ? -1 : x > EPS;}
 9 
10 struct Point{
11     double x,y;
12     Point(){}
13     Point(double a, double b):x(a), y(b){}
14     bool operator<(Point a){return atan2(y - 50, x - 50< atan2(a.y - 50, a.x - 50); }
15 }; 
16 
17 struct Line{Point a, b;};
18 
19 Point P[128], s, t;
20 Line L[36];
21 int n, cnt, best;
22 
23 double xmult(Point p1, Point p2 , Point p0)
24 {
25     return (p1.x - p0.x)*(p2.y - p0.y)-(p2.x - p0.x)*(p1.y - p0.y);
26 }
27 bool same_side(Point p1, Point p2, Line L)
28 {
29     return dcmp(xmult(L.b, p1, L.a) * xmult(L.b, p2, L.a)) >= 0;
30 }
31 
32 int main()
33 {
34     int i, j, ans;
35     best = INF; cnt = 0;
36     P[cnt++= Point(00);
37     P[cnt++= Point(1000);
38     P[cnt++= Point(0100);
39     P[cnt++= Point(100100);
40 
41     cin >> n;
42     for(i = 0; i < n; i++)
43     {
44         cin>> L[i].a.x >> L[i].a.y >> L[i].b.x >> L[i].b.y;
45         P[cnt++= L[i].a;
46         P[cnt++= L[i].b;
47     }
48     cin>> s.x >> s.y;
49 
50     sort(P, P+cnt);
51 
52     for(i = 0; i < cnt; i++ )
53     {
54         ans = 0;
55         t = Point( (P[i].x + P[(i+1)%cnt].x)/2, (P[i].y + P[(i+1)%cnt].y)/2 );
56         for(j = 0; j < n; j++)
57             if(!same_side(s, t, L[j]))ans++;
58         if(ans < best) best = ans;
59     }
60 
61     printf("Number of doors = %d\n", best+1);
62 }

 

 


posted on 2009-07-24 16:20 wangzhihao 閱讀(627) 評論(5)  編輯 收藏 引用 所屬分類: geometry

評論:
# re: pku 1066 Treasure Hunt[未登錄] 2009-09-03 13:42 | SImon
博主我想請問一下
如果我枚舉分塊的兩個端點,這樣應該也可以吧?  回復  更多評論
  
# re: pku 1066 Treasure Hunt[未登錄] 2009-09-03 13:43 | SImon
我還想請問一個問題
你判斷相交的時候為什么不需要快速排斥原理呢?  回復  更多評論
  
# re: pku 1066 Treasure Hunt 2009-09-03 19:01 | logics_space

判斷同異側要避免點在線段上的情況

之所以不要線段相交里的快速排斥原理,見原題的這句話
The interior walls always span from one exterior wall to another exterior wall  回復  更多評論
  
# re: pku 1066 Treasure Hunt[未登錄] 2009-09-03 19:49 | SImon
@logics_space
或許是我對判線段相交不大理解
大牛能解釋一下判斷線段相交的時候為什么要先用排斥原理呢?
有什么是能通過跨越原理但是通不過排斥原理的嗎?

謝謝大牛解惑~  回復  更多評論
  
# re: pku 1066 Treasure Hunt 2009-09-03 20:32 | logics_space
并不是一定要先用排斥原理,也可以不用,
如果你說的是嚴格的跨立,那通過跨立原理的必相交,必通過著排斥原理
如果是非嚴格的跨立(叉積可以==0)比如(0,0) (1,1) 和(4,4)(5,3)能過非嚴格的跨立,但過不了排斥
但(4,0)(0,4)和(3,4)(6,-2)能過排斥,也能過非嚴格的跨立  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产美女精品免费电影| 性欧美大战久久久久久久久| 亚洲自拍偷拍一区| 亚洲三级性片| 久久久噜噜噜久噜久久| 香蕉久久一区二区不卡无毒影院 | 小黄鸭精品密入口导航| 一本色道久久| 欧美1区3d| 亚洲大胆人体视频| 激情91久久| 欧美一区国产一区| 欧美在线免费观看| 国产精品日韩一区二区| 亚洲天堂av在线免费| 亚洲一卡久久| 国产精品国产成人国产三级| 亚洲三级视频在线观看| 亚洲精品视频一区二区三区| 免费不卡亚洲欧美| 亚洲国产成人久久综合| 亚洲精品1区2区| 欧美成人精品在线| 欧美激情第二页| 亚洲精品在线电影| 欧美韩日亚洲| 亚洲伦理中文字幕| 亚洲一区二区三区中文字幕在线| 欧美日本乱大交xxxxx| 夜夜嗨av一区二区三区| 亚洲午夜未删减在线观看| 欧美色另类天堂2015| av不卡在线观看| 亚洲欧美日韩国产一区二区| 国产精品一区一区三区| 久久成人一区| 欧美成人一区在线| 一区二区三区回区在观看免费视频| 欧美激情第1页| 一本色道精品久久一区二区三区| 午夜精品久久久久久久99樱桃 | 你懂的一区二区| 亚洲免费播放| 久久成人亚洲| 亚洲高清免费视频| 欧美日韩精品免费看| 亚洲一区二区三区久久| 久久久999精品免费| 亚洲国产欧美在线人成| 欧美日韩综合不卡| 久久国产成人| 亚洲三级影院| 久久久久成人精品免费播放动漫| 亚洲黄色成人| 国产精品美女久久久| 老司机精品视频网站| 国产精品99久久久久久www| 久久久久国产精品人| 亚洲最新视频在线| 狠狠操狠狠色综合网| 欧美三日本三级三级在线播放| 欧美一区二区精品久久911| 亚洲国产福利在线| 欧美一区在线视频| 一道本一区二区| 在线观看欧美日韩| 国产精品久久久久久久久久直播| 久久综合精品国产一区二区三区| 一本色道久久综合亚洲精品高清| 欧美fxxxxxx另类| 午夜在线成人av| 一本久道久久综合婷婷鲸鱼| 狠狠色丁香久久婷婷综合丁香| 欧美连裤袜在线视频| 久久久久一区| 亚洲欧美在线一区| 一本在线高清不卡dvd| 欧美激情精品久久久久久| 香蕉乱码成人久久天堂爱免费| 亚洲美女视频在线免费观看| 激情一区二区| 国产日韩一区在线| 欧美性一区二区| 欧美激情中文字幕一区二区| 久久蜜桃资源一区二区老牛| 欧美一二三区在线观看| 夜夜精品视频| 亚洲毛片一区二区| 欧美大片一区二区三区| 久久精品免视看| 性欧美办公室18xxxxhd| 亚洲女与黑人做爰| 亚洲永久精品大片| 亚洲午夜免费视频| 亚洲午夜伦理| 亚洲中字在线| 亚洲欧美制服另类日韩| 亚洲一区精彩视频| 亚洲欧美区自拍先锋| 中国成人在线视频| 亚洲亚洲精品三区日韩精品在线视频| 亚洲人成网站影音先锋播放| 亚洲电影免费观看高清| 亚洲大胆在线| 亚洲国内欧美| 亚洲精品影视| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲激情成人网| 亚洲三级视频在线观看| 日韩视频在线你懂得| av成人毛片| 亚洲欧美视频在线观看视频| 亚欧成人精品| 久久久91精品国产一区二区三区 | 久久免费国产精品| 美日韩在线观看| 亚洲成人在线网站| 亚洲精品欧洲精品| 在线视频精品| 先锋影音久久| 麻豆久久精品| 欧美日韩一区在线| 国产女主播一区二区三区| 国产综合香蕉五月婷在线| 伊人久久大香线蕉综合热线 | 久久香蕉国产线看观看网| 麻豆精品在线视频| 亚洲国产精品久久久久| 99在线|亚洲一区二区| 亚洲免费在线观看视频| 欧美专区一区二区三区| 欧美成人黄色小视频| 国产精品av久久久久久麻豆网| 国产视频一区三区| 亚洲精华国产欧美| 午夜激情一区| 免费看精品久久片| 99国内精品久久| 久久精品国产2020观看福利| 欧美国产第一页| 国产日韩欧美综合一区| 亚洲激情综合| 欧美专区日韩专区| 亚洲国产精品va| 午夜精品理论片| 欧美区在线观看| 国产一区二区成人久久免费影院| 最新国产拍偷乱拍精品| 欧美一区二区三区的| 亚洲第一福利在线观看| 亚洲欧美视频在线观看视频| 欧美v国产在线一区二区三区| 国产精品久久久久久久久婷婷| 亚洲高清激情| 欧美自拍丝袜亚洲| 亚洲精品国产无天堂网2021| 久久精品中文字幕一区| 国产精品hd| 日韩视频在线观看国产| 老色批av在线精品| 亚洲女ⅴideoshd黑人| 欧美激情日韩| 亚洲高清久久网| 久久视频这里只有精品| 亚洲天堂网在线观看| 欧美福利一区二区| 亚洲成色777777在线观看影院| 欧美一级黄色网| 99国产精品久久久久久久成人热| 久久综合九色综合久99| 国产专区综合网| 欧美在线网站| 亚洲一区二区三区色| 欧美日韩在线不卡一区| 日韩一级黄色av| 亚洲国产毛片完整版 | 欧美日韩国产黄| 亚洲高清在线观看| 免费亚洲婷婷| 久久久五月婷婷| 亚洲盗摄视频| 欧美成人午夜免费视在线看片| 欧美一二区视频| 国产一区二区在线观看免费| 性欧美精品高清| 亚洲欧洲99久久| 国产免费成人| 欧美专区在线观看一区| 亚洲欧美日韩综合| 国产日韩综合| 久久躁日日躁aaaaxxxx| 久久精品免费播放| 伊人一区二区三区久久精品| 美脚丝袜一区二区三区在线观看 | 免费在线欧美黄色| 亚洲第一免费播放区| 免费在线欧美黄色| 欧美fxxxxxx另类| 一本久久综合亚洲鲁鲁五月天| 亚洲精品视频在线看|