UVA12108-4.8(ti)-Extraordinarily Tired Students
UVA12108-4.8(ti)-Extraordinarily Tired Students
题目描述:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=833&problem=3260&mosmsg=Submission+received+with+ID+18644727
课堂上有n个学生(你<=10)。每个学生都有一个‘’睡眠-清醒‘’周期,其中第i个学生醒Ai分钟后睡Bi分钟,然后重复周期,初始时第i个学生处在他的周期的第Ci分钟。每个学生在临睡前会查看全班睡觉人数是否 严格大于清醒人数,只有这个条件满足时才睡觉,否者就坚持听课Ai分钟后再次检查这个条件。问讲过多长时间后全班都清醒。
可能并不存在全部清醒的时刻,此时输出-1。
题目分析:
这个题意外的比较好做。(第四章做怕了,劝退系列==)
用一个二维数组存周期,一个一位数组存状态,然后用循环一遍一遍的找就可以了,到临界点时判断一下是否归零就好了。
==这里说可能并不存在全部清醒的时刻,我也没想出来什么好的判断条件,所以就把循环的停止条件弄的比较大,如果循环结束还没有找到,就当做没有好了==感觉这办法很不靠谱的样子=。=
给出代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{//freopen("D:\\output.txt","w",stdout);int num[12][2];int num1[12];int n;int mark=0;while(scanf("%d",&n)!=EOF){if(n==0)break;mark++;int i,j;for(i=1;i<=n;i++){for(j=1;j<=2;j++){scanf("%d",&num[i][j]);}scanf("%d",&num1[i]);num1[i]-=1;}int book=0;for(i=0;i<=1000;i++){ //printf("%d\n",i);int sleep=0;int unsleep=0;for(j=1;j<=n;j++){num1[j]++;if(num1[j]<=num[j][1])unsleep++;elsesleep++;if(num1[j]==num[j][1]+num[j][2])num1[j]=0;}if(sleep==0){book=1;break;}if(sleep<=unsleep){for(j=1;j<=n;j++){if(num1[j]==num[j][1])num1[j]=0;}}}printf("Case %d: ",mark);if(book)printf("%d\n",i+1);elseprintf("-1\n");}return 0;
}
UVA12108-4.8(ti)-Extraordinarily Tired Students相关推荐
- HDU 2932 Extraordinarily Tired Students (暴力+取模还是很强大的)
题目链接:HDU 2932 Extraordinarily Tired Students 题意:给出N个学生的状态,(a,b,c).a表示a分钟这醒着,b表示b分钟睡着,c表示刚开始是重周期(a+b) ...
- 12108 - Extraordinarily Tired Students(特别困的学生)
题目: When a student is too tired, he can't help sleeping in class, even if his favorite teacher is ri ...
- 习题4-8 特别困的学生(Extraordinarily Tired Students,ACM/ICPC Xi'an 2006,UVa12108)
原题链接:https://vjudge.net/problem/UVA-12108 分类:函数 备注:简单模拟 注意:刚要入睡的时候观察的是上一分钟的情况. 代码如下 #include<stdi ...
- 特别困的学生(Extraordinarily Tired Students, ACM/ICPC Xi'an 2006, UVa12108)
#include <cstdio> #include<iostream> using namespace std;struct student {int wake;int sl ...
- Uva12108 Extraordinarily Tired Students
刚开始看到题有点蒙,不过看到数据范围很小时就开始笑了.直接暴力解法,挺简单的. 思路:a+b为单个学生的awaken-sleeping周期T.将所有学生周期T的最小公倍数LCMT找出,则在LCMT分钟 ...
- [UVA12108]Extraordinarily Tired Students(模拟+水题)
最近在填紫书上的坑(以前由于浮躁没有做的习题),发现还是有很多题比较麻烦,虽然思路很容易想,但就是写不出ac代码,可能这就是眼高手低吧.希望在接下来的学习生活中,从小事做起,向着自己的目标而努力吧. ...
- UVA12108 特别困的学生 Extraordinarily Tired Students 题解
题意翻译 课上有(n≤10) 个学生,每个人都有个"清醒-睡眠"周期,每个人都是先清醒Ai 分钟,然后睡Bi分钟,然后重复(1≤A*,B≤5) ,初始时第 i 个学生处在他的周期的 ...
- UVA 12108 Extraordinarily Tired Students
思路: ①用结构体stu,属性有清醒时间,睡眠时间,开始处于的时间,状态(醒着还是睡着), 还有计数器. ②二维数组存表格. ③在确定接下来要进入的状态之后,就一次把表格里持续状态的数据都修改掉,比如 ...
- uva 12108 Extraordinarily Tired Students(特别困的学生)
题目大意: 课堂上有n(n<=10)个学生,每个学生都有一个"睡眠-清醒""周期,其中第i个学生清醒Ai分钟后睡Bi分钟,然后重复(1<=Ai,Bi<= ...
最新文章
- java8的jvm优化_基于JDK8 版本的SpringBoot 启动参数优化(建议收藏)
- matlab生成vhdl程序,使用HDL Workflow Advisor将matlab代码转换为vhdl
- python的__get__、__set__、__delete__(1)
- shell去掉字符两端字符_Shell脚本8种字符串截取方法总结
- java静态内部类(嵌套类)
- (RabbitMQ) Java Client API Guide
- 不可思议!这篇全篇脏话的文章竟然发表了
- python安装pygame模块_windows下 python 如何安装pygame模块
- java rsa算法_求RSA算法JAVA实现源代码(带界面的)
- 8. 工厂设计模式(factory pattern)
- c++中char类型在内存中的表示以及取值范围
- 4173: 数学 欧拉函数 思路题
- 高版本linux安装gamit,Linux下安装GAMIT10.5
- matlab磁场计算公式,利用MATLAB计算电磁场有关分布.doc
- HTML——选择器(1)
- 遥感影像语义分割——影像拼接、去背景
- python线程、进程、协程
- SQL注入系列(一)——超详细SQL注入环境搭建
- ubuntu18.04安装qq
- ES空字符串和null值查询
热门文章
- python为什么会出现nan_NaN为何会凭空产生?
- 解释任何ML模型?--关于XAI的目标和能;基于梯度的动态RRAM阵列神经形态学习;SARNet:大规模城市点云的语义增强注册;基于加权一致性指数损失的多模式生存模型在鼻咽癌放疗放射性脑病评估中的应用
- Photoshop设计元旦海报
- 【面试软技巧】如果你的同事不合作,如何推进项目进度
- 微信人格专业测试软件,微信内在人格测试
- Mysql-窗口函数
- 选择H5互动游戏这种方式营销有什么优势
- 地理建模---------三调地类批量筛选----1
- 全球及中国智能语音行业应用趋势及发展方向研究报告2021-2027年
- Joomla详细安装图文教程