uva - 12108-Extraordinarily Tired Students
来源:互联网 发布:linux 远程登录oracle 编辑:程序博客网 时间:2024/06/05 17:03
由于数据范围很小,所以是一个纯模拟题,没什么技术含量,需要注意的时候如果十年到了 所有 周期相乘的那个数还没跳出循环,就说明没有正解。
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define MAXD 10 + 5struct Student{ int A; /*醒A分钟*/ int B; /*睡B分钟*/ int C; /*当前处于的周期时间*/ int D; /*周期长度*/ int is_sleep; /*是不是正在睡觉*/}student[MAXD];int n;void display(){ printf("======================\n"); for(int i = 0 ; i < n ; i++) printf("%d %d %d %d\n",student[i].A,student[i].B,student[i].C,student[i].is_sleep);}int main(){ int Case = 1; while(scanf("%d",&n) && n){ int sleep = 0,awake = 0; /*睡觉的人数,清醒的人数*/ int ALL = 1; for(int i = 0 ; i < n ; i ++){ scanf("%d%d%d",&student[i].A,&student[i].B,&student[i].C); student[i].D = student[i].A + student[i].B; if(student[i].C <= student[i].A){ awake ++; student[i].is_sleep = 0; } else{ student[i].is_sleep = 1; sleep ++; } ALL *= student[i].D; } int time ; /*当前时间*/ int ok = 0; for(time = 1 ; time <= ALL ; time ++){ if(awake == n) { ok = 1; break; } int t_sleep = sleep ,t_awake =awake; for(int i = 0 ; i < n ; i++){ student[i].C ++; if(student[i].C == (student[i].D + 1)){ student[i].C = 1; student[i].is_sleep = 0; awake ++; sleep --; } else if((!student[i].is_sleep) && (student[i].C == student[i].A + 1)){ if(t_sleep > t_awake){ student[i].is_sleep = 1; awake --; sleep ++; } else student[i].C = 1; } } } if(ok) printf("Case %d: %d\n",Case++,time); else printf("Case %d: -1\n",Case++); } 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-AC
- UVA - 12108 Extraordinarily Tired Students(模拟)
- 12108 - Extraordinarily Tired Students
- 12108 - Extraordinarily Tired Students
- 12108 - Extraordinarily Tired Students
- UVa 12108 - Extraordinarily Tired Students(模拟+细节处理)
- UVa 12108 Extraordinarily Tired Students(特别困的学生)
- Problem 026——UVa 12108 - Extraordinarily Tired Students
- UVA - 12108 Extraordinarily Tired Students(特别困的学生)
- UVa 12108 Extraordinarily Tired Students(特别困的学生)
- UVa 12108 HDU 2932 Extraordinarily Tired Students [Ad Hoc]
- uva 12108 Extraordinarily Tired Students(特别困的学生)
- Android学习之路
- fiddler2工具使用
- 数学之路-python计算实战(20)-机器视觉-拉普拉斯算子卷积滤波
- jncbjfgc
- ACE在windows下的编译及配置(VS2010)
- uva - 12108-Extraordinarily Tired Students
- BOOST 在windows的编译及配置(VS2010)
- NYOJ 205 求余数
- 怎么批量把jpg图片转换成pdf
- JDK并发工具包CompletionService和ExecutorCompletionService的好处和使用场景
- POJ 3013 Big Christmas Tree(最短路Dijkstra+优先队列优化,SPFA)
- 第二十一章 TCP的超时与重传
- Linux安装配置php--搭建网站(4)
- 控制执行流程,初始化与清理-java编程思想-第4、5章