uva 1513 - Movie collection(树状数组)
来源:互联网 发布:软件学徒招聘骗局 编辑:程序博客网 时间:2024/05/23 11:55
题目连接:uva 1513 - Movie collection
题目大意:一个人喜欢收集电影,电影的碟子从小到大放好,现在给定他每次要看的电影编号,输出有多少个碟子在该电影的上端,每次看完一个将会放回顶端。
解题思路:树状数组,用一个数组记录每个编号的电影现在所处的位置。然后用树状数组维护个数即可。
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define lowbit(x) ((x)&(-x))const int maxn = 1e5+5;int N, M, fenw[maxn*2], pos[maxn];void add (int x, int v) { while (x < 2*maxn) { fenw[x] += v; x += lowbit(x); }}int sum (int x) { int ret = 0; while (x) { ret += fenw[x]; x -= lowbit(x); } return ret;}int main () { int cas; scanf("%d", &cas); while (cas--) { scanf("%d%d", &N, &M); memset(fenw, 0, sizeof(fenw)); int n = N, x; for (int i = 1; i <= N; i++) { pos[i] = N - i + 1; add(pos[i], 1); } for (int i = 1; i <= M; i++) { scanf("%d", &x); printf("%d%c", n - sum(pos[x]), i == M ? '\n' : ' '); add(pos[x], -1); pos[x] = ++N; add(pos[x], 1); } } return 0;}
0 0
- UVA 1513 - Movie collection(树状数组)
- 【UVA】1513-Movie collection(树状数组)
- uva 1513 - Movie collection(树状数组)
- UVA 1513-Movie collection(树状数组)
- UVA 1513 - Movie collection(树状数组)
- UVa 1513 Movie collection (树状数组)
- UVa 1513 / UVALive 5902 Movie collection (树状数组)
- UVa 1513 / UVALive 5902 Movie collection (树状数组)
- UVA 1513—— Movie collection(树状数组)
- uva 1513 - Movie collection--树状数组--预留前n个位置
- uva 1513 - Movie collection
- UVa:1513 Movie collection
- Uva-1513-Movie collection
- UVa-1513-Movie collection
- UVA 1513 Movie collection
- UVA 1513 Movie collection
- uva 1513 Movie collection
- UVA 1513 Movie collection
- 设计模式——建造者
- 程序员如何创业?
- 简单的计数器程序
- Delphi中多线程用Synchronize实现VCL数据同步显示
- #error用法
- uva 1513 - Movie collection(树状数组)
- POJ——Mobile phones
- Http-代理
- 中国十大特色购物网站
- [算法导论] 递归式求解的三种方法
- 即时改变badgeValue的值(使用KVO)
- eclipse字体颜色的设置方法
- 【POJ】1797 Heavy Transportation 二分+最短路
- iOS程序发布测试生成AD_HOC时需要的证书