icpc:problems:luogup5661
problems | |
---|---|
名称 | 公交换乘 |
题目编号 | 2019 CSP-J T2 |
题目链接 | luogu.com.cn/… |
来源 | CCF |
算法分类 | 队列 |
难易程度 | 容易 |
公交换乘
想法
使用队列维护优惠券,并打是否使用过的标记。
代码实现
#include <cstdio> const int N = 1e5 + 10; int t[N], val[N], head = 0, last = -1; bool vis[N]; int main() { int n, type, ti, temp, ans = 0; scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d %d %d", &type, &temp, &ti); while (head <= last && (ti - t[head] > 45 || vis[head])) head++; if (type) { bool flag = false; for (int t = head; t <= last; t++) if (val[t] >= temp && !vis[t]) { flag = true; vis[t] = true; break; } if (!flag) ans += temp; } else { ans += temp; last++; t[last] = ti; val[last] = temp; } } printf("%d", ans); return 0; }
/app/www/public/data/pages/icpc/problems/luogup5661.txt · 最后更改: 2024/03/27 02:33 由 温婕莺