p1443 -【usaco】奶牛跑步2
description
fj的n(1 <= n <= 100,000)頭奶牛們又興高采烈地出來運動了!她們在一條無限長的小路上跑步,每頭牛起跑的位置都不同,速度也不盡相同。
道路中劃出了若干條跑道,以便她們能快速"超車",同一跑道中的任意兩頭牛都不會出現在相同的位置。不過fj不願讓任何一頭牛更換跑道或者調整速度,他想知道如果讓牛們跑足t(1 <= t <=
1,000,000,000)分鐘的話,至少需要多少條跑道才能滿足需要。
input
第一行有兩個數,n和t;
接下來有n行,每一行兩個數,表示一頭牛的位置和速度,其中位置是乙個非負整數,速度為乙個正整數,均不超過10^9。所有牛的開始位置均不相同,因此n頭牛的資料將以位置公升序的方式給出。
output
輸出為乙個整數,表示所需跑道的最小數目,要保證同一跑道中的任意兩頭牛在t時限內(到第t分鐘結束)不會撞到一起。
sample input
5 3
0 1
1 2
2 3
3 2
6 1sample output
3hint
source
usaco
基本 ,平衡樹
首先得到乙個式子,xi+vi*t < xj+vj*t,若j與i滿足這個條件,則j可以放在i後面,與i用乙個跑道,意思是i無論如何都無法再t時間內追上j。但有很多個點滿足,因為把j放入跑道之後,這條跑道的條件就要用j的資訊來判斷了,所以要使損失最小,則應該把j放到所有滿足條件的值最大的那個後面,所以此時應該貪心乙個乙個的加入,用平衡樹來實現查詢,然後刪除這個前驅,加入這個點。若沒有前驅則表示沒有滿足條件的,需增加乙個跑道,此時ans++;
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include11 #include12 #include13 #include14
#define ll long long
15#define rep(i,a,b) for(register int i=a;i<=b;i++)
16#define re register
17#define il inline
18using
namespace
std;
19const
int n=100010;20
int pre[n],cnt[n],ch[n][2
],n,root,tot;
21ll key[n],t;
22il ll gl()
28 il int getx(int x)
29 il void newnode(int
fa,ll v)
34 il void rotate(int
x) 41 il void splay(int x,int
goal) 49}
50if(goal==0) root=x;//
bug51
}52 il void
insert(ll v)
56int now=root,fa=0;57
while(1
) 61 fa=now;
62 now=ch[now][v >key[now]];
63if(now==0
) 69}70
}71 il int
get_pre()
76 il void del(int
x) 80
if(!ch[x][0]&&!ch[x][1
]) 83
if(!ch[x][0
]) 87
else
if(!ch[x][1
]) 91
int l=get_pre();
92 splay(l,0);//
93 ch[root][1]=ch[x][1
];94 pre[ch[x][1]]=root;//
bug95 ch[x][1]=ch[x][0]=cnt[x]=0;//
96return;97
}98int find(ll k)
104return
ret;
105}
106int
main()
117 cout<118return0;
119 }
奶牛專題2 奶牛曬衣服
問題描述 在熊大媽英明的帶領下,時針和它的同伴生下了許多牛寶寶。熊大媽決定給每個寶寶都穿上可愛的嬰兒裝。於是,為牛寶寶洗曬衣服就成了很不爽的事情。聖人王擔負起了這個重任。洗完衣服後,你就要弄幹衣服。衣服在自然條件下用1的時間可以曬乾a點濕度。摳門的熊大媽買了1台烘衣機。使用烘衣機可以讓你用1的時間使...
BZOJ 2199奶牛議會 2 SAT
傳送門 bzoj2199 許可權題?沒關係,你洛上也有 洛谷 usaco11jan 大陸議會the continental cowngress 一道2 sat簡單題。只需要用到2 sat連有向邊的操作,拓撲排序和縮點都不需要,直接暴力找 非常之暴力 include using namespace s...
跑步中悟道
跑步中悟道 這幾年拼命熬夜的結果是,乙個發福 且糟糕的身體。為了乙個精彩的新的輪迴,決定同時要強健自己的體魄,於是這幾天開始在附近的乙個大學校園裡的操場上開始跑步。今晚跑步的過程中,有乙個人跟在我後面,每次聽見愈發逼近的腳步聲,自己就拼盡全力拚命的不讓他超越,結果越跑越快,累得要死,但最後跑下來之後...