luogu 1484\1792 种树 奇怪的贪心可反悔

1484 种树 此版本是线性的,那么根据链表维护即可;

构建新点,点的左右分别是原整个区间的前驱及后继,再正常维护即可

注意两个版本的维护有所不同

第二个版本的维护直接将左右两点删除

1792 种树2  此版本是环

1484

#include<bits/stdc++.h>
#define ll long long 
using namespace std;
const int N=500010;
struct node{ll v;int id;bool operator <(node a)const{return v<a.v;}};
inline ll read(){ll x=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch)){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
ll a[N],ans;
int l[N],r[N],vis[N];
priority_queue<node> q;
int n,k;
int main(){n=read();k=read();for(int i=1;i<=n;i++){a[i]=read();q.push((node){a[i],i});l[i]=i-1;r[i]=i+1;}int len=n;for(int i=1;i<=k;i++){while(!q.empty()&&vis[q.top().id]) q.pop();if(q.empty()||q.top().v<0)break;node u=q.top();q.pop();ans+=u.v;vis[u.id]=vis[l[u.id]]=vis[r[u.id]]=1;a[++len]=a[l[u.id]]+a[r[u.id]]-a[u.id];l[len]=l[l[u.id]],r[len]=r[r[u.id]];r[l[len]]=len;l[r[len]]=len;q.push((node){a[len],len});}printf("%lld\n",ans);return 0;
}

 

1792

#include<bits/stdc++.h>
#define M 200050
#define rep(i,x,y) for(register int i=x;i<=y;i++)
using namespace std;
inline int read(){int x=0,f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch)){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
struct node{int v,id;friend bool operator < (node x,node y){return x.v < y.v;}
};priority_queue<node> q;
int n,m,ans,chose,r[M],l[M],a[M];
bool vis[M];
void change(int x){vis[x]=1;r[l[x]]=r[x];l[r[x]]=l[x];r[x]=0;l[x]=0;}
int main(){n=read(),m=read();rep(i,1,n) a[i]=read();if((n>>1)<m){printf("Error!\n");return 0;}rep(i,1,n-1) r[i]=i+1;r[n]=1;rep(i,2,n) l[i]=i-1;l[1]=n;rep(i,1,n) q.push((node){a[i],i});rep(i,1,m){while(vis[q.top().id]) q.pop() ;node u=q.top();q.pop();ans+=u.v;int ll=l[u.id],rr=r[u.id];a[u.id]=a[ll]+a[rr]-a[u.id];change(ll);change(rr);q.push((node){a[u.id],u.id});}printf("%d\n",ans);return 0;
}

 

转载于:https://www.cnblogs.com/asdic/p/9605510.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十四周作业

2019春第二次课程设计实验报告 一.实验项目 贪吃蛇游戏 二.实验功能描述&#xff1a; 存储数据&#xff0c;实现wasd控制蛇方向&#xff0c;吃到食物就增加长度&#xff0c;最后按长度算分数&#xff0c;撞到障碍物则死亡&#xff0c;计算积分 三.项目模板结构介绍&#xff1a;…

java语言不用担心内存吗_不用担心智能手机的电池,只需使用它

java语言不用担心内存吗When you’re trying to get the most life out of your device, it’s easy to overthink batteries. Don’t. Plug in your devices when possible, carry a battery pack with you, and get on with your life. 当您试图充分利用设备的使用寿命时&…

asp.net core结合NLog搭建ELK实时日志分析平台

0、整体架构 整体架构目录&#xff1a;ASP.NET Core分布式项目实战-目录 一、介绍ELK 1、说明&#xff08;此篇ELK采用rpm的方式安装在服务器上&#xff09;-牛刀小试 承接上一篇文章的内容准备部署ELK来展示asp.net core 的数据。目前此篇文章只用到单台服务器&#xff0c;等下…

Rhel7 设置目录权限,acl权限

Rhel7 设置目录权限&#xff0c;acl权限 改变用户和组的所属 Getfacl 取得 Setfacl设置 [rootdesktop0 tmp]# setfacl -m u:natasha:rw fstab [rootdesktop0 tmp]# setfacl -m u:harry:- fstab [rootdesktop0 tmp]# setfacl -m o::r fstab [rootdesktop0 tmp]# getfacl fstab #…

IT兄弟连 JavaWeb教程 AJAX定义以及解决的问题

2019独角兽企业重金招聘Python工程师标准>>> Ajax是"Asynchronous JavaScript And XML"的缩写(即&#xff1a;异步的JavaScript和XML)&#xff0c;是一种实现无页面刷新获取服务器数据的混合技术,Ajax这个概念的最早提出者是Jesse James Garrett。我们知道…

echo和@echo_如何在Echo Show和Echo Spot上切换到24小时时钟

echo和echoIf you prefer the 24-hour clock format instead of the usual 12-hour format, Amazon recently (and quietly) added the ability to switch between the two on the Echo Show and Echo Spot. 如果您希望使用24小时制而不是通常的12小时制&#xff0c;那么Amazon…

springMVC--XML解析

一 springMVC 入口 web.xml; DispatcherServlet二 初始化过程 1.寻找init(); 查看DispatcherServlet时候时&#xff0c;继承自servlet&#xff0c;肯定有初始化方法,DispatcherServlet继承自FrameworkServlet FrameworkServlet继承自HttpServletBean HttpServletBean继承自Http…

Vim 4 常用插件

Vim 系列教程目录: Vim 1 基本使用Vim 2 高级用法Vim 3 vimrcVim 4 常用插件Vim 5 其他编辑器的 Vim 插件Vim 插件网站 Vim 之所以强大, 有个很大的原因就是他有丰富的插件. 插件可以极大地增强 Vim 的功能. 那么去哪里下载插件呢? 插件怎么安装和管理呢, 听我慢慢道来. 先说到…

[Windows编程] 通过GetModuleHandleEx 得到函数调用者所在的DLL/EXE 原创陈本峰2009-02

在有些情况下需要得到函数调用者的模块名字。比如你想限制你的某个函数只能被自己某个特定的DLL调用。 或者比如在异常处理中你想了解是那个DLL/EXE抛出了异常。API函数_ReturnAddress 和GetModuleHandleEx 函数可以帮助我们达到这个目的。以下代码演示它们的用法&#xff1a;v…

生信入门-爱课程上的华中农业大学

1.生物大分子序列分析 2.主要技术 3.生物信息学的应用 4.应用2 转载于:https://www.cnblogs.com/BlueBlueSea/p/9610313.html

pc端文本_使用即将推出的Windows功能从PC发送文本

pc端文本Windows/Android/iPhone: Send and receive SMS messages on your PC, and access all the files on your phone without taking it out of your pocket. Windows / Android / iPhone&#xff1a;在PC上发送和接收SMS消息&#xff0c;并访问手机上的所有文件&#xff0…

日常工作用到的正则

1、手机号码加*"13422222222".replace(/(\d{3})\d{4}(\d{4})/, $1****$2);2、隐藏银行卡号"1111111111111111111".replace(/^(\d{4})\d(\d{4})$/, **** **** **** $2); 1111111111111111.replace(/.(?.)/g, *);3、遇见大写字母改为"_"component…

非常详细的Exchange 功能路线图

非常详细的Exchange 功能路线图 此路线图可帮助您熟悉 Microsoft Exchange Server 2010 中的所有功能。第一部分列出了可通过 Exchange 管理控制台 (EMC) 或 Exchange 命令行管理程序管理的所有功能。该部分还说明如何在 EMC 中导航至功能&#xff0c;并提供指向相应管理主题的…

String类常用方法

定义方法类型描述public String(char[] value)构造直接将一个字符数组变为一个字符串public String(char[] value,int offset,int count)构造将一个指定范围的字符数组变为字符串public String(byte[] bytes)构造将一个byte数组全部变为字符串public String(byte[],bytes,int o…

python基础一 day6 文件操作

读写只会进行两步&#xff0c; r模式下写读 seek是按字节去找的 for line in f: for循环是一行一行的读取出来 strip默认去空格和换行符 空格、制表符、换行符、回车、换页垂直制表符和换行符称为 “空白字符” for in 一个不可变数据类型&#xff0c;比如字符串&#xff0c;先…

静态路由默认路由的配置

静态路由实验 负载均衡的一点是个人理解&#xff0c;有不正确之处欢迎批评指正。 R1配置: s0/0/0口&#xff1a;193.1.1.9/30(本地) next-hop 193.1.1.10/30 point-to-point link F0/0设置子接口&#xff1a;F0/0.1 172.17.115.1/24 VLAN1 F0/0.5 172.17.110…

r中汇率市场_如何在Word 2013表中汇总行和列

r中汇率市场If you’re working in Word and you need to total values in a table, you can do so without having to enter the data into Excel and then copy and paste it into Word. Word can do simple calculations such as summing, multiplying, and averaging. 如果…

solidity事件详解

很多同学对Solidity 中的Event有疑问&#xff0c;这篇文章就来详细的看看Solidity 中Event到底有什么用&#xff1f; 写在前面 Solidity 是以太坊智能合约编程语言&#xff0c;阅读本文前&#xff0c;你应该对以太坊、智能合约有所了解&#xff0c;如果你还不了解&#xff0c;建…

敏捷开发

敏捷开发是1990年逐渐引起人们广泛关注的新型软件开发方式,它是具有应对快速变化需求的软件开发能力。相对于非敏捷开发&#xff0c;它是一种以客户需求为核心&#xff0c;持续迭代&#xff0c;循序渐进的开发方式&#xff0c;敏捷绝非是一种特定的开发方式&#xff0c;而是一种…

MpAndroidChart源码修改之饼状图添加标志线

由于项目需要,需要改MpandroidChart源码,下面,先看下效果图:效果图效果很简单,但是由于所选依赖库没提供相关方法,所以就需要重写源码了.这条红色的标志线其实就是那个影厅的均值嘛,这条线看着是不是和图表中的连接线很像呢,那把连接线稍加改造不就可以了吗?下面,先看下此依赖…