【poj3263】 Tallest Cow
http://poj.org/problem?id=3263 (题目链接)
题意
n头奶牛排成一排,最高的一头I身高H,给出R个条件(a,b),表示a,b之间的奶牛都要比a矮,b的身高大于等于a。求每头奶牛最高能有多高。
Solution
差分确实很方便,这样就省去了线段树或者树状数组,而且时间复杂度也少了个log。
考虑对于每个条件(a,b),位于a,b之间的奶牛的身高最多也就是a-1,所以我们将区间[a-1,b-1]全部减去1,然后差分即可。
细节
注意会有重复,所以还要排个序去重。。幸好看了Discuss。
代码
// poj3263
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#define LL long long
#define inf 2147483640
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std; const int maxn=10010;
struct data {int l,r;}t[maxn];
int a[maxn]; bool cmp(data a,data b) {
return a.l==b.l ? a.r<b.r : a.l<b.l;
}
int main() {
int n,I,H,r;
scanf("%d%d%d%d",&n,&I,&H,&r);
for (int i=1;i<=r;i++) scanf("%d%d",&t[i].l,&t[i].r);
sort(t+1,t+1+r,cmp);
int tot=0;
for (int i=1;i<=r;i++) {
if (t[tot].l==t[i].l && t[tot].r==t[i].r) continue;
t[++tot]=t[i];
}
r=tot;
for (int i=1;i<=r;i++) {
if (t[i].l<t[i].r-1) a[t[i].l+1]--,a[t[i].r]++;
else if (t[i].l>t[i].r+1) a[t[i].r+1]--,a[t[i].l]++;
}
int x=H;
for (int i=1;i<=n;i++) {
x+=a[i];
if (i==I) printf("%d\n",H);
else printf("%d\n",x);
}
return 0;
}
【poj3263】 Tallest Cow的更多相关文章
- 【差分】Tallest Cow
题目 FJ's N(1≤N≤10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a positive ...
- 【POJ 3263】 Tallest Cow
[题目链接] http://poj.org/problem?id=3263 [算法] 若A和B两头牛可以互相看见,那么说明中间的牛的高度都至少比它们少1,因此,我们可以引入一个差分数组c 对于每组关系 ...
- 【USACO】The Cow Prom
[题目链接] 点击打开链接 [算法] tarjan求强连通分量 [代码] #include<bits/stdc++.h> #define MAXN 20005 using namespac ...
- 【POJ3268】Silver Cow Party 最短
意甲冠军:一群奶牛去的地方.去回,然后回去寻找最伟大值. 题解:两遍最短路,结束.邻接矩阵存边能够避免建反图. #include <cstdio> #include <cstring ...
- 【poj3623】 Best Cow Line, Gold
http://poj.org/problem?id=3623 (题目链接) 题意 给出一个字符串,每次可以取首或尾接到一个新的字符串后面,求构出的字典序最小的新字符串. Solution 首先可以发现 ...
- 【POJ】3270.Cow Sorting
题解 用到一点群论的知识! 我们发现把操作写成一个置换后,一定是单个置换圈的内进行操作,把置换圈进行扩大的操作不优 我们有两个办法,一个是用全局最小的换进来,代替这个圈里最小的值,交换操作完成后再换出 ...
- 【置换群】poj3270 Cow Sorting
并不应该叫置换群……只是用到了置换而已,并没有群. 题解看这个吧,我就不写了:http://www.cnblogs.com/kuangbin/archive/2012/09/03/2669013.ht ...
- 【POJ】3660 Cow Contest
题目链接:http://poj.org/problem?id=3660 题意:n头牛比赛,有m场比赛,两两比赛,前面的就是赢家.问你能确认几头牛的名次. 题解:首先介绍个东西,传递闭包,它可以确定尽可 ...
- 【图论】USACO07NOV Cow Relays G
题目大意 洛谷链接 给定一张\(T\)条边的无向连通图,求从\(S\)到\(E\)经过\(N\)条边的最短路长度. 输入格式 第一行四个正整数\(N,T,S,E\),意义如题面所示. 接下来\(T\) ...
随机推荐
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
一.未在本地计算机上注册“microsoft.ACE.oledb.4.0”提供程序 http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c ...
- CefSharp的引用、配置、实例
CefSharp的引用.配置.实例与报错排除(源码) Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfro ...
- ssh生成key不交互
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P "" 首次执行不交互 第二次再次执行会让输入y
- react native中的欢迎页(解决首加载白屏)
参照网页: http://blog.csdn.net/fengyuzhengfan/article/details/52712829 首先是在原生中写一些方法,然后通过react native中js去 ...
- 【转】aspx与aspx.cs的关系
原文地址: http://www.cnblogs.com/axzxs2001/archive/2009/01/19/1378383.html 在vs中,有很多朋友问起,在一个网站项目中的aspx和as ...
- STM32 控制红外线收发
买了一块STM32的板子,这次需要将IR的code移植到STM32上面,因为STM32成本比树莓派低得多,所以 一些简单的外设挂在STM32上就行了. 我买的板子的型号是STM32F103C8T6,价 ...
- 写个PHP框架吧
肯定会问:现在的PHP框架那么多了,为什么还要写一个PHP框架呢? 1.时代:PHP7来了,现在的所有框架都是基于PHP5.x的.到时候PHP7正式推广出来,现有的框架都不能发挥PHP7的最大性能优势 ...
- StackExchange.Redis--纯干货喂饱你
Redis和StackExchange.Redis redis有多个数据库1.redis 中的每一个数据库,都由一个 redisDb 的结构存储.其中,redisDb.id 存储着 redis 数据库 ...
- [BZOJ1116][Poi2008]LCO(并查集)
题目:http://hzwer.com/3010.html 分析:注意这里无向边是对入度没有贡献的. 那么对于一个n个点的连通块而言,如果它是一颗树(n-1条边),那么把所有边全部从某个根开始向下指, ...
- Service之来电监听(失败的案例)
Service:服务,可以理解成一个运行再后台没有界面的Activity,集成于Seriver,是四大组件之一 Service的继承关系:Service-->ContextWrapper--&g ...