UVa 12108 - Extraordinarily Tired Students(模拟+细节处理)
来源:互联网 发布:新加坡 一带一路 知乎 编辑:程序博客网 时间:2024/05/16 11:28
输入每个学生的睡眠-清醒周期和当前状态,每个学生在睡觉前都会检查班里人的状态,仅当睡眠人数严格大于清醒人数时才会睡觉,否则继续保持清醒状态持续一个周期。求学生全部清醒的时刻,不存在则输出-1。
现在看来应该用数组记录状态判重来做这个题。当时用了一个循环上限,一旦达到上限还没全清醒即不存在。
建了两个函数,一个是让全体学生度过1分钟,另一个判定是否全部清醒。在判断一个学生是否睡觉时,一定要注意是严格大于。
#include<iostream>#include<cstring>#define maxn 15#define infinite 1e6using namespace std;int a[maxn],b[maxn],c[maxn];int n,cnt;void next_min(){ for(int i=0;i<n;i++) { c[i]%=a[i]+b[i]; if(c[i]==a[i]&&cnt>=n-cnt)//睡眠人数严格大于清醒人数才能睡觉。 c[i]=0; c[i]++; } return;}bool all_awake(){ cnt=0; for(int i=0;i<n;i++) if(c[i]<=a[i]) cnt++; if(cnt==n)//判断是否全部清醒。 return true; else return false;}int main(){ int t=1; while(cin>>n&&n) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); for(int i=0;i<n;i++) cin>>a[i]>>b[i]>>c[i]; int x; for(x=1;x<infinite;x++) { if(all_awake()) break; next_min(); } if(x<infinite)//到上限就是不存在。 cout<<"Case "<<t<<": "<<x<<endl; else cout<<"Case "<<t<<": -1"<<endl; t++; } return 0;}
0 0
- UVa 12108 - Extraordinarily Tired Students(模拟+细节处理)
- UVA - 12108 Extraordinarily Tired Students(模拟)
- UVA 12108 - Extraordinarily Tired Students
- uva - 12108-Extraordinarily Tired Students
- UVa 12108 - Extraordinarily Tired Students
- UVa 12108 Extraordinarily Tired Students
- UVA-12108 Extraordinarily Tired Students
- uva 12108 Extraordinarily Tired Students
- UVA 12108 Extraordinarily Tired Students 直接模拟,暴力,叹气
- UVa 12108 Extraordinarily Tired Students(特别困的学生)
- UVa 12108 Extraordinarily Tired Students(特别困的学生)
- Uva-12108 - Extraordinarily Tired Students-AC
- 12108 - Extraordinarily Tired Students
- 12108 - Extraordinarily Tired Students
- 12108 - Extraordinarily Tired Students
- UVA12108 Extraordinarily Tired Students 【模拟】
- Problem 026——UVa 12108 - Extraordinarily Tired Students
- UVA - 12108 Extraordinarily Tired Students(特别困的学生)
- Android Baseline小tip
- 11月开始总结
- struts2拦截器
- 归并排序
- 软件工程:(一)软件生存周期与开发模型
- UVa 12108 - Extraordinarily Tired Students(模拟+细节处理)
- 制造业ERP: 生产控制是核心
- yo,开始blog之旅
- Java中的Enumaration和Iterator接口
- RakNet学习(10) -- Connecting
- 通过telent、php深入了解http协议
- 6. C/S实现对等通信
- Android中SQLite应用详解
- javascript 制作时间显示器代码