特别困的学生 UVa12108(模拟题)
一、题目
课堂上有n个学生(n<=10)。每个学生都有一个“睡眠-清醒”周期,其中第i个学生醒Ai分钟后睡Bi分钟,然后重复(1<=Ai,Bi<=5),初始第i个同学处于他的周期的Ci分钟。每个学生在临睡前,只有全班睡觉人数严格大于清醒人数才睡觉,否则坚持Ai分钟后再检查。问经过多长时间全班都清醒,不存在输出-1.
二、解题思路
重点在于体会Ci的含义,Ci表示第i个同学在自身周期内所处的状态。模拟整个过程,注意时间取长点,但不要太长。
三、代码
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
#define INF 10000
const int maxn = + ;
int A[maxn], B[maxn], C[maxn]; int main()
{
int n,T = ;
while (scanf("%d", &n) == && n)
{
for (int i = ; i < n; i++)
scanf("%d%d%d", &A[i], &B[i], &C[i]);
int t;
for (t = ; t < INF; t++) //从1开始的
{
int cnt = ; //cnt代表当前清醒的人数
for (int i = ; i < n; i++)
if (C[i] <= A[i])
cnt++;
if (cnt == n) break; for (int i = ; i < n; i++)
{
//C[i]表示处于周期的C[i]分钟,注意所处状态的变化
if (C[i] == A[i] + B[i] || (C[i] == A[i] && cnt >= n - cnt))
C[i] = ;
C[i]++;
}
}
if (t == INF) t = -;
printf("Case %d: %d\n", ++T, t);
}
return ;
}
特别困的学生 UVa12108(模拟题)的更多相关文章
- 算法习题---4-8特别困的学生(UVa12108)
一:题目 课堂上有n个学生(n<=),每个学生上课都会出现一个“清醒-睡眠”周期,其中第i个学生学习Ai分钟后睡眠Bi分钟,依次重复.其中在从清醒到睡眠时有一个条件:只有到全班睡眠人数大于清醒人 ...
- UVa 12108 特别困的学生
https://vjudge.net/problem/UVA-12108 题意:给出n个学生的“清醒—睡眠”周期和初始时间点,每个学生在睡眠时需要判断全班睡觉人数是否严格大于清醒人数,否则在坚持一个清 ...
- 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中
题目名称 正确答案 序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...
- HDU 2093 考试排名 模拟题
解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...
- 8.22 NOIP 模拟题
8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...
- CSP复赛day2模拟题
没错,我又爆零了.....先让我自闭一分钟.....so 当你忘记努力的时候,现实会用一记响亮的耳光告诉你东西南北在哪. 好了,现在重归正题: 全国信息学奥林匹克联赛(NOIP2014) 复赛模拟题 ...
- poj 1008:Maya Calendar(模拟题,玛雅日历转换)
Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 64795 Accepted: 19978 D ...
- poj 1888 Crossword Answers 模拟题
Crossword Answers Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 869 Accepted: 405 D ...
- CodeForces - 427B (模拟题)
Prison Transfer Time Limit: 1000MS Memory Limit: 262144KB 64bit IO Format: %I64d & %I64u Sub ...
随机推荐
- 4-1逻辑与运算符介绍 & 4-2逻辑或运算符介绍
后面括号内的(n++)不运算了. 4-2逻辑或运算符介绍
- weiphp的相关部署教程以及新浪云Sae安装技巧
WeiPHP在Sae上的部署图文教程 进来微信开发挺火的,so 越来越多人开始做起微信开发了,如果从头开发的话挺费时间和精力的,况且市场上已经有一款比较成熟的产品,那就是WeiPHP 不过告诉大家个坏 ...
- LeetCode: 448 Find All Numbers Disappeared in an Array(easy)
题目: Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice an ...
- 4.2 手写Java PriorityQueue 核心源码 - 实现篇
上一节介绍了PriorityQueue的原理,先来简单的回顾一下 PriorityQueue 的原理 以最大堆为例来介绍 PriorityQueue是用一棵完全二叉树实现的. 不但是棵完全二叉树,而且 ...
- 无法序列化会话状态。请注意,当会话状态模式为“StateServer”或“SQLServer”时,不允许使用无法序列化的对象或 MarshalByRef 对象。
原文链接:http://blog.csdn.net/byondocean/article/details/7564502 session是工作在你的应用程序进程中的.asp.net进程.iis往往会在 ...
- 点击a标签 跳到当前页面指定div
给标签div设一个id值 <div id="aa"><div> a标签抓取id值,点击跳过去 <a href="#aa">& ...
- GYM 101889J(枚举、环上gcd)
答案只有n - 1种暴举即可,对于每种,gcd是一那踩雷稳了,否则看雷的分布有没有把模余占满. const int maxn = 1e5 + 5; int n, ans; char str[maxn] ...
- Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined) B
Description Kostya likes Codeforces contests very much. However, he is very disappointed that his so ...
- 洛谷 P3830 [SHOI2012]随机树
https://www.luogu.org/problemnew/show/P3830 具体方法见代码.. 其实挺神奇的,概率可以先算出“前缀和”(A小于等于xxx的概率),然后再“差分”得到A恰好为 ...
- 在 Java 的多线程中,如何去判断给定的一个类是否是线程安全的(另外:synchronized 同步是否就一定能保证该类是线程安全的。)
同步代码块和同步方法的区别:同步代码块可以传入任意对象,同步方法中 如果多个线程检查的都是一个新的对象,不同的同步锁对不同的线程不具有排他性,不能实现线程同步的效果,这时候线程同步就失效了. 两者的区 ...