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

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

<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統計

公告

統計系統

留言簿(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>
            欧美中文字幕在线播放| 欧美二区在线| 宅男噜噜噜66一区二区66| 久久久精品2019中文字幕神马| 亚洲无亚洲人成网站77777| 日韩亚洲欧美高清| 亚洲视频在线一区观看| 性欧美大战久久久久久久久| 一区二区三区不卡视频在线观看| 亚洲精品欧美精品| 蜜桃av一区二区在线观看| 一本色道久久99精品综合 | 亚洲福利视频一区| 亚洲国产精品一区二区www| 日韩一区二区久久| 国产精品福利久久久| 国产综合久久久久久鬼色| 亚洲国产另类精品专区| 噜噜噜在线观看免费视频日韩| 欧美激情视频网站| 久久久久久久久久久成人| 欧美国产精品久久| 欧美性猛交xxxx乱大交退制版| 极品尤物一区二区三区| 性做久久久久久免费观看欧美| 亚洲激情av| 欧美国产日本韩| 亚洲欧洲99久久| 国产精品资源在线观看| 亚洲一区三区在线观看| 91久久精品日日躁夜夜躁国产| 免费在线观看日韩欧美| 在线观看中文字幕不卡| 免费成人你懂的| 男女激情久久| 一区二区不卡在线视频 午夜欧美不卡在| 另类天堂视频在线观看| 久久人人爽人人| 亚洲美女啪啪| 亚洲欧美日韩精品一区二区| 精品成人乱色一区二区| 欧美激情在线| 国产精品大片| 老司机精品导航| 欧美国产在线视频| 亚洲新中文字幕| 亚洲欧美清纯在线制服| 国内久久婷婷综合| 最新国产拍偷乱拍精品| 国产精品第2页| 久久男女视频| 美女国产精品| 午夜伦理片一区| 久热精品视频在线观看| 亚洲午夜精品一区二区| 久久久97精品| 亚洲一区二区成人| 欧美在线一二三四区| 亚洲精品一区二区网址| 亚洲欧美电影在线观看| 99国内精品久久| 亚洲欧洲av一区二区| 99精品99| 欧美成人精品激情在线观看 | 99精品国产在热久久下载| 国产精品久久久久天堂| 欧美成人免费在线观看| 国产农村妇女精品| 91久久久在线| 亚洲国产成人久久综合| 欧美一区二区日韩| 中文日韩在线视频| 欧美精品一区二区高清在线观看| 久久久亚洲综合| 国产精品美女www爽爽爽| 亚洲精品综合精品自拍| 亚洲人成在线播放| 久久五月婷婷丁香社区| 久久精品国语| 国产女人aaa级久久久级| 亚洲一区二区在线播放| 亚洲一区视频| 国产精品普通话对白| 一本色道久久加勒比精品| 日韩视频免费观看| 欧美精品久久99| 亚洲国产天堂网精品网站| 亚洲国产欧美一区二区三区丁香婷| 欧美尤物一区| 久久精品亚洲精品| 国产亚洲在线| 久久精品日韩| 欧美成人免费网站| 亚洲精选在线观看| 欧美极品一区二区三区| 亚洲精品视频在线观看网站| 亚洲精品日韩在线| 欧美日本韩国在线| 日韩午夜精品| 亚洲男人av电影| 欧美视频中文字幕| 亚洲一区二区三区在线播放| 欧美专区福利在线| 国产精品一区二区你懂的| 亚洲影院污污.| 欧美在线播放高清精品| 国产精品一区二区三区观看| 欧美一区二区三区免费看| 久久久精品网| 亚洲电影第1页| 亚洲国产欧美不卡在线观看| 一本大道久久精品懂色aⅴ| 亚洲欧美春色| 欧美成年人网站| 最新中文字幕一区二区三区| 欧美国产欧美综合| 亚洲国语精品自产拍在线观看| 亚洲精品日韩在线观看| 99精品福利视频| 欧美一区二区三区喷汁尤物| 亚洲午夜成aⅴ人片| 久久这里有精品视频| 免费日韩精品中文字幕视频在线| 99国产精品国产精品毛片| 欧美专区日韩专区| 亚洲欧美高清| 国产日韩精品视频一区| 性xx色xx综合久久久xx| 亚洲人成高清| 欧美视频一区二区三区在线观看 | 欧美激情中文字幕一区二区| 欧美在线观看一区二区| 亚洲成人在线视频播放| 亚洲黑丝在线| 国产精品久久久久秋霞鲁丝| 欧美影院在线| 欧美国产日韩免费| 午夜精品久久久久久| 欧美一区精品| 一级成人国产| 久久久在线视频| 亚洲欧美日韩国产综合在线 | 91久久国产综合久久蜜月精品 | 欧美激情欧美激情在线五月| 蜜桃久久精品一区二区| 亚洲欧美日韩一区| 欧美理论视频| 免费成人激情视频| 国产日韩视频| 亚洲网站在线播放| 亚洲精品视频在线观看免费| 亚洲自啪免费| 一本色道综合亚洲| 欧美va亚洲va香蕉在线| 看片网站欧美日韩| 国产精品尤物福利片在线观看| 亚洲破处大片| 99re66热这里只有精品3直播| 在线成人中文字幕| 亚洲欧美日韩直播| 久久国产乱子精品免费女| 国产精品mm| 亚洲欧美三级伦理| 亚洲一区二区三区激情| 亚洲国产综合在线| 在线看片日韩| 你懂的视频欧美| 91久久精品视频| 亚洲午夜性刺激影院| 国产精品影音先锋| 久久蜜桃资源一区二区老牛| 欧美高清在线播放| 一区二区三区精品视频| 国产精品推荐精品| 欧美有码在线观看视频| 欧美激情一级片一区二区| 亚洲精品久久7777| 国产精品福利网| 浪潮色综合久久天堂| 日韩一二三在线视频播| 久久se精品一区二区| 亚洲人成在线播放| 国内精品久久久久影院优| 欧美激情亚洲激情| 亚洲在线观看免费| 亚洲狠狠婷婷| 美女主播一区| 久久不见久久见免费视频1| 亚洲精品乱码久久久久久| 国产欧美日韩另类一区| 欧美精品三区| 欧美国产日韩a欧美在线观看| 久久精品在线视频| 欧美激情一区| 欧美大片91| 日韩视频免费观看| 欧美一区二区三区久久精品茉莉花| 欧美一区二区视频免费观看| 久久在线精品| 亚洲伦理在线|