<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 ...
随机推荐
- [Algo] 87. Max Product Of Cutting Rope
Given a rope with positive integer-length n, how to cut the rope into m integer-length parts with le ...
- 模板编程里class 与 typename 的区别
大部分情况下可以相互替换,但是某些情况class 无法替代typename,例如 template< class T, class U > std::shared_ptr<T> ...
- python 知识点补充
python 知识点补充 简明 python 教程 r 或 R 来指定一个 原始(Raw) 字符串 Python 是强(Strongly)面向对象的,因为所有的一切都是对象, 包括数字.字符串与 函数 ...
- Spring加载xml配置文件的方式
梳理Spring的流程 xml是最常见的spring 应用系统配置源.Spring中的几种容器都支持使用xml装配bean,包括: XmlBeanFactory,ClassPathXmlApplica ...
- ElasticSearch 本机可以访问,外网无法访问----问题解决
问题:本机可以访问,外网无法访问 config/elasticsearch.yml network.host: 0.0.0.0 使用普通用户zuoys,重启es,报错如下: [1]: max file ...
- oracle_(第一课) 安装oracle数据库
首先去官网下载两个架包链接如下:官网链接 第一步:将两个架包解压到同一个database目录下.如截图所示: 第二步:打开setup应用程序 打开后就到了下面这个页面 第三步:配置安全更新 环境变量配 ...
- win下PowerShell的簡單使用
- [LC] 347. Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements. Example 1: Input: nums = [ ...
- [LC] 270. Closest Binary Search Tree Value
Given a non-empty binary search tree and a target value, find the value in the BST that is closest t ...
- logService
vpackage org.linlinjava.litemall.admin.service; import org.apache.shiro.SecurityUtils; import org.ap ...