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

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>
            亚洲欧美国产精品专区久久| 亚洲人体一区| 久久精品日韩欧美| 亚洲免费影视| 欧美在线|欧美| 久久伊人免费视频| 麻豆精品在线视频| 欧美高清一区| 国产精品a级| 国产视频观看一区| 国内成人在线| 亚洲精品视频一区二区三区| 99精品国产在热久久| 亚洲视频狠狠| 六月婷婷一区| 亚洲乱码国产乱码精品精可以看 | 亚洲欧美综合另类中字| 欧美一区在线直播| 老司机午夜免费精品视频| 欧美成人一区二区三区在线观看| 欧美激情视频网站| 国产精品国产自产拍高清av| 好吊日精品视频| 在线一区二区三区四区五区| 亚洲欧美国产日韩天堂区| 久久午夜电影| 宅男噜噜噜66一区二区66| 久久精品国产一区二区三区| 欧美久久久久久蜜桃| 久久综合伊人77777蜜臀| 欧美午夜宅男影院在线观看| 久久久久久高潮国产精品视| 欧美另类videos死尸| 国产精品一区二区久久精品| 亚洲第一在线视频| 午夜一级在线看亚洲| 亚洲国产精品第一区二区| 亚洲欧洲在线一区| 久久精品一区二区三区四区| 国产精品久久97| 日韩午夜在线播放| 理论片一区二区在线| 亚洲综合色在线| 欧美日韩高清区| 亚洲激情网址| 六十路精品视频| 久久国产福利| 国产一区二区观看| 亚洲中字在线| 亚洲精品在线免费| 欧美99在线视频观看| 狠狠噜噜久久| 久久久精品一区二区三区| 亚洲一区二区在线免费观看| 欧美日韩一区在线观看| 最新国产乱人伦偷精品免费网站| 另类图片综合电影| 久久久久久国产精品mv| 韩国v欧美v日本v亚洲v| 久久国产精品99国产| 亚洲永久精品大片| 国产美女精品视频| 午夜在线电影亚洲一区| 亚洲一本视频| 国产九九精品视频| 久久精品国产在热久久| 亚洲免费一在线| 国产一区二区剧情av在线| 欧美综合国产| 欧美一级淫片aaaaaaa视频| 国产精品视频观看| 午夜精品视频一区| 香蕉国产精品偷在线观看不卡| 国产欧美丝祙| 久久综合久久综合这里只有精品 | 久久精品国产欧美激情| 国产亚洲一区精品| 麻豆国产精品va在线观看不卡| 久久精品国亚洲| 亚洲国产一区二区在线| 亚洲精品久久视频| 国产精品午夜国产小视频| 久久久精品日韩欧美| 你懂的国产精品| 亚洲综合色自拍一区| 欧美一二三区在线观看| 伊人精品视频| 国产精品视频九色porn| 一区二区黄色| 噜噜噜在线观看免费视频日韩| 麻豆成人在线| 亚洲一区二区三区四区五区午夜| 亚洲女优在线| 亚洲国内自拍| 亚洲男人的天堂在线aⅴ视频| 一色屋精品视频在线看| 亚洲久久在线| 黄色成人av在线| 亚洲精选在线观看| 国产亚洲欧美日韩日本| 亚洲激情第一页| 国产精品自拍视频| 亚洲国产成人91精品| 国产精品尤物福利片在线观看| 欧美成人精品福利| 国产精品国产三级国产专播品爱网 | 亚洲一级片在线观看| 在线看片成人| 亚洲综合久久久久| 亚洲精品日韩精品| 久久精品三级| 欧美一级大片在线观看| 欧美国产先锋| 欧美.www| 国产在线观看精品一区二区三区| av成人激情| 99国产精品99久久久久久| 欧美中文字幕| 欧美亚洲专区| 欧美三区在线| 亚洲三级视频| 亚洲欧洲精品一区二区三区不卡| 制服丝袜激情欧洲亚洲| 最新精品在线| 老妇喷水一区二区三区| 久久精品三级| 国产私拍一区| 欧美一级精品大片| 性久久久久久久久久久久| 欧美人与禽猛交乱配视频| 亚洲第一福利社区| 亚洲国产免费| 久久综合九色综合欧美就去吻 | 午夜精品理论片| 欧美午夜一区二区福利视频| 亚洲国产二区| 亚洲精品欧洲精品| 欧美精品v国产精品v日韩精品| 欧美国产亚洲另类动漫| 在线不卡视频| 老巨人导航500精品| 欧美国产日韩视频| 亚洲黄色片网站| 欧美激情视频一区二区三区免费| 欧美激情一区二区三区在线视频 | 亚洲精品日韩在线| 亚洲一区二区三区在线| 亚洲欧美日韩一区在线| 国产精品久久久久久久一区探花| 99国产精品久久久久久久成人热| 一区二区三区国产在线| 欧美片第1页综合| 日韩亚洲不卡在线| 亚洲午夜视频在线观看| 国产精品爱啪在线线免费观看 | 久久婷婷国产综合国色天香| 国产综合网站| 美日韩在线观看| 欧美激情视频一区二区三区在线播放| 在线播放国产一区中文字幕剧情欧美| 蜜臀av在线播放一区二区三区| 亚洲人成网站999久久久综合| 夜夜嗨av一区二区三区网页| 欧美日韩无遮挡| 欧美一级成年大片在线观看| 免费成人网www| 一本久久综合亚洲鲁鲁| 国产精品久久网| 久久精品麻豆| 亚洲伦理在线| 久久免费偷拍视频| 99视频热这里只有精品免费| 国产乱码精品| 欧美不卡高清| 亚洲欧美日韩在线不卡| 欧美国产高潮xxxx1819| 亚洲欧美激情视频| 亚洲大片免费看| 欧美视频日韩| 麻豆亚洲精品| 亚洲私人影院| 亚洲第一页自拍| 亚洲一区二区三区免费视频 | 国产亚洲人成a一在线v站| 久久综合国产精品台湾中文娱乐网| 亚洲七七久久综合桃花剧情介绍| 欧美在线精品免播放器视频| 亚洲精品一区二区三区福利| 国产区精品在线观看| 欧美激情视频给我| 久久精品国产96久久久香蕉| avtt综合网| 91久久精品一区二区三区| 久久三级福利| 欧美亚洲在线观看| 亚洲一区二区三区激情| 亚洲精品一区二区三区婷婷月 | 国产精品亚洲综合色区韩国| 欧美成人一区二免费视频软件| 欧美一区二区三区另类|