洛谷 P2827蚯蚓 队列优化

该博客介绍了洛谷P2827题目的解题思路,重点在于利用队列优化来处理一群数的切割问题。博主详细说明了如何将数排序后放入单调队列,每次切割时选取最大值进行操作,以此实现高效的模拟过程。此外,还讨论了针对时间限制的O2优化技巧,并提供了优化后的代码示例。
摘要由CSDN通过智能技术生成

题目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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值