Ural 1028. Stars(树状数组)
来源:互联网 发布:seo渠道 编辑:程序博客网 时间:2024/05/21 11:26
题目链接:点击打开链接
思路:
为了满足第一个条件, 我们可以先按照x坐标排序, 然后我们用树状数组来维护y坐标大小关系, 就可以在O(nlogn)的时间内求出答案了。
细节参见代码:
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <string>#include <vector>#include <stack>#include <bitset>#include <cstdlib>#include <cmath>#include <set>#include <list>#include <deque>#include <map>#include <queue>#define Max(a,b) ((a)>(b)?(a):(b))#define Min(a,b) ((a)<(b)?(a):(b))using namespace std;typedef long long ll;typedef long double ld;const double eps = 1e-6;const double PI = acos(-1);const int mod = 1000000000 + 7;const int INF = 0x3f3f3f3f;// & 0x7FFFFFFFconst int seed = 131;const ll INF64 = ll(1e18);const int maxn = 15111;int T,n,m,bit[32111],len,ans[maxn];struct node { int x, y; node(int x=0, int y=0):x(x), y(y) {} bool operator < (const node& rhs) const { if(x != rhs.x) return x < rhs.x; else return y < rhs.y; }}a[maxn];void add(int x, int d) { while(x <= len) { bit[x] += d; x += x & -x; }}int sum(int x) { int ans = 0; while(x > 0) { ans += bit[x]; x -= x & -x; } return ans;}int main() { while(~scanf("%d",&n)) { memset(bit, 0, sizeof(bit)); len = 0; for(int i = 1; i <= n; i++) { scanf("%d%d", &a[i].x, &a[i].y); a[i].x++; a[i].y++; ans[i-1] = 0; len = max(len, a[i].y); } sort(a+1, a+n+1); for(int i = 1; i <= n; i++) { int cur = sum(a[i].y); ans[cur]++; add(a[i].y, 1); } for(int i = 0; i < n; i++) printf("%d\n", ans[i]); } return 0;}
0 0
- Ural 1028. Stars(树状数组)
- ural 1028. Stars 树状数组
- Ural 1028 Stars(树状数组)
- POJ 2352|URAL 1028|Stars|树状数组
- Stars(树状数组)
- Stars(树状数组)
- Stars(树状数组)
- Stars(树状数组)
- Stars(树状数组)
- Stars(树状数组)
- hdu_1541 Stars (树状数组)
- poj2352 Stars (树状数组)
- POJ2352 Stars(树状数组)
- hdu1541 Stars(树状数组)
- HDU1541 Stars(树状数组)
- poj2352 Stars(树状数组)
- HDU1541--Stars(树状数组)
- poj2352 Stars(树状数组)
- Ubuntu1404安装ROS
- 最全iOS开发之第三方库
- Qt---按钮
- php异步任务处理 (php-resque)
- 概率dp LightOJ 1030 Discovering Gold
- Ural 1028. Stars(树状数组)
- HDOJ -- 1222 Wolf and Rabbit
- Git删除远程Tag、分支
- 自动拨打电话,自动发送短信,测试类
- 多校赛第七场
- 罪犯转移问题思考——2016百度编程题
- (OK) Fedora 24 开机自动启动脚本 - rc.local - rc-local.service
- Java SE学习笔记-多态
- Python基础入门—常用函数笔记