51Nod-1533-一堆的堆
来源:互联网 发布:密钥算法 加密算法 编辑:程序博客网 时间:2024/05/16 13:45
ACM模版
描述
题解
离线处理,先将数据离散化,也就是根据
大致上就这样,可以加一下输入外挂,十分好的一道题,貌似有人用主席树也可解,反正我不是特别会……%%%
代码
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>using namespace std;typedef pair<int, int> pii;const int MAXN = 2e5 + 10;int n;int arr[MAXN];int ans[MAXN];pii a[MAXN];int lowbit(int x){ return x & -x;}void add(int x, int d){ while (x < MAXN) { arr[x] += d; x += lowbit(x); }}int query(int x){ int ans = 0; while (x) { ans += arr[x]; x -= lowbit(x); } return ans;}void solve (){ memset(arr, 0, sizeof (arr)); memset(ans, 0, sizeof (ans)); for (int i = 1; i <= n; ) { int tmp = i; while (tmp <= n && a[tmp].first == a[i].first) { tmp++; } for (int j = i; j < tmp; j++) { int v = a[j].second; for (int k = 1; k <= n - 1 && k * (v - 1) + 2 <= n; k++) { ans[k] += query(min(n, k * v + 1)) - query(k * (v - 1) + 1); } } for (int j = i; j < tmp; j++) { add(a[j].second, 1); } i = tmp; }}template <class T>inline bool scan_d(T &ret){ char c; int sgn; if (c = getchar(), c == EOF) { return 0; //EOF } while (c != '-' && (c < '0' || c > '9')) { c = getchar(); } sgn = (c == '-') ? -1 : 1; ret = (c == '-') ? 0 : (c - '0'); while (c = getchar(), c >= '0' && c <= '9') { ret = ret * 10 + (c - '0'); } ret *= sgn; return 1;}int main(void){ scan_d(n); for (int i = 1; i <= n; i++) { scan_d(a[i].first); a[i].second = i; } sort(a + 1, a + n + 1); solve(); for (int i = 1; i < n - 1; i++) { printf("%d ", ans[i]); } printf("%d\n", ans[n - 1]); return 0;}
阅读全文
0 0
- 51Nod-1533-一堆的堆
- 51nod 1533 一堆的堆 & Codeforces538F A Heap of Heaps(树状数组||主席树)
- 51nod 1163 最高的奖励(贪心+堆)
- 51nod 1476 括号序列的最小代价【贪心】【堆】
- 坑爹的wp7 webbrowser 不支持的东西一堆又一堆
- 把一堆数字分成两堆,使两堆的和尽可能接近
- Nim游戏(一堆/N堆)-博弈
- 问题一堆的一天
- 斜率优化的一堆
- 实现一个方法,搭出最高的一堆箱子,箱堆的高度为每个箱子高度的总和
- 分石子的问题(n个石子放入m个筐子,两堆石子游戏,一堆石子游戏)
- 51nod 1459迷宫游戏 Dijkstra堆优化
- [堆]51 Nod 1461——稳定桌
- 图的遍历... 错误一堆...
- 一堆烂苹果的启发
- Intent一堆属性的意义
- 51nod 可能的路径
- 最大的奖励 51nod
- tarjan算法-双连通分量
- web前端的网页优化
- 例说数据结构&STL(一)——vector
- java SpringMVC中 POI读取数据库数据并写入Excel表格中,并实现下载功能
- 软件破解链接
- 51Nod-1533-一堆的堆
- getElementsByClassName
- 如何使用GDB调试段错误
- JSP、Request、response小结
- 南阳oj第6题(喷水装置(一))<贪心>
- 【HDU 1495】 非常可乐 (bfs + 模拟)
- 锁的优化及注意
- Win10搭建FTP服务器详细步骤
- Python蟒蛇绘制