挺有意思的贪心

神奇的贪心

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#define rint register int
using std::priority_queue;
template <class T>inline void read(T &X)
{
X=;int W=;char ch=;
while(!isdigit(ch))W|=ch=='-',ch=getchar();
while(isdigit(ch))X=(X<<)+(X<<)+(ch^),ch=getchar();
X=W?-X:X;return;
}
int n,m,pre[],nxt[],vis[]={};
long long ans=,a[];
struct node
{
int num;
friend bool operator <(node x,node y)
{
return a[x.num]<a[y.num];
}
};
priority_queue<node>q;
int main()
{
read(n),read(m);
if(m>(n>>)){printf("Error!");return ;}
node x;
for(rint i=;i<=n;++i)
{
read(a[i]);
pre[i]=(i==)?n:i-,nxt[i]=(i==n)?:i+;
x.num=i,q.push(x);
} while(m--)
{
for(x=q.top(),q.pop();vis[x.num];x=q.top(),q.pop());
ans+=a[x.num];
a[x.num]=a[pre[x.num]]+a[nxt[x.num]]-a[x.num];
vis[pre[x.num]]=vis[nxt[x.num]]=;
pre[x.num]=pre[pre[x.num]];
nxt[x.num]=nxt[nxt[x.num]];
nxt[pre[x.num]]=pre[nxt[x.num]]=x.num;
q.push(x);
}
printf("%lld\n",ans);
return ;
}

最新文章

  1. SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)【转】
  2. 第3.3 案例2: 工作队列 job queue
  3. (转)Android消息处理机制(Handler、Looper、MessageQueue与Message)
  4. Golang学习 - strings 包
  5. UVA 753 A Plug for UNIX 电器插座(最大基数匹配,网络流)
  6. libstdc++.so.5: cannot open shared object file: No such file or directory
  7. 试用mysql的infobright引擎
  8. Java基础学习笔记1
  9. Python之向日志输出中添加上下文信息
  10. Spring+SpringMVC+MyBatis集成学习笔记【一】
  11. 数据库索引B-树和B+树
  12. Java-ServletContextAttributeListener
  13. java8的函数式接口
  14. 痞子衡嵌入式:ARM Cortex-M文件那些事(0)- 文件关联
  15. OpenStack共享组件
  16. 一文理解 Java NIO 核心组件
  17. 20165306 2017-2018-2《Java程序设计》课程总结
  18. 【转】 SQL - 生成指定范围内的随机数
  19. 【.Net】在windows server 2016 和Windows10这些server上安装.net fw3.5
  20. Oracle Function:TO_CHAR

热门文章

  1. 17.3.10--关于C元的变量类型所占字节问题和类型转化
  2. 编程基础-servlet1
  3. 吴裕雄--天生自然 pythonTensorFlow图形数据处理:windows操作系统删除tensorflow
  4. Win10用Windows照片查看程序(照片查看器)打开图片
  5. Educational Codeforces Round 76 (Rated for Div. 2)E(dp||贪心||题解写法)
  6. 2020 CCPC Wannafly Winter Camp Day1-F-乘法
  7. s01字符串---蓝桥杯
  8. [USACO09DEC]晕牛Dizzy Cows (拓扑排序)
  9. Base64转PDF、PDF转IMG(使用pdfbox插件)
  10. 32)PHP,遍历对象的属性或者属性值