题目:https://www.luogu.org/problem/show?pid=2827
简单讲一下
就是有一群数
每次找到最大的一个按一定比例切成两段
还要模拟,并且按一个规则输出一些东西
怎么办呢
使用队列优化
读入,从大到小排好序塞进一个队列
每次切开的分到另外两个队列里
三个队列都是单调递减的
(手动比划一下就知道了其实是博主懒得证明)
所以每次拿三个队头比较
挑一个最大的正常切就行了
代码片
#include<cstdio>
#include<algorithm>
#define maxn 8000000
int que[4][maxn], h[4], t[4];
int n, m, q, u, v, ti, sum, i, j, time;
inline bool cmp(int x, int y) {
return x > y;
}
inline void read(int& x) {
char ch;
for(ch = getchar(); ch < '0' || ch > '9'; ch = getchar());
for(x = 0; ch >= '0' && ch <= '9'; ch = getchar()) x = x