題意:有一堆電影,按1-n順序排,有m次操作,每次詢問第ai個電影之前有多少個電影,然後將其抽出放在堆頂。
思路:pos陣列儲存位置(倒序排列,便於更新)
#include#include#include#includeusing namespace std;
const int maxn=100010;
const int max=200010;
int n,m;
int tree[maxn*2],pos[maxn];
void update(int x,int val)
}int getsum(int x)
return sum;
}int main()
int cur=n;
bool first=true;
for(int i=0;i>x;
if(first)first=false;
else cout<<" ";
cout<
UVA1428樹狀陣列
當時做的時候就是想的一邊插入一邊統計前後比它大的數的個數和比他小的個數,其實就差了乙個點沒想到,只要再深入一點就做出來了,唉,看來一定要思考,深入思考。先正向插入樹狀陣列,一邊插入一邊統計,然後再反向插入一邊,一邊插入一邊統計 include include include using namesp...
UVA1428 Ping pong 樹狀陣列
uva1428 ping pong 樹狀陣列 題目鏈結 題目大意 有n個人,每個人都有乙個技能值ai,現在要開展桌球比賽,要求要有兩個選手和乙個裁判,要求裁判需要在兩名選手的中間而且技能值也是在兩名選手的中間,問可以開展多少場比賽。解題思路 對於第i個選手當裁判的話,設它前面位置的選手有ci個技能值...
uva 1428 Ping pong (樹狀陣列)
題意 一條街道上有n個選手,他們要打桌球賽,每個人有乙個自己的skill rank,且是n個不同的數。每場比賽需要乙個裁判,要求這個裁判的skill rank不能高於也不能低於這兩個選手,且在街上住的位置必須在兩個選手之間。問可以組織多少場比賽。開始想到了可以用樹狀陣列處理每個人前面有多少sr sk...