博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 2827 蚯蚓——相邻两个比较的分析
阅读量:7121 次
发布时间:2019-06-28

本文共 2028 字,大约阅读时间需要 6 分钟。

题目:

一眼看到优先队列。可是会被卡吧。

  结果没想出来。

优先队列的复杂度在于不停排序。本题的q和p等都是定值。如果能找到什么性质(单调的)避免排序就好了。

需要分析。x>y,先切x再切y的话,x*p+q>y*p+q*p,对于1-p的部分也是一样。

  即切出来的部分有单调性。所以再开两个队列存 *p的部分 和 *(1-p)的部分 就行了。

注意还要加上q。记录一个入队时间(弄弄边界)即可。

自己需要分析。列出式子之类的。明确自己要找的是什么(本题:单调性)。

#include
#include
#include
#include
#define ll long longusing namespace std;const int N=1e5+5,M=7e6+5;const ll INF=0x7fffffff;int n,m,s,u,v,T,tim[5][N+M],h[5],t[5];ll q[5][N+M];bool cmp(ll a,ll b){
return a>b;}int rdn(){ int ret=0,fx=1;char ch=getchar(); while(ch>'9'||ch<'0'){
if(ch=='-')fx=-1;ch=getchar();} while(ch>='0'&&ch<='9')(ret*=10)+=ch-'0',ch=getchar(); return ret*fx;}int main(){ n=rdn();m=rdn();s=rdn();u=rdn();v=rdn();T=rdn(); for(int i=1;i<=n;i++)q[0][i]=rdn(),tim[0][i]=1; sort(q[0]+1,q[0]+n+1,cmp); h[0]=1;t[0]=n;h[1]=1;h[2]=1; for(int i=1;i<=m;i++) { int k=-1;ll mx=0; if(h[0]<=t[0]&&q[0][h[0]]+s*(i-tim[0][h[0]])>mx) k=0,mx=q[0][h[0]]+s*(i-tim[0][h[0]]); if(h[1]<=t[1]&&q[1][h[1]]+s*(i-tim[1][h[1]])>mx) k=1,mx=q[1][h[1]]+s*(i-tim[1][h[1]]); if(h[2]<=t[2]&&q[2][h[2]]+s*(i-tim[2][h[2]])>mx) k=2,mx=q[2][h[2]]+s*(i-tim[2][h[2]]); h[k]++;if(i%T==0)printf("%lld ",mx); q[1][++t[1]]=mx*u/v;tim[1][t[1]]=i+1; q[2][++t[2]]=mx-mx*u/v;tim[2][t[2]]=i+1;// for(int i=0;i<3;i++)for(int j=h[i];j<=t[i];j++)printf("q[%d][%d]=%lld,tim=%d\n",i,j,q[i][j],tim[i][j]); } printf("\n"); for(int i=1;i<=n+m;i++) { int k=-1;ll mx=0; if(h[0]<=t[0]&&q[0][h[0]]+s*(m-tim[0][h[0]]+1)>mx) k=0,mx=q[0][h[0]]+s*(m-tim[0][h[0]]+1); if(h[1]<=t[1]&&q[1][h[1]]+s*(m-tim[1][h[1]]+1)>mx) k=1,mx=q[1][h[1]]+s*(m-tim[1][h[1]]+1); if(h[2]<=t[2]&&q[2][h[2]]+s*(m-tim[2][h[2]]+1)>mx) k=2,mx=q[2][h[2]]+s*(m-tim[2][h[2]]+1); h[k]++;if(i%T==0)printf("%lld ",mx); } return 0;}

 

转载于:https://www.cnblogs.com/Narh/p/9199358.html

你可能感兴趣的文章
Predicate和Consumer接口– Java 8中java.util.function包下的接口
查看>>
《Dreamweaver CS6完美网页制作——基础、实例与技巧从入门到精通》——2.3 网页色彩搭配知识...
查看>>
企业上云实战分享
查看>>
SSM框架Web程序的流程(Spring SpringMVC Mybatis)
查看>>
阿里云人工智能识别篮球动作视频
查看>>
Ali Kernel introduction
查看>>
前端常见兼容问题系列5:¥符号在部分Android APP的WebView中不见了
查看>>
基于Reactjs实现webapp(加精)
查看>>
超强、超详细Redis数据库入门教程
查看>>
《C++语言基础》实践项目——多重继承
查看>>
京颐集团上云之路:如何助力中小型医疗行业信息化与全面上云?
查看>>
Python yield与实现
查看>>
mongodb一些使用技巧或注意事项记录
查看>>
C# 浅拷贝与深拷贝区别 解惑篇
查看>>
nested loop,merge join,hash join与子查询优化
查看>>
注册过程太痛苦,昵称起了一箩筐还是没有可用的,前端校验和后台查询不一致用户体验太差...
查看>>
Munin进阶使用
查看>>
[Nhibernate]体系结构
查看>>
【转载】对 Zookeeper 的一些分析
查看>>
IPC 和 RPC (呵呵,我感觉我应该要钻研到这个深度啦)
查看>>