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

pku 2274 the race 數據結構好題,各種NC錯誤。。

題意這樣的
有N架飛船,給出他們的起始位置和速度(速度為正數),求
(1)在比賽過程中它們會相遇多少次
(2)輸出排名前10000次的相遇事件

首先先畫畫s-v圖來看,如果按照s遞增的順序來添加直線,那么第i條直線與第j條直線(j<i)能相交的充要條件是vj>vi,這樣子就很簡單了,用任何一種樹結構維護前i條直線的v值,添加第i條直線時產生的相交個數就是vj>vi的直線條數。我是通過離散化+樹狀數組來做的,本想用set,沒想到iterator 不能相減求個數。。囧
第二問做的時候各種NC錯誤,各種NC想法,耗費了大概6個小時。。無語。。
其實就是多條線段求交點的掃描線法的變通。
維護一個堆和Hash表(判重),我偷懶,直接用set
里面存儲的是相鄰兩條直線相交的時刻,每次取出一次事件后更新下排名表和位置表,然后再將新產生的兩個相鄰的直線添加入set。
NC錯誤一:為了消除浮點比較誤差,將分數通分移項,沒考慮乘法時已溢出int。。。
NC錯誤二:更新排名表和位置表的時候,竟然十分詭異地用swap交換兩個排名表中的項。。。。應該是先交換位置表中的項,再更新排名表。解釋下,位置表就是你排第幾,排名表是排第幾的是誰
細心啊細心。。。無語
貼代碼
 1 # include <cstdio>
 2 # include <algorithm>
 3 # include <cstring>
 4 # include <set>
 5 # define N 250005
 6 using namespace std;
 7 # define lowbit(t) ((t)&-(t))
 8 struct node
 9 {
10     int x,v,id;
11 }data[N];
12 int n;
13 bool cmpv(const node &a,const node &b)
14 {
15     return a.v<b.v;
16 }
17 bool cmpx(const node &a,const node &b)
18 {
19     return a.x<b.x;
20 }
21 int arr[N],table[N],ranklist[N];
22 void add(int pos)
23 {
24     while(pos<=n)
25     {
26         arr[pos]++;
27         pos+=lowbit(pos);
28     }
29 }
30 int sum(int pos)
31 {
32     int res=0;
33     while(pos>0)
34     {
35         res+=arr[pos];
36         pos-=lowbit(pos);
37     }
38     return res;
39 }
40 
41 struct cmp
42 {
43     bool operator()(const pair<int,int> &a,const pair<int,int> &b) const
44     {
45         if(((long long)data[a.second].x-data[a.first].x)*(data[b.first].v-data[b.second].v)!=((long long)data[b.second].x-data[b.first].x)*(data[a.first].v-data[a.second].v))
46             return ((long long)data[a.second].x-data[a.first].x)*(data[b.first].v-data[b.second].v)<((long long)data[b.second].x-data[b.first].x)*(data[a.first].v-data[a.second].v);
47         else
48             return ((long long)data[a.first].x*(data[a.first].v-data[a.second].v)+data[a.first].v*(data[a.second].x-data[a.first].x))*(data[b.first].v-data[b.second].v)<
49                    ((long long)data[b.first].x*(data[b.first].v-data[b.second].v)+data[b.first].v*(data[b.second].x-data[b.first].x))*(data[a.first].v-data[a.second].v);
50     }
51 };
52 set<pair<int,int>,cmp> q;
53 int main()
54 {
55     scanf("%d",&n);
56     for(int i=0;i<n;i++)
57         scanf("%d%d",&data[i].x,&data[i].v);
58     sort(data,data+n,cmpv);
59     data[0].id=1;
60     for(int i=1;i<n;i++)
61         data[i].id=(data[i].v==data[i-1].v?data[i-1].id:data[i-1].id+1);
62     sort(data,data+n,cmpx);
63     memset(arr,0,sizeof(arr));
64     int ans=0;
65     for(int i=0;i<n;i++)
66     {
67         ans=(ans+i-sum(data[i].id))%1000000;
68         add(data[i].id);
69         ranklist[i]=table[i]=i;
70     }
71     printf("%d\n",ans);
72     for(int i=1;i<n;i++)
73         if(data[i].v<data[i-1].v)
74             q.insert(make_pair<int,int>(i-1,i));
75     for(int i=1;i<=10000&&!q.empty();i++)
76     {
77         pair<int,int> top=*q.begin();
78         q.erase(q.begin());
79         printf("%d %d\n",min(top.first,top.second)+1,max(top.first,top.second)+1);
80         swap(table[top.first],table[top.second]);
81         ranklist[table[top.first]]=top.first;
82         ranklist[table[top.second]]=top.second;
83         if(table[top.first]!=n-1&&data[top.first].x<data[ranklist[table[top.first]+1]].x&&data[top.first].v>data[ranklist[table[top.first]+1]].v&&cmp()(top,make_pair<int,int>(top.first,ranklist[table[top.first]+1])))
84             q.insert(make_pair<int,int>(top.first,ranklist[table[top.first]+1]));
85         if(table[top.second]!=0&&data[ranklist[table[top.second]-1]].x<data[top.second].x&&data[ranklist[table[top.second]-1]].v>data[top.second].v&&cmp()(top,make_pair<int,int>(ranklist[table[top.second]-1],top.second)))
86             q.insert(make_pair<int,int>(ranklist[table[top.second]-1],top.second));
87     }
88     return 0;    
89 }
90 


