hdu Cows
来源:互联网 发布:网络出版许可证查询 编辑:程序博客网 时间:2024/06/10 11:57
Problem Description
Farmer John's cows have discovered that the clover growing along the ridge of the hill (which we can think of as a one-dimensional number line) in his field is particularly good.
Farmer John has N cows (we number the cows from 1 to N). Each of Farmer John's N cows has a range of clover that she particularly likes (these ranges might overlap). The ranges are defined by a closed interval [S,E].
But some cows are strong and some are weak. Given two cows: cowi and cowj, their favourite clover range is [Si, Ei] and [Sj, Ej]. If Si <= Sj and Ej <= Ei and Ei - Si > Ej - Sj, we say that cowi is stronger than cowj.
For each cow, how many cows are stronger than her? Farmer John needs your help!
Farmer John has N cows (we number the cows from 1 to N). Each of Farmer John's N cows has a range of clover that she particularly likes (these ranges might overlap). The ranges are defined by a closed interval [S,E].
But some cows are strong and some are weak. Given two cows: cowi and cowj, their favourite clover range is [Si, Ei] and [Sj, Ej]. If Si <= Sj and Ej <= Ei and Ei - Si > Ej - Sj, we say that cowi is stronger than cowj.
For each cow, how many cows are stronger than her? Farmer John needs your help!
Input
The input contains multiple test cases.
For each test case, the first line is an integer N (1 <= N <= 105), which is the number of cows. Then come N lines, the i-th of which contains two integers: S and E(0 <= S < E <= 105) specifying the start end location respectively of a range preferred by some cow. Locations are given as distance from the start of the ridge.
The end of the input contains a single 0.
For each test case, the first line is an integer N (1 <= N <= 105), which is the number of cows. Then come N lines, the i-th of which contains two integers: S and E(0 <= S < E <= 105) specifying the start end location respectively of a range preferred by some cow. Locations are given as distance from the start of the ridge.
The end of the input contains a single 0.
Output
For each test case, output one line containing n space-separated integers, the i-th of which specifying the number of cows that are stronger than cowi.
Sample Input
31 20 33 40
Sample Output
1 0 0
题目的意思是,求每个区间包含在几个区间里面....
#include<iostream>#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;#define maxx 100010int tree[maxx];struct Node{int x,y,i;}node[maxx];int lowbit(int v){return v&-v;}void add(int v,int var){while(v<=maxx){tree[v]+=var;v+=lowbit(v);}}int cmp(Node a,Node b){if(a.y==b.y) return a.x<b.x;//这个要注意一下,如果相等,要把小的点放在前面 else return a.y>b.y;}int querry(int v){int sum=0;while(v>0){sum+=tree[v];v-=lowbit(v);}return sum;}int main(){int t,n,i,j,a,b,c[maxx];while(scanf("%d",&n),n){memset(tree,0,sizeof(tree));//初始化 memset(c,0,sizeof(c));for(i=1;i<=n;i++){node[i].i=i;//存位置,以便sort过后查找 scanf("%d%d",&node[i].x,&node[i].y);}sort(node+1,node+n+1,cmp);c[node[1].i]=querry(node[1].x+1);add(node[1].x+1,1);for(i=2;i<=n;i++){if(node[i].x==node[i-1].x && node[i].y==node[i-1].y){//判断重点 c[node[i].i]=c[node[i-1].i]; add(node[i].x+1,1);continue;}c[node[i].i]=querry(node[i].x+1);//计算前面的个数... add(node[i].x+1,1);}for(i=1;i<n;i++){printf("%d ",c[i]);}printf("%d\n",c[n]);}return 0;}
- hdu Cows
- hdu 3045 Picnic Cows
- hdu 3045 Picnic Cows
- 【HDU 3045】Picnic Cows
- HDU Lost Cows
- hdu 2711 Lost Cows
- hdu--Lost Cows
- hdu-3045 Picnic Cows
- hdu 2711 Lost Cows
- hdu(2713)Jumping Cows
- HDU ACM 2456 Aggressive cows
- poj 2182 || hdu 2711 Lost Cows
- HDU 3045 Picnic Cows【dp斜率优化】
- hdu 2387 Til the Cows Come Home
- HDU 3045 Picnic Cows 斜率优化DP
- HDU 3045 Picnic Cows (斜率优化DP)
- HDU - 2713 Jumping Cows(DP水题)
- HDU - 3045 Picnic Cows(斜率优化)
- java 子类与父类 转换
- 手势识别论文与资源(转)
- php中heredoc的使用方法
- 基于PXE的启动WINPE系统
- 行人检测论文集合(转)
- hdu Cows
- Android Handler and Message and Timer
- 数据库游标
- HDU 4397 - Rubik's Cube
- C#泛型<T>说明
- 图像特征(转)
- 叶树:任总喊你回家吃饭 (zz)
- English job interview Q&A
- JDBC获得生成主键的方法