<JZOJ4726>种花
挺有意思的贪心
神奇的贪心
#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 ;
}
<JZOJ4726>种花的更多相关文章
- 种花 [JZOJ4726] [可撤销贪心]
Description 经过三十多个小时的长途跋涉,小Z和小D终于到了NOI现场——南山南中学.一进校园,小D就被花所吸引了(不要问我为什么),遍和一旁的种花园丁交(J)流(L)了起来. 他发现花的摆 ...
- 【JZOJ4726】种花 题解(贪心+堆)
题目大意:在一个长度为$n$的环型序列中取出$m$个数使这$m$个数的和最大,且要求这$m$个数互不相邻. ---------------------- 考虑维护$nxt$和$lst$,即一个数的前驱 ...
- P1834 种花小游戏
我只是想做壮鸭低劈啊,为什么只有状压没有DP-- 原题: 植物大战僵尸这款游戏中,还有个特别有意思的赚钱方式--种花(能长金币的花).种出来的金币需要玩家点击才能得到,或者,玩家可以购买一只蜗牛来帮助 ...
- 605. Can Place Flowers种花问题【leetcode】
Suppose you have a long flowerbed in which some of the plots are planted and some are not. However, ...
- 【LeetCode】数组-3(605)-种花问题( 1 的两侧不能有 1 )
开始的思路:首先统计需要种几只花,用花的数目统计连续 0 的个数.... ...[囧]突然觉得情况有点复杂啊,有连续的又有分散的怎么能统计全呢? 好吧这里喔偷偷的瞄了一眼参看答案... ...(就一眼 ...
- CDOJ 1292 卿学姐种花 暴力 分块 线段树
卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一 ...
- Leetcode 605.种花问题
种花问题 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. 给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表 ...
- LeetCode 605. 种花问题(Can Place Flowers) 6
605. 种花问题 605. Can Place Flowers 题目描述 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有.可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去. ...
- [noip模拟]种花<快速幂+结论>
描述: OI太可怕了,我决定回家种田.我在后院里开辟了一块圆形的花圃,准备种花.种花是一种艺术,通过一定技术手法,花材的排列组合会让花变得更加的赏心悦目,这就是花艺.当然你知道,我在种田之前是OIer ...
随机推荐
- 基于serverless快速部署前端项目到腾讯云
腾讯云 COS 组件,可以快速部署静态网站页面到对象存储 COS 中,并生成域名供访问. 安装 首先要安装 serverless 组件 npm install -g serverless 在项目的根目 ...
- ant design for vue 解决 vue.esm.js?c5de:628 [Vue warn]: Invalid prop: custom validator check failed for prop "defaultValue". 的错误
错误重现: 在使用ant design for vue 的选择器插件的时候, 设置默认为为id(为数字) 报错: 解决办法: id为数字, 而defaultValue 的key 值必须为字符串, 将i ...
- Python笔记_第四篇_高阶编程_GUI编程之Tkinter_4.布局
1. 绝对布局: 图示: 实例: import tkinter from tkinter import ttk # 创建主窗口__编程头部 win = tkinter.Tk() # 设置标题 win. ...
- GCC与G++区别
gcc和g++的区别总结:gcc: GNU C Compilerg++: GNU C++ Compiler 共同点:均属于the GNU Compiler Collection,gcc是鼻祖,后来才有 ...
- goweb-goweb基础
goweb DNS工作原理 在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析. 如果hosts里没 ...
- maven中scope属性有哪些
compile,缺省值,适用于所有阶段,会随着项目一起发布. provided,类似compile,期望JDK.容器或使用者会提供这个依赖.如servlet.jar. runtime,只在运行时使用, ...
- 17.3.13---sys.argv[]用法
1------sys.argv[]是用来获取命令行参数, sys.argv[0]表示代码本身文件路径,因此要从第二个即sys.argv[1]开始去参数 例如创建一个文件: import sys pri ...
- raw_input|active:|continue|break|
a = "please" b = "say something:" c =a+b m = 0 a = True while a: m = int(raw_inp ...
- 面向VBA一维数组的实用自定义函数
UDF.dll包含了一组实用的用户自定义函数,提供了数组处理的快速方法,可以在VB6.VBS.32位VBA中调用. 看完如下的实例代码,就明白它的用处了. Private MyUDF As New U ...
- mysql中datetime时间转字符串(避免java层映射为数字串)
-- in_date datetime NULLDATE_FORMAT(ls.`in_date`,'%Y-%m-%d %T')AS create_time