zoj3635 Cinema in Akiba
来源:互联网 发布:linux guanji 编辑:程序博客网 时间:2024/05/16 14:38
一开始就想到应该是要用树状数组或线段树,但用树状数组尝试无果,然后就转向用线段树,感觉跟湘潭市赛的那道约瑟夫问题挺像,然后一敲果然就ok了。代码挺简单不多说。
#include<stdio.h>#define MAX 50005#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1int i,n,sum[MAX<<2],num[MAX],res[MAX];void build(int l,int r, int rt) { sum[rt]=r-l+1; //因为sum[rt]能轻易直接得到,所以就省去pushup了 if(l==r)return; int m=(l+r)>>1; build(lson); build(rson);}int update(int v,int l,int r,int rt){ sum[rt]--; if(l==r)return l; int m=(l+r)>>1; if(v<=sum[rt<<1]) return update(v,lson); else return update(v-sum[rt<<1],rson);}int main(){while(scanf("%d",&n)!=EOF){int m,q,ans,s;build(1,n,1);for(i=0;i<n;i++){scanf("%d",&num[i]);res[i]=update(num[i],1,n,1);}scanf("%d",&m);scanf("%d",&q);printf("%d",res[q-1]);for(i=1;i<m;i++){scanf("%d",&q);printf(" %d",res[q-1]);}printf("\n");}return 0;}
- ZOJ3635 Cinema in Akiba
- zoj3635 Cinema in Akiba
- zoj3635-Cinema in Akiba 树状数组+二分
- ZOJ3635——Cinema in Akiba(树状数组+二分)
- ZOJ-3635-Cinema in Akiba
- ZOJ 3635 Cinema in Akiba
- zoj 3635 Cinema in Akiba
- ZOJ 3635 Cinema in Akiba[ 块状数组 ]
- ZOJ 3635 Cinema in Akiba【线段树】
- ZOJ 3635 Cinema in Akiba(树状数组 + 二分)
- Poj 2828 Buy Tickets \ Zoj 3635 Cinema in Akiba
- ZOJ 3635 Cinema in Akiba (树状数组+二分)
- zoj 3635 Cinema in Akiba(树状数组+二分)
- ZOJ 3635 Cinema in Akiba(线段树)
- ZOJ 题目3635 Cinema in Akiba(线段树插空)
- ZOJ 3635 Cinema in Akiba(二分+树状数组)
- zoj 3635 Cinema in Akiba 二分+树状数组
- ZOJ Monthly, August 2012 - C Cinema in Akiba 树状数组+二分
- Delphi 与 C/C++ 数据类型对照表
- 在activity启动后立即弹出PopupWindow的两个方法
- QT坐标系统的变化
- JavaScript客户端与服务器端的五种通信方式
- 条件随机场 conditional random fields 及代码实现
- zoj3635 Cinema in Akiba
- AJAX基础讲解
- PN学习(2)
- 结构体所占空间大小的运算
- c# 扩展方法奇思妙用
- ASP.NET MVC 3 & Unity.MVC3
- List 转换成字符串
- ORA-01012:not logged on
- poj2954 - Triangle