BZOJ1828[USACO 2010 Mar Gold 2.Barn Allocation]——贪心+线段树
题目描述

输入
输出
样例输入
1
3
2
1
3
1 3
2 5
2 3
4 5
样例输出
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
int l,r;
}s[100010];
int n,m,ans;
int a[100010];
int mi[400010];
int sign[400010];
void updata(int x)
{
mi[x]=min(mi[x<<1],mi[(x<<1)+1]);
}
void pushdown(int x,int l,int r)
{
if(sign[x])
{
mi[x<<1]+=sign[x];
sign[x<<1]+=sign[x];
mi[(x<<1)+1]+=sign[x];
sign[(x<<1)+1]+=sign[x];
sign[x]=0;
}
}
void build(int x,int l,int r)
{
int mid=(l+r)>>1;
if(l==r)
{
mi[x]=a[l];
return ;
}
build(x<<1,l,mid);
build((x<<1)+1,mid+1,r);
updata(x);
}
void change(int x,int l,int r,int L,int R,int v)
{
int mid=(l+r)>>1;
if(L<=l&&R>=r)
{
mi[x]+=v;
sign[x]+=v;
return ;
}
pushdown(x,l,r);
if(L<=mid)
{
change(x<<1,l,mid,L,R,v);
}
if(R>=mid+1)
{
change((x<<1)+1,mid+1,r,L,R,v);
}
updata(x);
}
bool cmp(node x,node y)
{
if(x.r!=y.r)
{
return x.r<y.r;
}
return x.l>y.l;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
build(1,1,n);
for(int i=1;i<=m;i++)
{
scanf("%d%d",&s[i].l,&s[i].r);
}
sort(s+1,s+1+m,cmp);
for(int i=1;i<=m;i++)
{
change(1,1,n,s[i].l,s[i].r,-1);
if(mi[1]<0)
{
change(1,1,n,s[i].l,s[i].r,1);
}
else
{
ans++;
}
}
printf("%d",ans);
}
BZOJ1828[USACO 2010 Mar Gold 2.Barn Allocation]——贪心+线段树的更多相关文章
- BZOJ1827[USACO 2010 Mar Gold 1.Great Cow Gathering]——树形DP
题目描述 Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来举办这次集会.每个奶牛居住在 N(1<=N<=100,000) 个农场 ...
- BZOJ1785[USACO 2010 Jan Gold 3.Cow Telephones]——贪心
题目描述 奶牛们建立了电话网络,这个网络可看作为是一棵无根树连接n(1 n 100,000)个节点,节点编号为1 .. n.每个节点可能是(电话交换机,或者电话机).每条电话线连接两个节点.第i条电话 ...
- BZOJ 1828 [Usaco2010 Mar]balloc 农场分配(贪心+线段树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1828 [题目大意] 现在有一些线段[l,r]的需求需要满足,i位置最多允许a[i]条线 ...
- bzoj 1828: [Usaco2010 Mar]balloc 农场分配【贪心+线段树】
长得挺唬人的贪心,按照右端点排序,用最小值线段树的询问判断当前牛是否能放进去,能的话更新线段树,ans++ 来自https://www.cnblogs.com/rausen/p/4529245.htm ...
- poj 2010 Moo University - Financial Aid (贪心+线段树)
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 骗一下访问量.... 题意大概是:从c个中选出n个 ...
- [USACO 2012 Mar Gold] Large Banner
传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=127 又是一道这种题目,遇到一次跪一次,这次终于硬着头皮看懂了题解,但是谢 ...
- Usaco 2010 Dec Gold Exercise(奶牛健美操)
/*codevs 3279 二分+dfs贪心检验 堆版本 re一个 爆栈了*/ #include<cstdio> #include<queue> #include<cst ...
- BZOJ1782[USACO 2010 Feb Gold 3.Slowing down]——dfs+treap
题目描述 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1…N)从粮仓走向他的自己的牧场.牧场构成了一棵树,粮仓在1号牧场.恰好有N-1条道路直接连接着牧场, ...
- BZOJ1916[USACO 2010 Open Gold 2.Water Slides]——DP+记忆化搜索
题目描述 受到秘鲁的马丘比丘的新式水上乐园的启发,Farmer John决定也为奶牛们建 一个水上乐园.当然,它最大的亮点就是新奇巨大的水上冲浪.超级轨道包含 E (1 <= E <=15 ...
随机推荐
- day88
ContentType 场景需求:比方说我们现有两种商品,但是他们对应着一个价格策略表,为了防止数据库的浪费,我们在价格策略中加入一个表名字段,一个表明对应的id字段,这样的设计既优化了数据库,还不怕 ...
- SpringBoot favicon.ico
默认的favicon.ico spring boot 默认输出spring的logo, 可以使用spring.mvc.favicon.enabled=false将其关闭 ############### ...
- [Spark][Python]DataFrame的左右连接例子
[Spark][Python]DataFrame的左右连接例子 $ hdfs dfs -cat people.json {"name":"Alice",&quo ...
- dpkg:错误:正在解析文件 '/var/lib/dpkg/updates/0014' 第 0 行附近:在字段名 #padding 中有换行符问题的解决方法
解决方案如下: sudo rm /var/lib/dpkg/updates/* sudo apt-get update python@ubuntu:~/Desktop/_Welcome_.jpg.ex ...
- [转载]sql 盲注之正则表达式攻击
[转载]sql 盲注之正则表达式攻击 -----------------------------------------MYSQL 5+-------------------------------- ...
- Rabbit and Grass
链接 [http://acm.hdu.edu.cn/showproblem.php?pid=1849] 题意 大学时光是浪漫的,女生是浪漫的,圣诞更是浪漫的,但是Rabbit和Grass这两个大学女生 ...
- linux第三次读书笔记
第七章:链接 一.编译器驱动程序 编译系统提供的调用预处理器.编译器.汇编器和链接器来构造目标文件的程序. 二.静态链接 三.目标文件 三种形式: 1.可重定位目标文件: 2.可执行目标文件: 3.共 ...
- 剑值offer:最小的k个数
这是在面试常遇到的topk问题. 题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解题思路: 思路一:用快排对数 ...
- 第三个Sprint ------第六天
分数计算界面代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:a ...
- Java对象及对象引用变量
Java对象及其引用 关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对 ...