Description

Input

第1行:两个用空格隔开的整数:N和M * 第2行到N+1行:第i+1行表示一个整数C_i * 第N+2到N+M+1行: 第i+N+1行表示2个整数 A_i和B_i

Output

* 第一行: 一个整数表示最多能够被满足的要求数

Sample Input

5 4
1
3
2
1
3
1 3
2 5
2 3
4 5

Sample Output

3
(题目翻译by hzwer)
这题要注意贪心顺序是从右到左(确定贪心顺序的方法是举反例),我在这点上wa了一下。
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct seg{
seg(){ind=0;}
int lim,ind;
}tr[400100];
struct req{
int l,r;
bool operator<(const req h)const{return r<h.r;}//贪心顺序从右到左;
}d[100100];
void pushup(int k)
{
tr[k].lim=min(tr[k<<1].lim,tr[k<<1|1].lim);
}
void pushdown(int k)
{
if(tr[k].ind){
tr[k<<1].lim-=tr[k].ind;
tr[k<<1].ind+=tr[k].ind;
tr[k<<1|1].lim-=tr[k].ind;
tr[k<<1|1].ind+=tr[k].ind;
tr[k].ind=0;
}
}
void build(int s,int t,int k)
{
if(!(s^t)){
scanf("%d",&tr[k].lim);
return;
}int m=(s+t)>>1;
build(s,m,k<<1);
build(m+1,t,k<<1|1);
pushup(k);
}
bool query(int s,int t,int k,int l,int r)
{
if(l<=s&&t<=r)return tr[k].lim>0;
pushdown(k);
int m=(s+t)>>1;
bool tp1=true,tp2=true;
if(l<=m)tp1=query(s,m,k<<1,l,r);
if(m<r)tp2=query(m+1,t,k<<1|1,l,r);
return tp1&tp2;
}
void update(int s,int t,int k,int l,int r)
{
if(l<=s&&t<=r){
tr[k].ind++;
tr[k].lim--;
return;
}pushdown(k);
int m=(s+t)>>1;
if(l<=m)update(s,m,k<<1,l,r);
if(m<r)update(m+1,t,k<<1|1,l,r);
pushup(k);
}
int main()
{
int n,m,res=0;
scanf("%d%d",&n,&m);
build(1,n,1);
for(int i=1;i<=m;i++)scanf("%d%d",&d[i].l,&d[i].r);
sort(d+1,d+1+m);
for(int i=1;i<=m;i++)
if(query(1,n,1,d[i].l,d[i].r)){
update(1,n,1,d[i].l,d[i].r);
++res;
}printf("%d\n",res);
return 0;
}

【bzoj1828】[Usaco2010 Mar]的更多相关文章

  1. 【BZOJ1827】[Usaco2010 Mar]gather 奶牛大集会 树形DP

    [BZOJ][Usaco2010 Mar]gather 奶牛大集会 Description Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来 ...

  2. 【BZOJ1915】[Usaco2010 Open]奶牛的跳格子游戏 DP+单调队列

    [BZOJ1915][Usaco2010 Open]奶牛的跳格子游戏 Description 奶牛们正在回味童年,玩一个类似跳格子的游戏,在这个游戏里,奶牛们在草地上画了一行N个格子,(3 <= ...

  3. 树状数组【bzoj1782】: [Usaco2010 Feb]slowdown 慢慢游

    [bzoj1782]: [Usaco2010 Feb]slowdown 慢慢游 Description 每天Farmer John的N头奶牛(1 <= N <= 100000,编号1-N) ...

  4. 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡 期望DP+高斯消元

    [BZOJ1778][Usaco2010 Hol]Dotp 驱逐猪猡 Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300 ...

  5. 【BZOJ1776】[Usaco2010 Hol]cowpol 奶牛政坛 树的直径

    [BZOJ1776][Usaco2010 Hol]cowpol 奶牛政坛 Description 农夫约翰的奶牛住在N (2 <= N <= 200,000)片不同的草地上,标号为1到N. ...

  6. 【bzoj1597】[Usaco2008 Mar]土地购买

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3739  Solved: 1376[Submit] ...

  7. 【dfs】BZOJ1703-[Usaco2007 Mar]Ranking the Cows 奶牛排名

    [题目大意] 农夫约翰有N(1≤N≤1000)头奶牛,每一头奶牛都有一个确定的独一无二的正整数产奶率.约翰想要让这些奶牛按产奶率从高到低排序,约翰已经比较了M(1≤M≤10000)对奶牛的产奶率,但他 ...

  8. BZOJ【1639】: [Usaco2007 Mar]Monthly Expense 月度开支

    1639: [Usaco2007 Mar]Monthly Expense 月度开支 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 700  Solved: ...

  9. 【bzoj2060】[Usaco2010 Nov]Visiting Cows拜访奶牛

    题目描述 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1<=N<=50000)个朋友.这些朋友被标号为1..N.这些奶牛有一个不同寻常的交通系统 ...

随机推荐

  1. OPENGLES 基础(一些链接和随笔)

    http://imgtec.eetrend.com/blog/3912 http://blog.csdn.net/zj8792612/article/details/16116145   在线着色器编 ...

  2. 计算c字符的长度,保证不超过2^30

    来自sqlite3源码 /* ** Compute a string length that is limited to what can be stored in ** lower 30 bits ...

  3. Android 隐式意图的配置

    本文地址:http://www.cnblogs.com/wuyudong/p/5677473.html,转载请注明源地址. <Android 显示意图激活另外一个Actitity>一文介绍 ...

  4. Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use.解决办法

    Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The ...

  5. linux 学习随笔-group和user管理

    1:/etc/passwd 打开该文件,可以看到每一行内容被分割成了7个字段比如:root:x:0:0:root:/root:/bin/bash 第一个字段表示用户名为root用户 第二个字段存放了该 ...

  6. (视频) 《快速创建网站》3.4 网站改版3分钟搞定 - WordPress主题安装和备份

    本文是<快速创建网站>系列的第8篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...

  7. ORACLE TO_CHAR函数格式化数字的出现空格的原因

    在这篇博客SQL挑战--如何高效生成编码里面我由于需要将数字格式化为字符,像12需要格式化0012这样的字符,所以使用了TO_CHAR(数字,'0000')这样的写法,后面0000表示缺省补零,测试过 ...

  8. 抛弃NVelocity,来玩玩Razor

    对于内容型,不易变动的东西我们都希望给它来个静态化,还有种情况就是比如新浪云不支持.net,为了能跑起我们的网站, 只能放些静态页面上面,外加jsonp来实现交互,我们知道.net中有很多模板引擎,但 ...

  9. plsql 查询结果窗口 不正常

    今天发现了一个很有趣的现象,一个查询语句查出来的结果窗口只显示一部分. 是因为查询语句中有全角的字符或者空格: 如果是sqlServer的话直接就报错了,而plsql不报错,显示如下

  10. cocos2d之json使用实例

    前端使用: json管理器中函数解析: 对宠物技能map的定义: 宠物技能表单--数据的基础定义: