• ZOJ-3870 Team Formation


    题目大意:给n个正数,找出满足A^B>max(A,B)的对数。

    题目分析:

    代码如下:

    # include<iostream>
    # include<cstdio>
    # include<cstring>
    # include<vector>
    # include<queue>
    # include<list>
    # include<set>
    # include<map>
    # include<string>
    # include<cmath>
    # include<cstdlib>
    # include<algorithm>
    using namespace std;
    # define LL long long
    
    const int N=1005;
    const int INF=1000000000;
    
    int n;
    int a[N*100];
    int p[N*100];
    
    int getLpos(int l,int r,int x)
    {
    	while(l<r){
    		int mid=l+(r-l)/2;
    		if(p[mid]<x)
    			l=mid+1;
    		else
    			r=mid;
    	}
    	return l;
    }
    
    int getRpos(int l,int r,int x)
    {
    	while(l<r){
    		int mid=l+(r-l)/2;
    		if(p[mid]>x)
    			r=mid;
    		else
    			l=mid+1;
    	}
    	return l;
    }
    
    int main()
    {
    	int T;
    	scanf("%d",&T);
    	while(T--)
    	{
    		scanf("%d",&n);
    		for(int i=0;i<n;++i){
    			scanf("%d",a+i);
    		}
    		sort(a,a+n);
    		for(int i=0;i<n;++i){
    			for(int j=31;j>=0;--j){
    				if(a[i]&(1<<j)){
    					p[i]=j;
    					break;
    				}
    			}
    		}
    		int ans=0;
    		for(int i=0;i<n;++i){
    			for(int j=p[i]-1;j>=0;--j){
    				if(a[i]&(1<<j)) continue;
    				int l=getLpos(0,i,j);
    				int r=getRpos(0,i,j);
    				ans+=r-l;
    				//cout<<i<<' '<<l<<' '<<r<<endl;
    			}
    		}
    		printf("%d
    ",ans);
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    JQuery操作DOM
    JQuery事件和动画
    Jquery选择器
    初学JQuery
    JavaScript对象及面向对象
    JavaScript操作DOM
    JavaScript操作BOM
    JavaScript基础
    网络流之最大流Dinic算法模版
    杭电1532----Drainage Ditches『最大流』
  • 原文地址:https://www.cnblogs.com/20143605--pcx/p/5399530.html
Copyright © 2020-2023  润新知