uva 617- Nonstop Travel(暴力+数学)
来源:互联网 发布:虚拟机安装ubuntu出错 编辑:程序博客网 时间:2024/06/12 03:36
题目链接:uva 617 - Nonstop Travel
题目大意:在一条路上有n个红绿灯,给出红绿灯的位置,以及绿灯,黄灯和红灯的时间,问现在以什么样的速度可以不同停止便通过这条路段。(速度只在30~60km/h)
解题思路:枚举速度,然后判断即可。
注意说黄灯也是可以过的,以及红绿灯的距离是以米为单位的。
#include <cstdio>#include <cstring>const int N = 10;struct state {double dis;intr, y, g;}d[N];struct can {int l, r;void put() {if (l == r)printf("%d", l);elseprintf("%d-%d", l, r);}}s[6*N];int n, m;bool judge (double v) {v /= 3600;for (int i = 0; i < n; i++) {int sum = d[i].r + d[i].y + d[i].g;double t = d[i].dis / v;int ti = (int)t;int k = ti / sum;t = t - k * sum;if (t > d[i].g + d[i].y)return false;}return true;}int main () {int cas = 1;while (scanf("%d", &n) == 1 && n != -1) {for (int i = 0; i < n; i++)scanf("%lf%d%d%d", &d[i].dis, &d[i].g, &d[i].y, &d[i].r);m = 0;for (int i = 30; i <= 60; i++) {if (judge(i)) {if (m == 0 || s[m-1].r + 1 < i) {s[m].l = s[m].r = i;m++;} else {s[m-1].r++;}}}printf("Case %d: ", cas++);if (m) {for (int i = 0; i < m - 1; i++) {s[i].put();printf(", ");}s[m-1].put();printf("\n");} else printf("No acceptable speeds.\n");}return 0;}
1 0
- uva 617- Nonstop Travel(暴力+数学)
- UVA 617 - Nonstop Travel
- UVA 617 - Nonstop Travel(数论+暴力枚举)
- UVa617 - Nonstop Travel
- POJ 1310 Nonstop Travel 笔记
- uva 618 - Doing Windows(暴力+数学)
- uva 1069 - Always an integer(数学+暴力)
- uva 467 - Synching Signals(暴力+数学)
- [BZOJ4086][Sdoi2015]travel && 暴力
- uva 10620 - A Flea on a Chessboard(暴力+数学)
- UVA 10842 Travel Flow
- Uva-1369-Travel
- uva 11165 Galactic Travel
- Travel in Desert UVA
- Cheap Travel(暴力求解法)
- Codeforces 466A Cheap Travel【水题】暴力
- Uva-10816-Travel in Desert
- Separating Pebbles数学,暴力
- HDU 1166 敌兵布阵(树状数组)
- grub 引导流程
- Android之TabHost改变Tab颜色
- erlang R17新socket选项{active,N}
- hdu(求n!是否能被m整除)
- uva 617- Nonstop Travel(暴力+数学)
- 软考复习之路—再谈组成原理
- windows下Apache2.2学习笔记简记
- java垃圾回收机制
- k好数 noip 动态规划
- pax wicket下的shiro集成
- ORA-15183: ASMLIB initialization error [driver/agent not installed]
- android面试题
- CSRF(Cross-site request forgery)