二分其實很好考慮對吧,時間越多,滿足的越多,如何judge呢,這個仔細想想還是挺有意思的.
1.左邊的人拿左邊的鑰匙能在這個時間段滿足,那就滿足,對於整體方案來說是最優的
2.如果左邊的對於某把鑰匙不滿足,之後出現了某個位置鑰匙滿足,那麼之前那把鑰匙一定是在這個人的左邊,那麼進而證明右邊的人也一定不會用到這把不滿足的鑰匙.
//#pragma comment(linker, "/stack:102400000,102400000")
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
const
int maxn = 2e3 + 7;
int n, k;
ll a[maxn], b[maxn], p;
bool judge(ll max)
j++;
}if(!flag) return
false;
}return
true;
}void solve()
printf("%i64d\n", left);
}int main()
CodeForces 830C 奇怪的降複雜度
description有n棵竹子,初始時每棵竹子高度都是0,每棵竹子每天長高1m 對於每棵竹子,我們不希望其高度超過a i 如果超過了,我們就會把超過的部分減去 奇怪的是減去之後竹子就不會再長了 我們不希望每天去看一下竹子的情況,希望每隔d天去看一下竹子的情況 本著愛護環境的原則,我們不希望減去的竹...
CodeForces 830C 奇怪的降複雜度
description有n棵竹子,初始時每棵竹子高度都是0,每棵竹子每天長高1m 對於每棵竹子,我們不希望其高度超過a i 如果超過了,我們就會把超過的部分減去 奇怪的是減去之後竹子就不會再長了 我們不希望每天去看一下竹子的情況,希望每隔d天去看一下竹子的情況 本著愛護環境的原則,我們不希望減去的竹...
第二週CodeForces 131A題解
輸入一串字母,如果這串字母只有乙個字母,或者以小寫或大寫開頭後面都是大寫字母,那麼大寫全部變成小寫,小寫全部變成大寫,然後輸出,否則不改變直接輸出。就考慮輸入的字母是否需要改變大小寫,對輸入字串進行判斷。可以用乙個變數k進行判斷結果記錄,如果需要改變,就記為1,否則記為0.最後對k判斷來輸出。ac通...