博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1484 种树
阅读量:5833 次
发布时间:2019-06-18

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

#include
#include
#include
#include
using namespace std;struct node{ int pos; long long val; bool operator < (const node &b) const { return val
q;long long read(){ long long s=0,f=1; char in=getchar(); while(in<'0'||in>'9') { if(in=='-') f=-1; in=getchar(); } while(in>='0'&&in<='9') { s=(s<<1)+(s<<3)+in-'0'; in=getchar(); } return s*f;}long long value[500100];long long data[500100];long long lef[500100];long long righ[500100];bool vis[500100];int main(){ long long n=read(),k=read(); for(int i=1;i<=n;i++) { data[i]=read(); lef[i]=i-1; righ[i]=i+1; } lef[n+1]=n; righ[0]=1; node pas; for(int i=1;i<=n;i++) { pas.pos=i; pas.val=data[i]; q.push(pas); } long long ans=0; while(k--) { while(vis[q.top().pos]) q.pop(); pas=q.top(); q.pop(); if(pas.val<0) break; ans+=pas.val; data[pas.pos]=data[lef[pas.pos]]+data[righ[pas.pos]]-data[pas.pos]; pas.val=data[pas.pos]; vis[lef[pas.pos]]=vis[righ[pas.pos]]=true; lef[pas.pos]=lef[lef[pas.pos]]; righ[lef[pas.pos]]=pas.pos; righ[pas.pos]=righ[righ[pas.pos]]; lef[righ[pas.pos]]=pas.pos; q.push(pas); } printf("%lld",ans);}

转载于:https://www.cnblogs.com/Lance1ot/p/8877732.html

你可能感兴趣的文章
php分页
查看>>
Python version 2.7 required, which was not found in the registry
查看>>
Android API level 与version对应关系
查看>>
[实战演练]Intel面试题目 - 进栈出栈顺序问题
查看>>
Team Name
查看>>
String类
查看>>
JAVA中各种日期表示字母
查看>>
[心得]关于新的挑战
查看>>
结对编程2
查看>>
python 3.6 链接mssql 进行数据操作
查看>>
颤抖吧,Css3
查看>>
Redis集群命令
查看>>
6.19心得
查看>>
西门子_TDC_数据耦合小经验
查看>>
接口测试与postman
查看>>
【转载】Nginx + Tomcat 实现反向代理
查看>>
Mac下,如何把Github上的仓库删除掉
查看>>
9.18考试 第一题count题解
查看>>
mac zsh选择到行首的快捷键
查看>>
js的apply方法使用详解,绝对NB
查看>>