洛谷 P1484 种树 题解
时间:2019-08-31
本文章向大家介绍洛谷 P1484 种树 题解,主要包括洛谷 P1484 种树 题解使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这是一道标准的带反悔贪心;
利用大根堆来维护最大值:
当选择了num[i]后,反悔了,反之选择选了num[i-1]和num[i+1]时获利便增加了num[i-1]+num[i+1]-num[i]。
所以当num[i]被选时,我们就可以删去num[i-1]和num[i+1],并把num[i]改成num[i-1]+num[i+1]-num[i],放进堆中
#include <bits/stdc++.h> #define int long long using namespace std; int a[1000010]; priority_queue<pair<long long,long long> > q; bool bo[1000010]; int l[1000010],r[1000001]; signed main() { int n,m; cin>>n>>m; for(register int i=1;i<=n;i++){ cin>>a[i]; l[i]=i-1; r[i]=i+1; q.push(make_pair(a[i],i)); } l[n+1]=n; r[0]=1; long long ans=0; for(int i=1;i<=m;i++){ while(bo[q.top().second]){ q.pop(); } int x=q.top().second; long long tmp=q.top().first; q.pop(); if(tmp<0) break; ans+=tmp; a[x]=a[l[x]]+a[r[x]]-a[x]; bo[l[x]]=1; bo[r[x]]=1; l[x]=l[l[x]]; r[x]=r[r[x]]; r[l[x]]=x; l[r[x]]=x; q.push(make_pair(a[x],x)); } cout<<ans; }
原文地址:https://www.cnblogs.com/kamimxr/p/11439003.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 聊聊dubbo-go的GenericFilter
- Salesforce LWC学习(十九) 针对 lightning-input-field的label值重写
- MySQL定时备份方案
- Nginx多方面调优策略
- 太厉害了!这应该是目前Redis可视化工具最全的横向评测
- pip install时timeout设置
- 聊聊dubbo-go的TpsLimitFilter
- 聊聊dubbo-go的TokenFilter
- 你这磨人的小妖精——选中文本并标注的实现过程
- VUE跨页面传值的精妙
- 一文解决如何提取TCGA配对表达矩阵
- CSS中的伪类选择器、颜色、度量单位、文本字体及文本样式设置
- CSS盒模型、边框和背景、表格和列表、颜色和透明度、阴影和轮廓及长度单位rem
- C++核心准则CP.110:不要自已为初始化编写双重检查锁定代码
- BOSS直聘招聘信息获取之爬虫程序数据处理