FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a positive integer height (which is a bit of secret). You are told only the height H (1 ≤ H ≤ 1,000,000) of the tallest cow along with the index I of that cow.

FJ has made a list of R (0 ≤ R ≤ 10,000) lines of the form "cow 17 sees cow 34". This means that cow 34 is at least as tall as cow 17, and that every cow between 17 and 34 has a height that is strictly smaller than that of cow 17.

For each cow from 1..N, determine its maximum possible height, such that all of the information given is still correct. It is guaranteed that it is possible to satisfy all the constraints.

Input

Line 1: Four space-separated integers: N, I, H and R
Lines 2..
R+1: Two distinct space-separated integers
A and
B (1 ≤
A,
B
N), indicating that cow
A can see cow
B.

Output

Lines 1..
N: Line
i contains the maximum possible height of cow
i.

Sample Input

9 3 5 5
1 3
5 3
4 3
3 7
9 8

Sample Output

5
4
5
3
4
4
5
5
5 题意:n头牛 第i个牛最高,高度为h
然后有r个关系 说明这个关系中的两头牛相互看的见(他们中间的牛高度比他们矮)
求所有牛最大可能的高度 思路:
1、既然给出每个关系中x、y两头牛相互可以看见,那么他们之间的牛的高度肯定比他要矮,所以每次给出x、y,我们只需要将x+1到y-1的牛高度全部-1,这样最后就知道了他们之间的最小高度差,
再把每个cow【i】+h O(NR)
2、我们可以优化一下,就是说给你x、y两头牛,你在x+1的位置-1,再y的位置+1,这样我们就记录了这个关系,你从x遍历到y,让cow【i】+=cow【i-1】,你会发现,他每个x+1到y-1都是-1而x、y则是0,
我们可以把所有的关系先记录下来,然后遍历就可以知道他们之间的最小高度差,然后cow【i】+h O(N+R) 坑点:记得去重
 #include<cstdio>
#include<iostream>
#include<map>
using namespace std;
typedef pair<int,int> P;
const int maxn = 1e4+;
int n,i,h,r;
int ans[maxn];
map<P,int>mp;
int main()
{
scanf("%d%d%d%d",&n,&i,&h,&r);
for(int i=;i<=r;i++)
{
int x,y;
scanf("%d%d",&x,&y);
if(x > y)swap(x,y);
if(mp[P(x,y)])continue;
mp[P(x,y)]=;
for(int j=x+;j<y;j++)
{
ans[j]--;
} }
for(int i=;i<=n;i++)
{
printf("%d\n",ans[i]+h);
}
}
 #include<cstdio>
#include<iostream>
#include<map>
using namespace std;
typedef pair<int,int> P;
const int maxn = 1e4+;
int n,i,h,r;
int ans[maxn];
map<P,int>mp;
int main()
{
scanf("%d%d%d%d",&n,&i,&h,&r);
for(int i=;i<=r;i++)
{
int x,y;
scanf("%d%d",&x,&y);
if(x > y)swap(x,y);
if(mp[P(x,y)])continue;
mp[P(x,y)]=;
ans[x+]--;
ans[y]++;
}
for(int i=;i<=n;i++)
{
ans[i] += ans[i-];
printf("%d\n",ans[i]+h);
}
}

Tallest Cow POJ - 3263 (区间点修改)的更多相关文章

  1. POJ 3263 Tallest Cow 题解

    题目 FJ's \(N (1 ≤ N ≤ 10,000)\) cows conveniently indexed 1..N are standing in a line. Each cow has a ...

  2. poj 3263 Tallest Cow(线段树)

    Language: Default Tallest Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 1964   Ac ...

  3. 洛谷P2879 [USACO07JAN]区间统计Tallest Cow

    To 洛谷.2879 区间统计 题目描述 FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. ...

  4. bzoj1635 / P2879 [USACO07JAN]区间统计Tallest Cow

    P2879 [USACO07JAN]区间统计Tallest Cow 差分 对于每个限制$(l,r)$,我们建立一个差分数组$a[i]$ 使$a[l+1]--,a[r]++$,表示$(l,r)$区间内的 ...

  5. [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 ...

  6. poj3263 Tallest Cow

    题意略去. 考虑给定的R对pair(A, B). 即A能看见B,这意味着B不比A低,并且区间内部的所有元素的高度严格小于A的高度. 我们规定区间的方向:若A > B,为反方向,反之称为正方向. ...

  7. POJ 3264 区间最大最小值Sparse_Table算法

    题目链接:http://poj.org/problem?id=3264 Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total ...

  8. poj 3264 区间最大最小值 RMQ问题之Sparse_Table算法

    Balanced Lineup Time Limit: 5000 MS Memory Limit: 0 KB 64-bit integer IO format: %I64d , %I64u Java ...

  9. 【BZOJ】1635: [Usaco2007 Jan]Tallest Cow 最高的牛(差分序列)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1635 差分序列是个好东西啊....很多地方都用了啊,,, 线性的进行区间操作orz 有题可知 h[a ...

随机推荐

  1. Android 组件化方案探索与思考

    Android 组件化方案探索与思考 组件化项目,通过gradle脚本,实现module在编译期隔离,运行期按需加载,实现组件间解耦,高效单独调试. 本项目github地址 https://githu ...

  2. SpringMVC简介

    一.SpringMVC 是什么? 后续编辑,先上Demo>> SpringMVCDemo

  3. 关于python3链接虚拟机MongoDB 遇到的问题总结

    pymongo.errors.ServerSelectionTimeoutError: 192.168.12.230:27017: [Errno 61] Connection refused 1.如果 ...

  4. Linux 用户(user)和用户组(group)管理概述

    一.理解Linux的单用户多任务,多用户多任务概念: Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念: 1.Linux 的单用户多任务:单用户多任务:比如我们 ...

  5. 补充的flask实例化参数以及信号

    一.实例化补充 instance_path和instance_relative_config是配合来用的.这两个参数是用来找配置文件的,当用app.config.from_pyfile('settin ...

  6. Microsoft Graph 概述

    这个系列文章 已经进行到了实质的阶段,继上一篇介绍了如何搭建Office 365开发环境之后,我会通过这篇文章给大家介绍一个非常重要的概念:Microsoft Graph.它之所以重要,首先是因为它是 ...

  7. 【python】内存相关

    1.  /proc/pid/status 可以查看进程相关的详细信息,当内存异常时可查看 参考:http://blog.csdn.net/beckdon/article/details/4849190 ...

  8. java----AOP框架理解

    面向切面编程: 通过动态代理+加配置文件 目的解耦 给主逻辑添加一些修饰功能,但是不在主逻辑代码中进行修改,有点类似python中的装饰器,调用方法还是是通过接口的那个类来调用: import jav ...

  9. IntersectionObserver API 使用教程

    转载:原文地址:http://www.ruanyifeng.com/blog/2016/11/intersectionobserver_api.html 网页开发时,常常需要了解某个元素是否进入了&q ...

  10. Tomcat配置域名/IP访问及其中遇到的问题注意事项

    1.先在tomcat下的conf下找到server.xml文件,用记事本打开后,首先对端口号进行修改,以前一直以为8080是默认的端口号,其实默认的端口号是80 <Connector port= ...