算法竞赛入门经典 第二版 习题4-8 特别困的学生 Extraordinarily Tired Students uva12108
来源:互联网 发布:交通事故2015数据统计 编辑:程序博客网 时间:2024/04/29 07:39
题目:https://vjudge.net/problem/UVA-12108
思路:据题意模拟过程,只要读明白题并且考虑清楚每个时刻切换时所有学生的状态是一起变化的就问题不大。
代码:c语言
#include <stdio.h>typedef struct{ int a;//清醒时长 int b;//睡眠时长 int c;//当前时间 int condition;//1睡眠,0清醒} Student;//判断是否所有人都清醒int all_awaken(Student s[], int n){ int i; for(i=0; i<n; i++) { if(s[i].condition!=0) return 0; } return 1;}//判断该时间是否睡的人严格大于醒的人int check(Student s[], int n){ int i,sl=0,aw=0; for(i=0; i<n; i++) { if(s[i].condition==1) { sl++; } else { aw++; } } if(sl>aw) return 1; else return 0;}int main(){ Student s[20]; int n,cases=0,t,time,f; int i; while(scanf("%d", &n)!=EOF) { if(n==0) break; cases++; for(i=0; i<n; i++) { scanf("%d%d%d", &s[i].a, &s[i].b, &s[i].c); s[i].condition = s[i].c>s[i].a?1:0; } t = all_awaken(s, n); time = 1; if(t==0) { for(time=2; time<1000; time++) { f = check(s, n); for(i=0; i<n; i++) { if(++s[i].c==s[i].a+1) { if(f==1) { s[i].condition = 1; } else { s[i].c -= s[i].a; } } else if(s[i].c==s[i].a+s[i].b+1) { s[i].condition = 0; s[i].c = 1; } } if(all_awaken(s, n)) { t = 1; break; } } } if(t) { printf("Case %d: %d\n", cases, time); } else { printf("Case %d: -1\n", cases); } } return 0;}
0 0
- 算法竞赛入门经典 第二版 习题4-8 特别困的学生 Extraordinarily Tired Students uva12108
- 算法竞赛入门经典(第2版)习题4-8 特别困的学生 Extraordinarily Tired Students UVa12108
- 算法竞赛入门经典(第2版)习题4-8 特别困的学生UVa12108
- [刷题]算法竞赛入门经典(第2版) 4-8/UVa12108 - Extraordinarily Tired Students
- 特别困的学生(Extraordinarily Tired Students)
- 4-8 UVA 12108 特别困的学生 Extraordinarily Tired Students
- uva12108 特别困的学生 (Extraordinary Tired Students
- UVa 12108 Extraordinarily Tired Students(特别困的学生)
- UVA - 12108 Extraordinarily Tired Students(特别困的学生)
- UVa 12108 Extraordinarily Tired Students(特别困的学生)
- uva 12108 Extraordinarily Tired Students(特别困的学生)
- 习题4-8 特别困的学生 UVa12108
- 习题4-8 特别困的学生 UVa12108
- 习题 4-8 特别困的学生 uva12108
- UVA12108-Extraordinarily Tired Students
- UVA12108--Extraordinarily Tired Students
- UVA12108 Extraordinarily Tired Students 【模拟】
- 算法竞赛入门经典(第二版)-刘汝佳-第四章 函数与递归 特别困的学生 (特困生)
- 完美的素数 (sdut oj)
- Captive Portal - 连接WiFi自动弹出认证页面
- Java遍历方法
- hdu 1671 Phone List(字典树)
- 两个链表的第一个公共结点
- 算法竞赛入门经典 第二版 习题4-8 特别困的学生 Extraordinarily Tired Students uva12108
- 软件测试的各个阶段
- ZooKeeper的:Curator框架应用
- 有趣的经济学效应和经济学现象
- DP(一)整理
- KiCad设计PCB-31-双排针的布线
- hdu 1671 Phone List(排序)
- 哈哈
- UI