zoukankan      html  css  js  c++  java
  • POJ 2182

    二分+树状数组水过了,从后往前确定数字即可。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <climits>
    #include <string.h>
    #include <queue>
    #include <cmath>
    #include <vector>
    #define lowbit(x) ((x)&(-(x)))
    using namespace std;
    const int N=8010;
    
    int num[N],n;
    int order[N];
    int ans[N];
    
    void update(int x,int w){
      for(;x<=n;x+=lowbit(x))	num[x]+=w;
    }
    
    int sum(int x){
      int s=0;
      for(;x;x-=lowbit(x))	s+=num[x];
      return s;
    }
    
    int find(int s){
    	int l=0,r=n,m;
    	int ret;
    	while(l<=r){
    		m=(l+r)/2;
    		if(sum(m)>=s){
    			ret=m;
    			r=m-1;
    		}
    		else l=m+1;
    	}
    	return ret;
    }
    
    int main(){
    	int pos;
    	while(scanf("%d",&n)!=EOF){
    		for(int i=1;i<=n;i++)
    		num[i]=0;
    		for(int i=1;i<=n;i++)
    		update(i,1);
    		for(int i=2;i<=n;i++){
    			scanf("%d",&order[i]);
    		}
    		order[1]=0;
    		for(int i=n;i>=1;i--){
    			pos=find(order[i]+1);
    			ans[i]=pos;
    			update(pos,-1);
    		}
    		for(int i=1;i<=n;i++)
    		printf("%d
    ",ans[i]);
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    realsense d435i qt 测试
    realsense d435i 数据 测试
    realsense d435i测试
    ubuntu torch GPU yolov5
    IfcLayeredItem
    ubuntu大服务器 pytorch环境配置
    condarc内容
    realsense point cloud
    yolov5 环境配置
    pip error
  • 原文地址:https://www.cnblogs.com/jie-dcai/p/4300352.html
Copyright © 2011-2022 走看看