UVA 467 - Synching Signals(数论)
来源:互联网 发布:淘宝 开电玩店 编辑:程序博客网 时间:2024/06/14 05:36
UVA 467 - Synching Signals
题目链接
题意:给定几个红绿灯,每个红绿灯time表示,time秒红灯,time - 5秒绿灯, 5秒黄灯.
然后求全部灯变绿之后,在一次有灯变换之后,全是绿灯需要的时间
思路:由于只要算1小时,也就是3600秒,直接暴力过去,每次时间加上当前最小能变换灯的时间,然后记录一下每个灯的颜色状态,直到全变绿为止
代码:
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;char str[105];int ti[15], s[15], r[15], n;int cas = 0;void solve() {int k = ti[0];//s = 0绿, s = 1黄, s = 2红 memset(s, 0, sizeof(s));memset(r, 0, sizeof(r));for (int i = 1; i < n; i++)k = min(k, ti[i]);k -= 5; int t = k;for (int i = 0; i < n; i++) {r[i] = (ti[i] - 5) - k;if (r[i] == 0) {r[i] = 5;s[i] = 1; } else s[i] = 0;} while (t <= 3600) { k = r[0]; int sum = 0; for (;sum < n; sum++) if (s[sum]) break;if (sum == n) break; for (int i = 1; i < n; i++) k = min(k, r[i]);for (int i = 0; i < n; i++) {r[i] -= k;if (r[i]) continue;if (s[i] == 0) {s[i] = 1;r[i] = 5; } else if (s[i] == 1) { s[i] = 2; r[i] = ti[i]; } else { s[i] = 0; r[i] = ti[i] - 5; } } t += k; } if (t > 3600) printf("Set %d is unable to synch after one hour.\n", ++cas); else { int minu = t / 60; int sec = t % 60; printf("Set %d synchs again at %d minute(s) and %d second(s) after all turning green.\n", ++cas, minu, sec); }}int main() {while (gets(str) != NULL) {int len = strlen(str); n = 0; str[len++] = ' ';int num = 0; for (int i = 0; i < len; i++) { if (str[i] >= '0' && str[i] <= '9') { num = num * 10 + str[i] - '0'; continue; } ti[n++] = num; num = 0; } solve(); }return 0;}
1 0
- UVA 467 - Synching Signals(数论)
- uva 467 - Synching Signals(暴力+数学)
- UVA 10110(数论)
- UVA 138(数论)
- uva 1388 - Graveyard(数论)
- uva 11889 - Benefit(数论)
- UVA 11889 - Benefit(数论)
- UVA 10139 Factovisors(数论)
- UVa 11889 - Benefit (数论)
- uva 1388 - Graveyard(数论)
- 数论专题(一) Uva 10780+Uva 10892+Uva 11076
- UVA 10791 Minimum Sum LCM (数论)
- UVa 160 Factors ans Factorials(数论)
- UVA 568 - Just the Facts(数论)
- UVa 10229 - Modular Fibonacci(数论,规律)
- UVA 11426 - GCD - Extreme (II) (数论)
- UVA 138 - Street Numbers (数论)
- UVA 10081 - Tight Words (数论 dp)
- Gvim配置
- TableView详解
- xvid安装注意
- 从1输出n位数字
- 常用链接备份
- UVA 467 - Synching Signals(数论)
- Handler的使用方法(一)
- 锚文字切忌画蛇添足
- javaEE设计思想和技术架构
- StatSVN(查看NVS用户修改代码的情况)
- ios中的initWithFrame
- html条件注释代码
- hdu 1043(八数码问题)
- JPA的persistence.xml配置文件参数