[HDU 2932]Extraordinarily Tired Students[模拟]
来源:互联网 发布:荀彧 诸葛亮 知乎 编辑:程序博客网 时间:2024/06/01 19:24
题目链接:[HDU 2932]Extraordinarily Tired Students[模拟]
题意分析:
课堂上有n个学生,这个学生处于自己的一个“醒着——睡着”周期中,用(a,b,c)代表这个学生醒着a分钟会睡着b分钟,初始时处于自己周期的c分钟里。每分钟只要他醒着,就会统计一下全班醒着的人数,当醒着>=睡着,就会重新回到周期开头。问:什么时候全部人都是醒着的?如果没有输出-1。
解题思路:
理解了题意,照着模拟就行了,就10个学生。
个人感受:
我简直吐血啊,题意理解错了,以为每个学生只会在醒着将要睡着的时候判断全班人数,并且c是代表这个学生在整个课堂时间中处于的初始状态。那么随着时间的推进还要不时判断哪个学生到了该判断的时候拿出来进行判断。脑袋一片乱麻啊= =。
具体代码如下:
#include<algorithm>#include<cctype>#include<cmath>#include<cstdio>#include<cstring>#include<iomanip>#include<iostream>#include<map>#include<queue>#include<set>#include<sstream>#include<stack>#include<string>#define ll long long#define pr(x) cout << #x << " = " << (x) << '\n';using namespace std;const int INF = 0x7f7f7f7f;const int MAXN = 21;int a[MAXN], b[MAXN], c[MAXN], cnt, n;bool ok() { cnt = 0; for (int i = 0; i < n; ++i) { if (c[i] <= a[i]) ++cnt; } if (cnt == n) return 1; return 0;}void nextState() { for (int i = 0; i < n; ++i) { c[i] %= a[i] + b[i]; if (c[i] <= a[i] && cnt >= n - cnt) c[i] = 0; else ++c[i]; }}int main(){ int kase = 0; while (cin >> n && n) { for (int i = 0; i < n; ++i) cin >> a[i] >> b[i] >> c[i]; int ans = 1; for (; ans < 1e6; ++ans) { if (ok()) break; nextState(); } if (ans == 1e6) ans = -1; cout << "Case " << ++kase << ": " << ans << '\n'; } return 0;}
0 0
- HDU 2932 Extraordinarily Tired Students(数学 & 模拟)
- [HDU 2932]Extraordinarily Tired Students[模拟]
- HDU 2932 Extraordinarily Tired Students
- UVA12108 Extraordinarily Tired Students 【模拟】
- UVa 12108 HDU 2932 Extraordinarily Tired Students [Ad Hoc]
- UVA12108 Extraordinarily Tired Students(超级大模拟)
- UVA - 12108 Extraordinarily Tired Students(模拟)
- 12108 - Extraordinarily Tired Students
- UVA12108-Extraordinarily Tired Students
- 12108 - Extraordinarily Tired Students
- 12108 - Extraordinarily Tired Students
- UVA_12108: Extraordinarily Tired Students
- UVA12108--Extraordinarily Tired Students
- UVa 12108 - Extraordinarily Tired Students(模拟+细节处理)
- UVA 12108 Extraordinarily Tired Students 直接模拟,暴力,叹气
- HDU 2932 Extraordinarily Tired Students (暴力+取模还是很强大的)
- UVA 12108 - Extraordinarily Tired Students
- uva - 12108-Extraordinarily Tired Students
- 七周七并发——笔记1
- 类模板 和 模板类
- 【深夜记坑】在android中使用JNA
- [2042]:不容易系列之二
- struts2的执行流程
- [HDU 2932]Extraordinarily Tired Students[模拟]
- 堆排序--Java实现
- Windows下安装Android Studio 2.1 preview
- [dp] poj1160 Post office
- ContentProvider初探
- IOS学习 UITableView 索引 涉及数组排序
- UVA - 12507 状压DP
- Ubuntu14.04更新数据源方法及常用数据源
- Android 监听屏幕解锁事件