BZOJ1135: [POI2009]Lyz
来源:互联网 发布:mac键盘pc机能用吗 编辑:程序博客网 时间:2024/05/21 02:22
似乎是hall定理的经典模型
贪心的想,对于人的任意一个集合,肯定编号是连续的l~r一段更容易使匹配不合法
写成柿子就是
把l,r移项,令
柿子可以化为
用线段树维护序列里的最大连续子序列和判一下
code:
#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#include<bitset>#include<string>#include<vector>#include<cstdio>#include<cstdlib>#include<cstring>#include<climits>#include<complex>#include<iostream>#include<algorithm>#define ll long longusing namespace std;inline void read(int &x){ char c; int f=1; while(!((c=getchar())>='0'&&c<='9')) if(c=='-') f=-f; x=c-'0'; while((c=getchar())>='0'&&c<='9') (x*=10)+=c-'0'; x*=f;}const int maxn = 210000;const int maxm = 510000;int n,N,m,K,d;ll a[maxn];struct segment{ll ls,rs,sum,c;}seg[maxn<<2];void pushup(const int x){ int lc=x<<1,rc=lc|1; seg[x].c=seg[lc].c+seg[rc].c; seg[x].sum=max(seg[lc].sum,seg[rc].sum); seg[x].sum=max(seg[x].sum,seg[lc].rs+seg[rc].ls); seg[x].ls=max(seg[lc].ls,seg[lc].c+seg[rc].ls); seg[x].rs=max(seg[rc].rs,seg[rc].c+seg[lc].rs);}void build(const int x,const int l,const int r){ if(l==r) { seg[x].c=seg[x].ls=seg[x].rs=seg[x].sum=a[l]; return; } int mid=l+r>>1; build(x<<1,l,mid); build(x<<1|1,mid+1,r); pushup(x);}int loc;void upd(const int x,const int l,const int r){ if(l==r) { seg[x].c=seg[x].ls=seg[x].rs=seg[x].sum=a[l]; return ; } int mid=l+r>>1; if(loc<=mid) upd(x<<1,l,mid); else upd(x<<1|1,mid+1,r); pushup(x);}int main(){ read(n); read(m); read(K); read(d); for(int i=1;i<=n;i++) a[i]=-K; build(1,1,N=n-d); for(int i=1;i<=m;i++) { int ri,xi; read(ri); read(xi); a[ri]+=(ll)xi; loc=ri; upd(1,1,N); puts(seg[1].sum>(ll)K*d?"NIE":"TAK"); } return 0;}
阅读全文
0 0
- BZOJ1135 [POI2009]Lyz
- bzoj1135 [POI2009]Lyz
- BZOJ1135: [POI2009]Lyz
- BZOJ1135: [POI2009]Lyz
- 1135: [POI2009]Lyz
- BZOJ 1135 [POI2009]Lyz 线段树
- Hall定理(bzoj 1135: [POI2009]Lyz)
- 【BZOJ】【P1135】【POI2009】【Lyz】【题解】【线段树+Hall定理】
- BZOJ 1135 POI2009 Lyz 线段树+Hall定理
- BZOJ 1135: [POI2009]Lyz Hall定理 + 线段树
- BZOJ 1135:[POI2009]Lyz 线段树 + HALL定理
- bzoj 1135: [POI2009]Lyz 线段树+Hall定理
- bzoj-1135 Lyz
- [poi2009]gas
- POI2009 题解
- LYZ Timer 计时软件(推荐)
- [BZOJ 1119]POI2009 slo
- [BZOJ 1120]POI2009 str
- 图片拉伸变形
- PHPStartOn
- 导航栏样式、tabBar导航栏
- 每日心得2017.12.11
- 光荣之路:产品测试规范(三)
- BZOJ1135: [POI2009]Lyz
- 迷宫
- Cherry Pickup解题心得
- 一个简单的蒙版制作
- maven的package与install命令区别
- 架构ssh与ssh配置区别
- vue 部署到线上问题
- MySQL基础1--基础操作
- caffe 源码导读(一)了解protobuf