博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ5321 & 洛谷4064 & LOJ2274:[JXOI2017]加法——题解
阅读量:6656 次
发布时间:2019-06-25

本文共 1142 字,大约阅读时间需要 3 分钟。

我觉得我永远都不会做九条题的原因就是我傻……这个方法是看同机房dalao代码懂的方法,十分的快。

想了很多贪心都错了之后发现我是个傻子。

”最小值最大“上二分答案,然后我们就知道了每个结点应该被覆盖多少次。

然后一个显然的贪心:从左到右扫结点,覆盖显然越少越好,必须覆盖的时候每次覆盖选择最大的区间。

我们直接对区间排序之后用一个堆维护就行了?

然后记录每个结点被覆盖的情况,直接差分就行了。

(我最开始贪心错了就是因为没有考虑前面已经过去的区间仍然可以覆盖后面的点……)

(突然想到我原贪心改改可能也能过?不过那样代码就奇慢了……)

#include#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;const int INF=1e9;const int N=2e5+5;inline int read(){ int X=0,w=0;char ch=0; while(!isdigit(ch)){w|=ch=='-';ch=getchar();} while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar(); return w?-X:X;}struct node{ int l,r;}b[N];int n,m,k,w,a[N];ll c[N];priority_queue
q;inline bool cmp(node a,node b){ return a.l==b.l?a.r
=i)c[i]+=w,c[q.top()+1]-=w,cnt++; q.pop(); } if(c[i]+a[i]
>1; if(pan(mid))l=mid; else r=mid-1; } printf("%d\n",l); } return 0;}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客:+

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/9195600.html

你可能感兴趣的文章
双向链表
查看>>
前端工程师的进阶之路
查看>>
Go 语言环境变量设置
查看>>
Centos7 配置 sendmail、postfix 端口号25、465
查看>>
ActiveMQ - 初体验,探讨JMS通信模型
查看>>
解密FFmpeg播放状态控制内幕
查看>>
路由器的密码恢复
查看>>
Scenario 6 –HP C7000 Virtual Connect FlexFabric SUS with A/A Uplinks, 8
查看>>
CentOS6.3 64位安装wine出错,牛人帮帮忙
查看>>
我的友情链接
查看>>
python简介
查看>>
python文件读写,以后就用with open语句
查看>>
精通脚本***学习笔记(二)
查看>>
typedef用法
查看>>
【Android必备】应用小部件概述(23)
查看>>
IOS图片的拉伸技巧
查看>>
semaphore.h
查看>>
python3版本mysql的操作
查看>>
foreach和map
查看>>
第一次,触碰Web App项目,栽过的那些坑。
查看>>