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. ModuleNotFoundError: No module named 'requests'

    1.问题描述 DOS 执行 .py 脚本报错: ModuleNotFoundError: No module named 'requests' ModuleNotFoundError: No modu ...

  2. Java_oracle超出打开游标的最大数的原因和解决方案

    第一步:核查Oracle数据库 的游标的最大数 处理超出打开游标的最大数异常(ORA-01000: maximum open cursors exceeded) ORA-01000_maximum_o ...

  3. nginx+php负载均衡集群环境中的session共享方案梳理

    在网站使用nginx+php做负载均衡情况下,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态. 下面罗列几种nginx负载均衡 ...

  4. re模块(正则)

    一, 什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法. 在python中,正则内嵌在python中,并通过re模块实现,正则表达模式被编译成一系列 ...

  5. ruby安装sass和compass步骤

    依赖ruby,所以需要安装Ruby 如何安装Ruby呢?在windows下通过RubyInstaller来安装,安装过程中需要选择第二项 1.ruby -v 2.gem install sass (如 ...

  6. C:\Users\Administrator\.IntelliJIdea2017.3\system\tomcat\Unnamed_08_upload\work\Catalina\localhost\ROOT这个错误是找不到temp文件

    C:\Users\Administrator\.IntelliJIdea2017.3\system\tomcat\Unnamed_08_upload\work\Catalina\localhost\R ...

  7. CAS—认证原理

    CAS,Central Authentication Service—中央认证服务,是Yale 大学发起的一个企业级的.开源的项目,旨在为Web应用系统提供一种可靠的SSO解决方案.下面简单介绍SSO ...

  8. Android Studio Flavors的妙用(转)

    这两天发现Android Studio 的Flavors用起来相当给力!这里跟大家分享下: Flavors中文翻译过来叫“口味”,不知道确切叫法是啥,它的功能就是允许你的APP有多个不同的版本,不同版 ...

  9. java 解析域名得到host

    // 形如https://www.baidu.com 或 www.baidu.com, 判断这两种情况,并解析前者去掉http头,传入domain host // 方案1:正则表达式 + URI解析方 ...

  10. module.exports与exports的区别

    引言 每一个node.js执行文件,都自动创建一个module对象,同时,module对象会创建一个叫exports的属性,初始化的值是 {} 例子 foo.js exports.a = functi ...