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

Omni Inspirations

problems & programs ~

統計

留言簿

Friends

閱讀排行榜

評論排行榜

CQTSC 2010 內部白點

題意:
給你N<=100000個點  同樣x坐標的形成豎線段 同樣y坐標的形成橫線段
讓你求出豎線段和橫線段的交點數,包括端點。

做法:
我的做法是先求出非端點的交點 最后答案便是 tot+N

先將數組復制一遍 一個數組按照1關鍵字x 2關鍵字y排序 另一個關鍵字順序反一反
將x或者y離散化 這里以y為例
因為已經按y排過序 所以所有橫線段已經都能得到了(相鄰一段相同y坐標的點屬于同一條線段)
并標記每條橫線段的兩個端點。

然后我們枚舉按x坐標由左邊向右邊的每條豎線段
我們只要求出有多少橫線段與它有交 便是這條豎線段形成的交點數
這等價于求出在當前x坐標的情況下 橫線段的右端點x坐標大于當前豎線段x坐標的線數
這樣就可以用線段樹或者樹狀數組維護y坐標的點(即維護當前還存在的線段)就可以了

如何維護呢?
對于一條豎線段 我們枚舉形成當前豎線的所有點 如果某個點已經是橫線段的結尾 那就從樹中刪除這個y坐標
反之如果是橫線段的開始 那就加入這個y坐標
在枚舉之前當然要求當前線的交點個數:
對于枚舉到的相鄰兩個相同x坐標的點 假設y1<y2  我們求出 [y1,y2)的存在的線段個數 那便是交點個數

這樣就在NLogN時間內解決了此題

ps:發覺我的基礎太差了。。二分查找[y1,y2)的兩個端點時候竟然忘記了 (y2-1)這個坐標事實上可能不存在
所以二分查找找端點的時候掛了。。BS我把

本題加強版是 dhx學長 出的 Religious
 1 #include <cstdio>
 2 #include <algorithm>
 3 using namespace std;
 4 #define n 100005
 5 struct Tpoint
 6 {
 7     #define x0(i) p0[i].x
 8     #define y0(i) p0[i].y
 9     #define nod0(i) p0[i].nod
10     #define x1(i) p1[i].x
11     #define y1(i) p1[i].y
12     #define nod1(i) p1[i].nod
13     int x,y,nod;
14 }    p0[n],p1[n];
15 int N,ny[n],New,T[n],ret=0;
16 bool sta[n],end[n];
17 inline bool cmp0(const Tpoint &a,const Tpoint &b)
18 {
19     return a.y<b.y||a.y==b.y&&a.x<b.x;
20 }
21 inline bool cmp1(const Tpoint &a,const Tpoint &b)
22 {
23     return a.x<b.x||a.x==b.x&&a.y<b.y;
24 }
25 inline int find(int x)
26 {
27     int l=0,r=New;
28     for (int mid=(l+r)>>1;l+1<r;mid=(l+r)>>1)
29     if (ny[mid]<=x)    l=mid;
30     else    r=mid;
31     if (x<ny[r])    return l;
32     return r;
33 }
34 inline int Sum(int x)
35 {
36     int ret=0;
37     for (;x;x-=x&-x)
38         ret+=T[x];
39     return ret;
40 }
41 inline void Add(int x,int delt)
42 {
43     for (;x<=N;x+=x&-x)
44         T[x]+=delt;
45 }
46 int main()
47 {
48     scanf("%d",&N);
49     for (int i=0;i<N;++i)
50     {
51         scanf("%d%d",&x0(i),&y0(i));
52         nod0(i)=i;nod1(i)=i;
53         x1(i)=x0(i),y1(i)=y0(i);
54     }
55     sort(p0,p0+N,cmp0);
56     sta[nod0(0)]=end[nod0(N-1)]=1;
57     for (int i=1;i<N;++i)
58         sta[nod0(i)]=(y0(i)!=y0(i-1));
59     for (int i=0;i<N-1;++i)
60         end[nod0(i)]=(y0(i)!=y0(i+1));
61     ny[++New]=y0(0);
62     for (int i=1;i<N;++i)
63     if (y0(i)!=y0(i-1))    ny[++New]=y0(i);
64     sort(p1,p1+N,cmp1);
65     for (int i=0,k;i<N;i=k)
66     {
67         for (k=i+1;k<N&&x1(i)==x1(k);++k)
68         if (y1(k-1)<y1(k)-1)
69             ret+=Sum(find(y1(k)-1))-Sum(find(y1(k-1)));
70         for (int j=i;j<k;++j)
71         {
72             if (sta[nod1(j)]&&!end[nod1(j)])
73                 Add(find(y1(j)),1);
74             if (!sta[nod1(j)]&&end[nod1(j)])
75                 Add(find(y1(j)),-1);
76         }
77     }
78     printf("%d\n",N+ret);
79     return 0;
80 }
81 

