洛谷 P2879 [USACO07JAN]区间统计Tallest Cow
题目大意:
n头牛,其中最高身高为h,给出r对关系(x,y)
表示x能看到y,当且仅当y>=x并且x和y中间的牛都比
他们矮的时候,求每头牛的最高身高.
题解:贪心+差分
将每头牛一开始都设为最高高度。
每一对关系(x,y),我们将[x+1,y-1]这个区间的身高变为
min(x,y)-1.这样是不对了。因为要维护[x+1,y-1]这个区间里
各个元素的大小关系,所以要将[x+1,y-1]的元素身高都减1.
一开始我是用线段树做的,后来发现题解用的差分。
没有询问的区间修改,差分做就好了。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 10009
using namespace std; int n,I,H,R; int C[N]; struct Q{
int l,r;
}f[N]; bool cmp(Q a,Q b){
if(a.l==b.l)return a.r<b.r;
return a.l<b.l;
} int main(){
scanf("%d%d%d%d",&n,&I,&H,&R);
for(int i=;i<=R;i++){
scanf("%d%d",&f[i].l,&f[i].r);
if(f[i].l>f[i].r)swap(f[i].l,f[i].r);//忘记交换了
}
sort(f+,f+R+,cmp);
for(int i=;i<=R;i++){
if(f[i].l==f[i-].l&&f[i].r==f[i-].r)continue;
C[f[i].l+]++;C[f[i].r]--;
}
for(int i=;i<=n;i++){
C[i]+=C[i-];
printf("%d\n",H-C[i]);
}
return ;
}
洛谷 P2879 [USACO07JAN]区间统计Tallest Cow的更多相关文章
- 洛谷P2879 [USACO07JAN]区间统计Tallest Cow
To 洛谷.2879 区间统计 题目描述 FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. ...
- bzoj1635 / P2879 [USACO07JAN]区间统计Tallest Cow
P2879 [USACO07JAN]区间统计Tallest Cow 差分 对于每个限制$(l,r)$,我们建立一个差分数组$a[i]$ 使$a[l+1]--,a[r]++$,表示$(l,r)$区间内的 ...
- [Luogu2879][USACO07JAN]区间统计Tallest Cow
题目描述 FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a p ...
- 题解 P2879 【[USACO07JAN]区间统计Tallest Cow】
题目链接: https://www.luogu.org/problemnew/show/P2879 思路: 先不管最大高度,我们读入一对x,y.说明,x+1~y-1之间牛的身高都小于x,y. 然后不妨 ...
- [USACO07JAN]区间统计Tallest Cow
前缀和 sum[i]表示前i个数的和 每次读入a[i]的时候 sum[i] = sum[i - 1] + a[i]; 查询l ~ r区间的和: sum[r] - sum[l - 1] 差分 即前缀和的 ...
- [Luogu] 区间统计Tallest Cow
https://www.luogu.org/problemnew/show/P2879 差分 | 线段树 #include <iostream> #include <cstdio&g ...
- 洛谷P1712 [NOI2016]区间 尺取法+线段树+离散化
洛谷P1712 [NOI2016]区间 noi2016第一题(大概是签到题吧,可我还是不会) 链接在这里 题面可以看链接: 先看题意 这么大的l,r,先来个离散化 很容易,我们可以想到一个结论 假设一 ...
- 洛谷 1063 dp 区间dp
洛谷 1063 dp 区间dp 感觉做完这道提高组T1的题之后,受到了深深的碾压,,最近各种不在状态.. 初看这道题,不难发现它具有区间可并性,即(i, j)的最大值可以由(i, k) 与 (k+1, ...
- BZOJ5259/洛谷P4747: [Cerc2017]区间
BZOJ5259/洛谷P4747: [Cerc2017]区间 2019.8.5 [HZOI]NOIP模拟测试13 C.优美序列 思维好题,然而当成NOIP模拟题↑真的好吗... 洛谷和BZOJ都有,就 ...
随机推荐
- XAMPP安装指南
首先下载一个安装包 按照默认选项,依次安装: 去掉不必要的选项: 选择安装路径: 显示下图说明已经成功安装完成了. 打开XAMPP,启动Apache服务: 如果显示Apache服务无法启动,有如下错误 ...
- JZ2440裸机点亮LED【学习笔记】
平台:jz2440 作者:庄泽彬(欢迎转载,请注明作者) 说明:韦东山一期视频学习笔记 一.我们首先来做第一个实验,用汇编语言点亮板子上的LED. 1.1 LED的原理图 从下面的原理图可知LED1是 ...
- 《Maven实战》第10章 使用Maven进行测试
10.2maven-surefire-plugin插件 [生命周期]的[阶段]与[插件]的[目标]绑定 default生命周期的test阶段:使用单元测试框架运行测试 Maven内置绑定:defaul ...
- jedis客户端,取redis服务的值
package com.common.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; ...
- hibernate的多对多配置
Teacher.java package com.xiaostudy.domain; import java.util.HashSet; import java.util.Set; /** * Tea ...
- MQ 个人小结
在PCS项目: talking 发送队列1.1 创建@Beanpublic Queue orderTakingQueue() { return createQueue(orderTakingQueue ...
- 修改Tomcat默认端口号,避免与IDEA冲突
修改Tomcat默认端口号,避免与IDEA冲突 APT安装默认位置如下 /var/lib/tomcat8/conf 修改server.xml中的8080端口为8088或其他. 重启服务,试试看效果. ...
- ssh登录CentOS服务器(Aliyun)
ssh登录 (一).在本机使用命令生成ssh密钥:(-C代表注释,如果有多个密钥,加个注释就会很好区分) ssh-keygen -t rsa -C "mingwei" (二).将本 ...
- php将科学计算法得出的结果转换成原始数据
由于php最大只支持显示 15位因的数据运算,大于15位的2数加减乘除的数据的结果,会直接用科学计数法显示, 但在现实生活中,科学计数法不利于普通人识别,所以,本函数将:科学计数法的出的结果转换成原始 ...
- 习题-第7章Web自动化测试
一.选择题 1.如果火狐浏览器不在默认安装路径,编写Selenium的设置代码,横线处应该填入( ), System.setProperty(“webdriver.firefox._______ ...