简单解说

建立差分数组。

以最高的牛为高度基点,假设牛A和牛B能相互看见,就把牛A和牛B中间的牛高度都-1

最后对每头牛直接计算输出即可。

需要注意的是他给出的关系中:两头牛的顺序可能是颠倒的,而且关系可能是重复的

然后这题就没什么了

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <iostream>
#include <queue>
#include <cmath>
using namespace std;
const int maxn=20000000;
struct node{
int l,r;
bool operator <(const node& x)const{
if(l==x.l) return r<x.r;
return l<x.l;
}
}a[maxn];
int ans[maxn];
int main(){
int n,p,h,m;
cin>>n>>p>>h>>m;
for(int i=1;i<=m;i++){
scanf("%d %d",&a[i].l,&a[i].r);
if(a[i].l>a[i].r) swap(a[i].l,a[i].r);
}
sort(a+1,a+1+n);
for(int i=1;i<=n;i++){
if(a[i].l==a[i-1].l && a[i].r==a[i-1].r) continue;
ans[a[i].l+1]--;
ans[a[i].r]++;
}
int cnt=0;
for(int i=1;i<=n;i++){
cnt+=ans[i];
printf("%d\n",cnt+h);
}
return 0;
}

TallestCow的更多相关文章

随机推荐

  1. Windows10开启Ubuntu子系统并搭建Docker环境

    前言 很早就听说微软有个基于Ubuntu的子系统,一直也没机会尝试一下,之前也只是用VMware安装,但是还要单独安装软件,安装镜像,一点都不fit,所以就瞎折腾下(也是因为最近有空). 搭建Ubun ...

  2. unittest单元测试框架入门及应用

    一.简介 unittest是Python单元测试框架.unittest它支持自动化测试,在测试中使用setup(初始化)和shutdown(关闭销毁)操作,组织测试 用例为套件(批量运行),以及把测试 ...

  3. 记录RecyclerView的位置并进行恢复

    //监听RecyclerView滚动状态 mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Overri ...

  4. 对学长TD课程通(.apk)的评价

    界面简介: 界面分为三个部分,第一部分是对课程表的添加,第二部分是对空闲教室的查询,第三部分是实时时间的展示和对软件的评价,实用性很强,仅限于本校学生,界面观赏性较差,从界面上对人的吸引力不够, 实用 ...

  5. 没了IDE,你的Java项目还能Run起来吗~

    计算机只能识别机器码0101...编程语言->能执行的机器码 需要经过 预处理->编译->汇编->链接->机器码过程.一个语言处理系统的示意图如下: 编译器 是将源语言程 ...

  6. PIP 更换国内安装源

    linux: 修改 ~/.pip/pip.conf (没有就创建一个), 内容如下: [global] index-url = https://pypi.tuna.tsinghua.edu.cn/si ...

  7. 学而思Java开发岗位面试

    去学而思培优面试了. 有四道笔试题,后面会整理做法. 1.给一个文件夹,用递归的方式统计这个目录及其子目录不同文件类型的个数. 如,输出:jpg:几个文件,txt:几个文件... 2.不适用加减乘除, ...

  8. 【深度思考】JDK8中日期类型该如何使用?

    在JDK8之前,处理日期时间,我们主要使用3个类,Date.SimpleDateFormat和Calendar. 这3个类在使用时都或多或少的存在一些问题,比如SimpleDateFormat不是线程 ...

  9. 数据库连接池 Druid和C3p0

    datasource.properties数据源 #数据源 datasource.peoperties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc: ...

  10. windows 定时删除N天前日志脚本

    删除目录/P 表示目录/S 表示递归向下查询子目录/D 表示date -460 意思是460天以前 或者 -2018/11/9 表示这个日期以前的/C 开始执行命令 内部还有一个cmd @ISDIR= ...