2011年5月13日

poj 2352(树状数组)

摘要: 题意:按y递增的顺序给出n颗星星的坐标(y相等则x递增),每个星星的等级,等于在它左边且在它下边(包括水平和垂直方向)的星星的数量,求出等级为0到n-1的星星分别有多少个。代码:#include<iostream>#include<fstream>using namespace std;int n,m;struct e{ int s,t;};e a[15001];int b[32020];int lowbit(int x){ return x&(-x);}void add(int s){ while(s<=m) { b[s]++; s+=lowbit(s) 阅读全文

posted @ 2011-05-13 19:17 宇宙吾心 阅读(323) 评论(0) 推荐(0)

poj 2481

摘要: 题意:FJ有n头牛(编号为1~n),每一头牛都有一个测验值[S,E],如果对于牛i和牛j来说,它们的测验值满足下面的条件则证明牛i比牛j强壮:Si <= Sj andEj <= Ei and Ei - Si > Ej -Sj。现在已知每一头牛的测验值,要求输出每头牛有几头牛比其强壮。代码:#include<iostream>#include<fstream>using namespace std;int n,m;struct e{ int id,s,w;};e a[100011];int cmp(const void *a,const void *b) 阅读全文

posted @ 2011-05-13 18:58 宇宙吾心 阅读(789) 评论(0) 推荐(0)

poj 3067

摘要: 题意:日本东海岸有n个城市,西海岸有m个城市,现在要修建k条高铁连接东海岸的城市u和西海岸的城市v。问这k条高铁总共有多少个交点。代码:#include<iostream>#include<fstream>#include<vector>using namespace std;vector<long long> a[1001];long long n,m;long long b[1001];long long lowbit(long long x){ return x&(-x);}void add(long long s,long lon 阅读全文

posted @ 2011-05-13 17:26 宇宙吾心 阅读(272) 评论(0) 推荐(0)

poj 2299

摘要: 逆序数。归并或树状数组代码:#include<iostream>#include<fstream>using namespace std;struct e{ int id; int w;};e a[500001];int n;int cmp(const void *a,const void *b){ return (*(e*)b).w-(*(e*)a).w;}int b[500001];int lowbit(int s){ return s&(-s);}void add(int s){ while(s<=n) { b[s]+=1; s+=lowbit(s) 阅读全文

posted @ 2011-05-13 16:35 宇宙吾心 阅读(173) 评论(0) 推荐(0)

poj 1990

摘要: 第一道树状数组代码:#include<iostream>#include<fstream>using namespace std;int n;struct e{ int v,x;};e a[20001];long long cnt[20001],sum[20001];int lowbit(int x){ return x&(x^(x-1));}void modify(long long a[],int s,int t){ while(s<=20000) { a[s]+=t; s+=lowbit(s); }}long long getsum(long lon 阅读全文

posted @ 2011-05-13 15:41 宇宙吾心 阅读(412) 评论(0) 推荐(0)

导航