posted on 2010-04-17 20:56 jsn1993 閱讀(311) 評論(0)  編輯 收藏 引用 所屬分類: Data Structures

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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人成狠狠爱综合网| 国产精品欧美经典| 日韩亚洲欧美成人| 日韩亚洲国产精品| 亚洲免费影视第一页| 久久久噜噜噜久久人人看| 亚洲精品美女91| 亚洲欧美在线aaa| 老妇喷水一区二区三区| 欧美性猛交xxxx乱大交退制版 | 一本大道久久精品懂色aⅴ| aa成人免费视频| 久久久久久久97| 国产视频欧美| 亚洲主播在线观看| 亚洲高清一二三区| 欧美国产高清| 韩日视频一区| 免播放器亚洲一区| 欧美一区二区三区电影在线观看| 麻豆精品在线视频| 亚洲国产视频一区二区| 久久精品国产欧美亚洲人人爽| 亚洲影院色无极综合| 欧美极品欧美精品欧美视频| 亚洲欧美日韩一区二区三区在线 | 日韩小视频在线观看| 这里只有精品丝袜| 国产精品99久久久久久久女警 | 亚洲欧美日韩精品在线| 久久综合给合| 国产精品毛片在线| 99精品国产福利在线观看免费 | 欧美xx视频| 亚洲综合日本| 99亚洲一区二区| 国产精品你懂的| 在线综合亚洲欧美在线视频| 狠狠色丁香久久综合频道| 欧美一区二区视频观看视频| 久久久久国内| 一区二区久久久久| 校园春色综合网| 久久成人av少妇免费| 欧美视频一区二区三区| 亚洲欧美日韩国产中文| 在线亚洲免费视频| 久久精品日产第一区二区| 伊人久久大香线蕉av超碰演员| 伊人影院久久| 欧美日韩国产在线观看| 欧美日韩亚洲一区二区三区四区| 亚洲福利视频在线| 欧美激情按摩在线| 欧美黄在线观看| 一区二区三区欧美亚洲| 日韩视频在线永久播放| 国产精品二区影院| 午夜在线观看欧美| 久久av一区二区三区漫画| 在线日韩电影| 99riav国产精品| 欧美屁股在线| 伊人成人开心激情综合网| 欧美成人免费在线视频| 欧美精品一区在线发布| 午夜精品一区二区三区在线播放| 亚洲一区二区网站| 伊人久久大香线蕉综合热线| 亚洲国产三级在线| 国产麻豆精品theporn| 欧美成人一区二区在线| 欧美性猛交xxxx乱大交蜜桃 | 一区二区三区蜜桃网| 国产一区二区高清不卡| 久久久噜噜噜久久狠狠50岁| 欧美中文字幕视频| 9l视频自拍蝌蚪9l视频成人| 欧美一区二区在线看| 亚洲精选在线观看| 亚洲欧美在线一区| 亚洲伦理在线| 香蕉久久精品日日躁夜夜躁| 亚洲精品美女久久7777777| 亚洲欧美欧美一区二区三区| 亚洲经典视频在线观看| 亚洲女性喷水在线观看一区| 亚洲电影成人| 一个色综合导航| 国语自产精品视频在线看8查询8| 亚洲黄网站在线观看| 国内外成人在线视频| 亚洲视频在线一区| 99re热这里只有精品视频| 日韩午夜电影| 国产伦精品一区二区三区免费迷| 亚洲国产精彩中文乱码av在线播放| 国产欧美日韩三级| 99精品热6080yy久久| 亚洲精品字幕| 可以免费看不卡的av网站| 欧美黄在线观看| 亚洲欧美在线看| 欧美成黄导航| 久久精品国产久精国产思思| 免费日韩av片| 久久黄色网页| 国产精品www色诱视频| 亚洲精品视频啊美女在线直播| 伊人婷婷欧美激情| 欧美有码在线观看视频| 欧美一区在线看| 国产精品女主播在线观看| 久久精品在线观看| 国产精品美女久久久久久2018 | 亚洲美女福利视频网站| 欧美成人a视频| 牛牛国产精品| 亚洲高清久久网| 久久婷婷亚洲| 男女精品网站| 亚洲大片免费看| 欧美一区二区在线免费观看| 一区二区电影免费在线观看| 欧美久色视频| 99视频精品在线| 亚洲伊人色欲综合网| 国产精品美女久久久久久免费| 亚洲精品影院| 午夜精品久久| 亚洲精品久久久久久一区二区| 香蕉av777xxx色综合一区| 亚洲精品中文字幕有码专区| 国内成人在线| 亚洲日韩视频| 亚洲专区在线| 国产亚洲一区二区三区| 久久久久久久久久久一区| 牛牛国产精品| 在线综合欧美| 国产欧美综合在线| 久久女同精品一区二区| 亚洲国产一区二区三区高清| 亚洲三级影片| 国产精品久久久久av免费| 久久久久免费视频| 亚洲在线电影| 亚洲麻豆一区| 欧美激情欧美狂野欧美精品| 久久精品人人| 亚洲欧美激情视频| 日韩午夜在线| 亚洲高清资源综合久久精品| 国产精品久久久久久户外露出| 欧美顶级少妇做爰| 久久乐国产精品| 欧美中文在线观看国产| 亚洲一区二区三区在线看| 日韩视频专区| 亚洲美女精品久久| 最新国产成人av网站网址麻豆| 麻豆精品在线观看| 久久久99免费视频| 久久精品30| 久久国产欧美| 黑人操亚洲美女惩罚| 欧美尤物一区| 午夜视频在线观看一区二区三区| 在线视频精品一区| 日韩视频在线一区二区三区| 亚洲国产另类精品专区| 欧美1区视频| 裸体一区二区| 久久综合色播五月| 久久亚洲综合色| 久久久久国产精品麻豆ai换脸| 性欧美18~19sex高清播放| 亚洲自拍16p| 午夜精品免费在线| 亚洲欧美激情视频在线观看一区二区三区| 一区二区三区四区在线| 亚洲视频成人| 亚洲影院色在线观看免费| 一色屋精品视频免费看| 欧美日韩国产综合网| 亚洲综合精品四区| 91久久精品一区二区三区| 女生裸体视频一区二区三区| 狼狼综合久久久久综合网| 久久久精品免费视频| 久久精品九九| 久久综合久久综合九色| 欧美岛国激情| 亚洲精品日韩久久| 在线一区二区三区四区| 亚洲一区二区在线免费观看| 先锋影音一区二区三区| 久久综合狠狠| 欧美精品久久99久久在免费线| 欧美日韩精品二区|