题目大意:

课堂上有n(n<=10)个学生,每个学生都有一个“睡眠-清醒“”周期,其中第i个学生清醒Ai分钟后睡Bi分钟,然后重复(1<=Ai,Bi<=5),初始时第i个学生处于他的周期的第Ci分钟,每个学生临睡前查看全班睡觉人数是否严格大于清醒人数,只有这个条件满足时才睡觉,否则坚持听课Ai分钟后再次检查这个条件,问多长时间后全班都清醒,

解题思路:

模拟整个过程直到全部清醒或者时间足够长,用Ci表示在周期中的状态时间

#include<stdio.h>
#include<algorithm>
using namespace std;
const int maxn=15;
int a[maxn],b[maxn],c[maxn];
int main(){int n;int res=0;while(scanf("%d",&n)==1&&n){for(int i=0;i<n;i++) scanf("%d%d%d",&a[i],&b[i],&c[i]);int t,count;for(t=1;t<10000;t++){count=0;for(int i=0;i<n;i++) if(c[i] <= a[i]) count++;if(count==n) break;for(int i=0;i<n;i++){if(c[i]==a[i]+b[i] || (c[i]==a[i] && count >= n-count))c[i]=0;c[i]++;}}if(t==10000) t=-1;printf("Case %d: %d\n",++res,t);}return 0;
}

转载于:https://www.cnblogs.com/Double-LL/p/6658920.html

uva 12108 Extraordinarily Tired Students(特别困的学生)相关推荐

  1. UVA - 12108 Extraordinarily Tired Students(特别困的学生)

    题目链接UVA - 12108 题目思路: 用f[i]来纪录每个学生当前的状态(是否睡觉) 用now[i]来纪录每个学生处于当前状态的总时间 用first[i]来纪录所有学生最初时处于第几分钟,用于循 ...

  2. UVA 12108 Extraordinarily Tired Students

    思路: ①用结构体stu,属性有清醒时间,睡眠时间,开始处于的时间,状态(醒着还是睡着), 还有计数器. ②二维数组存表格. ③在确定接下来要进入的状态之后,就一次把表格里持续状态的数据都修改掉,比如 ...

  3. UVa 12108 - Extraordinarily Tired Students(模拟+细节处理)

    输入每个学生的睡眠-清醒周期和当前状态,每个学生在睡觉前都会检查班里人的状态,仅当睡眠人数严格大于清醒人数时才会睡觉,否则继续保持清醒状态持续一个周期.求学生全部清醒的时刻,不存在则输出-1. 现在看 ...

  4. 12108 - Extraordinarily Tired Students(特别困的学生)

    题目: When a student is too tired, he can't help sleeping in class, even if his favorite teacher is ri ...

  5. 12108 - Extraordinarily Tired Students

    水题一遍A,不过要注意一下每个同学临睡前的情况,根据样例就能知道,好好研究样例即可. #include<stdio.h> #include<string.h> int a[15 ...

  6. UVA12108-4.8(ti)-Extraordinarily Tired Students

    UVA12108-4.8(ti)-Extraordinarily Tired Students 题目描述: https://uva.onlinejudge.org/index.php?option=c ...

  7. HDU 2932 Extraordinarily Tired Students (暴力+取模还是很强大的)

    题目链接:HDU 2932 Extraordinarily Tired Students 题意:给出N个学生的状态,(a,b,c).a表示a分钟这醒着,b表示b分钟睡着,c表示刚开始是重周期(a+b) ...

  8. 特别困的学生 (特困生)

    特别困的学生 (特困生) <div style="text-align: left;"><pre name="code" class=&quo ...

  9. 特别困的学生(Extraordinarily Tired Students, ACM/ICPC Xi'an 2006, UVa12108)

    #include <cstdio> #include<iostream> using namespace std;struct student {int wake;int sl ...

最新文章

  1. linux打理ftp用户,Linux中如何添加/删除FTP用户并设置权限
  2. Silverlight中如何实现上下标的显示
  3. 一个按键控制数码管的开和关_一个按键控制一个数码管
  4. Powershell访问数组
  5. PYTHON设计模式学习(3):Singleton pattern
  6. tidb时间转字符串_如何使用TiDB节省时间
  7. 频繁模式增长Frequent-Pattern Growth(FP-Growth)
  8. VMware VSphere 引发的学案(三)
  9. matlab求系统根轨迹和系统增益,控制系统的根轨迹分析
  10. 解决UnicodeEncodeError: 'gbk' codec can't encode character '\xe4' in position 319等问题
  11. html设置表单禁止修改群名片,如何设置禁止管理员修改qq群名片
  12. 【机器学习】机器学习项目全流程(附带项目实例)
  13. 【膜拜原文作者】深入浅出的讲解傅里叶变换
  14. 3D动作绑定_3dmax【动画技巧】骨骼工具快速制作多动作人物动画
  15. 北京飞漫软件创始人魏永明
  16. js随机生成16进制颜色值
  17. java 捕获异常打印详细错误信息:Exception e
  18. Ubuntu 新建用户并赋予权限
  19. KITTI数据集下载(百度云)
  20. 史上最硬核网页截图方案原理深度剖析

热门文章

  1. 爬虫实战学习笔记_7 【实战】模拟下载页面视频(模板)
  2. Vue3 Composition API(一)——setup、reactive、ref、readonly
  3. vue-cli4.x 中 配置允许跨域请求
  4. 六、Web服务器——FilterListener 学习笔记
  5. LeetCode 1985. 找出数组中的第 K 大整数(排序)
  6. LeetCode MySQL 1661. 每台机器的进程平均运行时间
  7. LeetCode 1214. 查找两棵二叉搜索树之和(二叉树迭代器+双指针)
  8. LeetCode 72. 编辑距离(DP)
  9. LeetCode 696. 计数二进制子串
  10. POJ 1064 分割线缆(二分查找)