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

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>
            亚洲人人精品| 欧美精品激情blacked18| 午夜精品久久久久久久99黑人| 黄色一区二区在线| 国产精品尤物| 国产精品蜜臀在线观看| 国产精品永久免费在线| 国产在线视频欧美| 亚洲欧洲一区二区在线播放| 亚洲国产影院| 中文久久乱码一区二区| 欧美伊人久久大香线蕉综合69| 久久精品国产成人| 欧美激情一二区| 亚洲精品久久久蜜桃 | 亚洲美女毛片| 亚洲欧美日韩国产成人| 久久久久久久久伊人| 亚洲第一久久影院| 亚洲视频综合在线| 久久女同精品一区二区| 欧美日韩的一区二区| 国产精品区一区二区三区| 亚洲成人资源网| 亚洲视屏一区| 免费成人高清在线视频| 制服丝袜激情欧洲亚洲| 久久久久久网| 国产精品夫妻自拍| 亚洲国产精品一区二区尤物区| 日韩一级精品| 麻豆视频一区二区| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲狠狠婷婷| 欧美一区二区在线免费观看| 亚洲一区二区三区精品在线观看 | 国产嫩草影院久久久久| 影音欧美亚洲| 亚洲视频在线观看一区| 久久亚洲私人国产精品va| 亚洲精品乱码久久久久久蜜桃91| 久久不射2019中文字幕| 欧美日韩综合不卡| 亚洲精品视频在线观看网站 | 一本久久综合| 欧美精品在线免费播放| 亚洲二区在线视频| 久久免费视频这里只有精品| 午夜精品久久久久久久白皮肤| 亚洲国产老妈| 免费精品99久久国产综合精品| 国产亚洲福利一区| 午夜欧美精品| 亚洲午夜免费福利视频| 欧美日韩亚洲激情| 正在播放欧美一区| 亚洲激情小视频| 欧美a一区二区| 亚洲国产日韩精品| 欧美国产激情二区三区| 久久久999精品免费| 国产精品一区在线播放| 欧美伊人久久久久久午夜久久久久 | 91久久国产自产拍夜夜嗨 | 亚洲另类自拍| 欧美激情精品久久久久久| 亚洲伦理精品| 亚洲精选在线| 欧美亚洲第一页| 一级日韩一区在线观看| 亚洲国产一区二区精品专区| 欧美福利影院| 91久久亚洲| 亚洲精品一区二区三区樱花 | 欧美亚洲免费在线| 狠狠干成人综合网| 噜噜噜躁狠狠躁狠狠精品视频 | 亚洲一区bb| 亚洲一区二区高清| 国精品一区二区三区| 久久久久久久一区二区| 亚洲免费久久| 欧美一区视频在线| 久久精品人人| 99热免费精品| 亚洲一区二区三区四区中文| 国产日韩欧美二区| 欧美mv日韩mv国产网站app| 欧美成年人网站| 亚洲一区二区视频| 欧美专区在线观看| 亚洲看片免费| 欧美一级理论性理论a| 亚洲高清中文字幕| 一区二区欧美在线| 亚洲高清资源| 亚洲欧美日韩成人高清在线一区| 国产一区二区三区在线观看精品| 亚洲国产精品一区二区第一页| 国产精品国产一区二区| 欧美va天堂va视频va在线| 欧美日韩三级视频| 欧美不卡激情三级在线观看| 欧美人妖在线观看| 免费成人黄色片| 国产精品一区一区三区| 亚洲国产日日夜夜| 国产专区欧美专区| 一级成人国产| 亚洲激情欧美| 欧美一级专区| 香蕉成人久久| 欧美日韩国产欧| 欧美成人国产一区二区| 国产欧美在线| 亚洲性夜色噜噜噜7777| 亚洲毛片播放| 嫩草成人www欧美| 免费日韩视频| 狠狠狠色丁香婷婷综合久久五月 | 欧美激情免费在线| 国产精品日韩一区二区三区| 亚洲国产欧美日韩精品| 国产一区二区久久| 香蕉成人啪国产精品视频综合网| 亚洲五月六月| 久久精品女人| 国产精品人人做人人爽人人添| 亚洲肉体裸体xxxx137| 亚洲成人在线网| 久久精品一区中文字幕| 久久久www| 国语对白精品一区二区| 性做久久久久久免费观看欧美| 亚洲一区黄色| 国产精品午夜春色av| 亚洲欧美日韩另类| 香蕉久久久久久久av网站| 国产精品久久久久久久久久久久| 99精品久久久| 亚洲午夜一区二区| 欧美揉bbbbb揉bbbbb| 一区二区三区日韩| 亚洲欧美日韩系列| 国产日韩欧美在线观看| 久久夜色精品国产| 国产真实精品久久二三区| 亚洲欧美日韩中文播放| 欧美中文在线视频| 黄网站免费久久| 美女精品自拍一二三四| 亚洲精品乱码久久久久久| 亚洲一区二区成人在线观看| 国产精品美女久久久久久久 | 欧美国产丝袜视频| 日韩午夜黄色| 欧美一区二区三区喷汁尤物| 国产主播一区二区三区四区| 久久综合色播五月| 亚洲精品影院| 久久国产黑丝| 亚洲精品一区二区网址| 国产精品久久二区| 久久久综合网| 一区二区高清| 免费成人小视频| 亚洲一区二区三区精品在线| 国产亚洲第一区| 欧美激情亚洲精品| 先锋资源久久| 亚洲激情综合| 久久久999精品视频| 99精品热6080yy久久| 国产亚洲激情在线| 欧美日本韩国一区| 欧美制服丝袜第一页| 91久久精品国产91久久性色| 欧美在线观看日本一区| 亚洲人成网站精品片在线观看 | 蜜桃av一区二区| 亚洲一区二区动漫| 亚洲国产精品毛片| 国产亚洲欧美日韩精品| 欧美精品在线看| 久久综合色播五月| 欧美在线高清| av成人黄色| 亚洲国产精品久久久久婷婷884| 欧美一区二区三区婷婷月色 | 亚洲欧美怡红院| 亚洲欧洲一区二区在线观看| 国产精品外国| 欧美日韩免费一区| 欧美a级理论片| 久久久999精品免费| 午夜精品久久久久久久久久久久久| 91久久久久久久久| 亚洲国产成人久久综合| 免费成人性网站| 蜜月aⅴ免费一区二区三区|