posted on 2010-11-04 12:38 yzhw 閱讀(243) 評論(0)  編輯 收藏 引用 所屬分類: data struct

<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導航

統計

公告

統計系統

留言簿(1)

隨筆分類(227)

文章分類(2)

OJ

最新隨筆

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产专区欧美专区| 欧美91福利在线观看| 国产日韩欧美一区| 欧美日韩亚洲一区二区三区四区| 日韩一级精品| 久久精品国产亚洲a| 久久国产精品久久久久久电车| 99re6热只有精品免费观看| 日韩亚洲欧美成人一区| 亚洲国产美女| 中文av一区二区| 久久精品二区三区| 欧美1区2区视频| 日韩视频免费观看| 亚洲一区二区三区欧美| 亚洲午夜视频在线观看| 久久精品视频免费播放| 欧美伦理视频网站| 国产午夜精品一区二区三区欧美 | 欧美丰满高潮xxxx喷水动漫| 美国成人直播| 一本一本久久| 欧美va亚洲va国产综合| 国产日本精品| 亚洲少妇诱惑| 亚洲欧洲一区二区三区久久| 99国产精品久久| 老司机午夜免费精品视频| 欧美国产91| 性欧美18~19sex高清播放| 欧美精品一区二区三区在线播放 | 欧美特黄一级大片| 在线精品国产欧美| 久久久久久9999| 在线一区二区三区四区五区| 欧美成人免费网| 亚洲人成久久| 亚洲精选视频在线| 欧美激情国产日韩| 亚洲免费观看高清完整版在线观看熊| 久久国产精品久久国产精品| 中文精品视频一区二区在线观看| 欧美日韩1区2区3区| 亚洲午夜91| 亚洲性感美女99在线| 国产日本亚洲高清| 裸体丰满少妇做受久久99精品| 久久久av网站| 欧美日韩精品一区视频| 亚洲欧美综合国产精品一区| 亚洲欧美日韩视频一区| 精品不卡一区二区三区| 免费欧美日韩| 欧美日韩爆操| 欧美电影免费观看| 亚洲一区在线免费观看| 亚洲午夜在线观看| 亚洲人成高清| 国产精品免费网站在线观看| 禁断一区二区三区在线| 久久精品99无色码中文字幕| 裸体歌舞表演一区二区| 午夜久久久久| 欧美另类人妖| 欧美暴力喷水在线| 国产女主播视频一区二区| 亚洲国产精品成人一区二区| 国产精品久久久久久亚洲毛片| 久久久久久久综合狠狠综合| 欧美日韩免费观看一区三区| 免费不卡中文字幕视频| 国产精品一区视频网站| 99国产精品久久久久老师| 91久久夜色精品国产九色| 久久国产精品久久w女人spa| 香蕉久久夜色| 国产精品乱码一区二三区小蝌蚪| 亚洲国产专区| 99综合电影在线视频| 欧美激情影院| 日韩亚洲视频| 欧美一区二区视频网站| 国产美女高潮久久白浆| 亚洲在线视频| 免费观看一区| 亚洲小说欧美另类婷婷| 国产精品视频xxx| 欧美一级片一区| 久久综合成人精品亚洲另类欧美| 亚洲国产一区二区三区青草影视| 欧美sm视频| 亚洲一区二区三区视频| 久久综合影音| 亚洲视频999| 一区精品在线播放| 欧美日韩精品| 久久综合伊人77777蜜臀| 亚洲毛片在线观看.| 国产美女精品免费电影| 欧美屁股在线| 欧美99在线视频观看| 亚洲一区三区电影在线观看| 免费视频一区| 欧美在线观看你懂的| 亚洲美女诱惑| 亚洲国产精品一区二区第四页av | 亚洲欧美一区二区精品久久久| 欧美日韩一区二区三区在线| 欧美一区二区三区播放老司机| 欧美大胆成人| 久久久久综合网| 亚洲国产另类久久久精品极度| 欧美精品18+| 亚洲欧美一区二区原创| 欧美激情久久久| 麻豆精品精品国产自在97香蕉| 午夜精品福利在线| 亚洲午夜在线观看视频在线| 亚洲精品久久久久中文字幕欢迎你 | 国产日产亚洲精品系列| 欧美日韩精品一本二本三本| 久久精品一区| 久久国产精品99国产| 亚洲欧美文学| 久久精品99国产精品酒店日本| 性色一区二区| 久久精品伊人| 欧美成人a视频| 99国产精品国产精品久久| 亚洲视频精品在线| 久久国产黑丝| 欧美午夜不卡视频| 亚洲韩国青草视频| 亚洲影院一区| 亚洲国产婷婷综合在线精品 | 亚洲午夜女主播在线直播| 一区二区日韩| 久久亚洲精品一区二区| 亚洲精品一区二区网址 | 欧美激情在线| 亚洲女爱视频在线| 欧美日韩大片| 亚洲国产欧美精品| 欧美在线一二三| 亚洲精品乱码久久久久久按摩观| 亚洲国产午夜| 亚洲综合视频1区| 欧美大片一区二区三区| 国产日韩欧美综合在线| 一区二区三区日韩欧美精品| 久久精品人人做人人爽电影蜜月| 亚洲精品在线三区| 欧美大片免费看| 亚洲日韩欧美视频一区| 欧美成人精品在线| 久久久久成人精品| 国外成人在线| 欧美黄污视频| 欧美区高清在线| 亚洲视频在线观看三级| 中日韩男男gay无套| 国产精品人人爽人人做我的可爱| 中文日韩在线视频| 亚洲精品视频在线| 99精品免费视频| 国产精品视频精品| 久久久久国产一区二区三区四区 | 亚洲精品中文字| 欧美精品久久久久久久久久| 韩国av一区| 日韩天堂在线视频| 狠狠色香婷婷久久亚洲精品| 欧美国产一区在线| 欧美午夜宅男影院| 久久久久久亚洲综合影院红桃| 久久综合国产精品| 亚洲美女免费视频| 亚洲小说欧美另类社区| 在线精品高清中文字幕| 99这里只有精品| 影音国产精品| 午夜一级在线看亚洲| 亚洲一区二区精品| 久久综合国产精品| 欧美亚洲三区| 欧美日韩国产成人精品| 美女啪啪无遮挡免费久久网站| 欧美人与性动交a欧美精品| 久久久久久久久久久成人| 欧美日韩一区二区在线播放| 久久这里只有| 狠狠色综合色区| 欧美自拍偷拍| 玖玖在线精品| 亚洲大片免费看| 久久久久久久久伊人| 免费看的黄色欧美网站| 在线观看欧美成人| 久久综合精品国产一区二区三区| 午夜国产精品视频免费体验区|