Uva-11525-Permutation
来源:互联网 发布:泰牛程序员吧 编辑:程序博客网 时间:2024/05/19 02:24
其中Si的含义应该为最后结果中,第i个数的逆序数个数,所以用线段树就可以直接得出。
线段树中所存的信息为L,R区间中存在合法的数的个数,在查询过程中不断的更新,最终便能够找到我们所需要的值。
代码:
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=10e4+10;int n,t[maxn*3];void Built(int L,int R,int index){ t[index]=R-L+1; if(L==R)return; int mid=(L+R)>>1; Built(L,mid,index<<1); Built(mid+1,R,index<<1|1);}int Search(int num,int L,int R,int index){ t[index]--; if(L==R)return L; int mid=(L+R)>>1; if(num<=t[index<<1])return Search(num,L,mid,index<<1); return Search(num-t[index<<1],mid+1,R,index<<1|1);}int main(){ int T; scanf("%d",&T); while(T--) {scanf("%d",&n);Built(1,n,1);for(int i=0;i<n;i++){ int ita; scanf("%d",&ita); printf("%d%c",Search(ita+1,1,n,1),i==n-1?'\n':' ');} } return 0;}
- Uva-11525-Permutation
- UVA 11525 Permutation
- uva 11525 Permutation
- UVA - 11525 Permutation
- Uva 11525 Permutation
- uva - 11525 Permutation
- UVA 11525Permutation
- uva 11525 Permutation
- UVA 11525 - Permutation(树状数组)
- UVA 11525 Permutation(树状数组)
- uva 11525 - Permutation(线段树)
- UVa 11525 Permutation (线段树)
- UVA 11525 Permutation(树状数组)
- 【UVA】11525-Permutation(线段树水题)
- UVa 11525 Permutation(二分+树状数组)
- UVA 11525 - Permutation(二分+树状数组)
- uva-10252-Common Permutation
- UVa 10252 Common Permutation
- PHP生成xml文件的几种方法
- SIGIR Paper Writing Tips
- JAVA基础 之 Collections
- dom4j+xpath读取xml文件配置Oracle数据库连接
- 设计模式笔记
- Uva-11525-Permutation
- NDK build
- 小明的数学题2
- JAVA基础 之 Collections
- linux 系统时间设置
- 你们知道什么是svn么?
- 第八周项目二
- android所有控件
- 很不错的PHP随机字符串的代码