BZOJ4721(NOIP2016)[蚯蚓]--队列
来源:互联网 发布:甘肃政法学院网络教学 编辑:程序博客网 时间:2024/05/16 06:49
【链接】
bzoj4721
【解题报告】
初看此题好像是堆但好像要被卡常。
所以经过思考以后可以发现:
(1)、其他蚯蚓加一段长度等价于给被切断的蚯蚓减一段长度。
(2)、此次被切断的两段短肯定分别比上次切断的两段短
所以只需要维护三个单调的队列就好了。
#include<cstdio>#include<cstring>#include<algorithm>#define LL long longusing namespace std;const int maxn=7000005,INF=((1<<30)-1)*2+1;int n,m,q,u,v,T,S,now,hed[3],til[3],que[3][maxn];double p;inline char nc(){ static char buf[100000],*l,*r; if (l==r) r=(l=buf)+fread(buf,1,100000,stdin); if (l==r) return EOF; return *l++;}inline int Read(){ int res=0; char ch=nc(); while (ch<'0'||ch>'9') ch=nc(); while (ch>='0'&&ch<='9') res=res*10+ch-48,ch=nc(); return res;}inline bool Cmp(int a,int b) {return a>b;}void Write(int x) {if (!x) return; Write(x/10); putchar((x%10)+48);}int MAX(){ int x=0; if (que[1][hed[1]]>que[x][hed[x]]) x=1; if (que[2][hed[2]]>que[x][hed[x]]) x=2; return x;}int main(){ freopen("4721.in","r",stdin); freopen("4721.out","w",stdout); n=Read(); m=Read(); q=Read(); u=Read(); v=Read(); T=Read(); for (int i=1; i<=n; i++) que[0][i]=Read(); sort(que[0]+1,que[0]+1+n,Cmp); S=0; now=0; hed[0]=hed[1]=hed[2]=1; que[0][n+1]=-INF; til[1]=til[2]=0; for (int i=1; i<=m; i++) { int x=MAX(),k=que[x][hed[x]++]+now,p1=(LL)k*u/v,p2=k-p1; if (!(i%T)) {if (k==0) putchar(48); else Write(k); if ((i/T+1)*T<=m) putchar(32);} que[1][++til[1]]=p1-now-q; que[2][++til[2]]=p2-now-q; now+=q; } putchar(10); que[1][til[1]+1]=que[2][til[2]+1]=-INF; for (int i=1,x; i<=n+m; i++) { x=MAX(),p=que[x][hed[x]++]+now; if (!(i%T)) {if (p==0) putchar(48); else Write(p); if ((i/T+1)*T<=n+m) putchar(32);} } return 0;}
阅读全文
0 0
- BZOJ4721(NOIP2016)[蚯蚓]--队列
- BZOJ4721 [Noip2016]蚯蚓
- bzoj4721 [Noip2016]蚯蚓
- BZOJ4721 [Noip2016]蚯蚓
- bzoj4721 [Noip2016]蚯蚓
- BZOJ4721——[Noip2016]蚯蚓
- 【思路题】BZOJ4721 [NOIP2016]蚯蚓
- 洛谷P2827 蚯蚓(NOIp2016) (BZOJ4721)
- [NOIP2016][单调队列]蚯蚓
- 【NOIP2016】蚯蚓 --队列模拟
- 【jzoj4907】【NOIP2016提高组】【蚯蚓】【单调队列】
- bzoj 4721: [Noip2016]蚯蚓 单调队列
- 【NOIP2016】蚯蚓(队列,单调性)
- BZOJ 4721 [Noip2016]蚯蚓 单调队列
- UOJ264 NOIP2016 day2 T2 蚯蚓(队列)
- 洛谷 2827 [NOIP2016] 蚯蚓 队列模拟
- NOIP2016蚯蚓
- NOIP2016 蚯蚓
- java生成验证码
- SSH框架整合 基于 XML 的配置
- Java对象的创建
- 多线程进阶ThreadLocal
- c语言运算过程中的类型自动转换原则
- BZOJ4721(NOIP2016)[蚯蚓]--队列
- [AHK]用AutoHotkey当批处理,批量修改文件名
- 记录关于JavaScript 浮点数运算的精度问题
- QTcpSocket客户端和服务端发送图片(或大文件)小Demo
- 1033. 旧键盘打字(20)
- 求递归算法时间复杂度:递归树
- Nginx详细安装部署教程(二)
- smoj2256:购物(普通dp)
- console对应的使用方法