[noip2016]蚯蚓 题解
来源:互联网 发布:药房进销存软件 编辑:程序博客网 时间:2024/05/16 06:05
嗯,这道题,有一种蜜汁优先队列既视感,既然,就用优先队列吧,但是,这样肯定超时,过不了呀。
考虑优化一下,其实每次的长度增长都是一样的,我们可以最后再考虑这一增量。这样,长度肯定是单减的,我们开三个队列维护一下就好了。一个存初始的,剩下两个存砍断的。每次的增量差不多就是入队顺序,注意一下细节就好了。
貌似bzoj过不了,不知道为何,但是官方数据和洛谷都是可以过的,求大神指正。
#include<bits/stdc++.h>#define N 8010000using namespace std;int n,m,q,u,v,t,tmp,mx,id,x,y;int Q[3][N+5],l[3],r[3];inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;}inline int read(){ int x=0,b=1; char c=nc(); for(;!(c<='9'&&c>='0');c=nc())if(c=='-')b=-1; for(;c<='9'&&c>='0';c=nc())x=x*10+c-'0'; return x*b;}inline bool cmp(const int &A,const int &B){ return A>B;}int main(){ freopen("in.txt","r",stdin); n=read(),m=read(),q=read(),u=read(),v=read(),t=read(); memset(Q,63,sizeof(Q)); for(int i=1;i<=n;i++)Q[0][i]=read(); sort(Q[0]+1,Q[0]+n+1,cmp); l[0]=1,r[0]=n,l[1]=l[2]=1,r[1]=r[2]=0; for(int i=1;i<=m;i++) { mx=-1000000000; for(int j=0;j<3;j++)if(Q[j][l[j]]>mx&&l[j]<=r[j])mx=Q[j][l[j]],id=j; mx+=tmp; x=(int)(u*1.0/v*mx);y=mx-x; tmp+=q;x-=tmp,y-=tmp; if(i%t==0)printf("%d ",mx); Q[1][++r[1]]=x,Q[2][++r[2]]=y; l[id]++; } putchar('\n'); for(int i=1;i<=n+m;i++) { mx=-1000000000; for(int j=0;j<3;j++)if(Q[j][l[j]]>mx&&l[j]<=r[j])mx=Q[j][l[j]],id=j; l[id]++; if(i%t==0)printf("%d ",mx+tmp); } return 0;}
阅读全文
0 0
- [noip2016]蚯蚓 题解
- NOIP2016 Day2T2蚯蚓 题解报告
- {题解}[jzoj4907]【NOIP2016提高组复赛】蚯蚓
- NOIP2016 提高二试 蚯蚓 题解
- [luogu-2877]noip2016-day2-T2 蚯蚓 题解
- NOIP2016蚯蚓
- NOIP2016 蚯蚓
- [noip2016]蚯蚓
- [NOIP2016] 蚯蚓
- NOIP2016蚯蚓
- 【noip2016】蚯蚓
- NOIP2016 提高组 第二天第二题 蚯蚓earthworm 题解
- BZOJ4721 [Noip2016]蚯蚓
- 【NOIP2016】洛谷2827 蚯蚓
- 【NOIP2016提高组】蚯蚓
- 4721: [Noip2016]蚯蚓
- noip2016 d2t2 切蚯蚓
- NOIP2016 D2T2 蚯蚓
- 矩阵求导
- Java文件读写操作(FileInputStream、FileReader、BufferedReader)
- 解决mysql 安装过程中start service失败的问题
- 2017.10.20 C#跨线程操作控件的线程安全方法
- 学习下Git
- [noip2016]蚯蚓 题解
- Android 禁止弹出键盘的方法
- inner总结
- 洛谷P1529 回家 Bessie Come Home
- bzoj4401块的计数 dfs
- 数据分析(一)
- 个人总结10
- Python中正则表达式讲解
- webpack+vue创建简单项目并整合iview