這道題是紫書第四章的習題,拖了好久了。其實我這裡我用了取巧的方法:我假設如果過去了1e7秒,還沒有出現所有人認真聽課的情況的話,那麼就永遠不會出現所有人認真聽課的情況了,然後ac了。
關鍵在於一些細節的處理,比如編號從0開始,初始狀態的處理等等。
#includeusing namespace std;
int n,num_awake,num_sleep;
int status[11],a[11],b[11];
bool check(int i)//if the student no.1 is asleep return false,else return true
else
}if(status[i]>a[i])
return false;
}int main(void)
{ int cas=0,ans,temp_awake,temp_sleep;
//freopen("in","r",stdin);
while(cin>>n)
{if(n==0)
break;
cas++;
ans=-1;
num_awake=num_sleep=0;
for(int i=1;i<=n;i++)
{scanf("%d%d%d",&a[i],&b[i],&status[i]);
status[i]--;//easy to take mod,now status[i] is from 0 to a+b(exclusive)
if(status[i]
UVa 12108 特別困的學生
大致題意 上課的模擬題,輸入每個學生清醒的時間 睡覺的時間和起始的時間,每個學生在睡覺前都會看一下是否睡覺的學生比清醒的學生多,是的話就睡 因為睡覺的人少的話很有可能會被罵,睡的人多就不怕了 要罰一起罰,哈哈 輸出最早在哪個時間所有學生都是清醒著的狀態,若沒有,則輸出 1。思路 用乙個結構體表示每個...
UVa 12108 (特別困的學生)
uva 12108這道題是對現實的模擬,特別是對時間的模擬上,要注意時間段和時間點的表達。這道題需要注意的地方,就是對 學生醒來的時刻 學生睡去的時刻 的把握,只要明白了 學生醒來的時刻 time 週期 1 1的話,則time為醒來的時刻,time 週期 1 a 1的話,則time為睡著的時刻。但中...
暴力列舉 uva10132
給出乙個串不同斷點位置分成的不同兩段組的組,求原串。思路 暴力求解,先求出最短串的長和最長串的長相加作為原串的長,然後將所有滿足這個串長得字串各自前後的組合方式都組合一遍,最多組合方式對應的串就是原串啦 include include include include include using na...