zoukankan      html  css  js  c++  java
  • HDU1557权利选举

    /*
    思路:遍历所有2^n个集合,对于每个集合求票和,如果满足票为优胜团体,而再对集合每个成员比较,是否满足变成非优胜团体,是的话,对于该成员对应结果+1。
    重点:利用二进制思想,所有团体均对应0~2^n-1的一个十进制数对应,而判别团体成员则需要用到位运算,比如团体9,对应的是1001,则包含第四个团体和第一个团体。
          则判断团体号num,如果((num>>j)&1)==1,则是有该成员。这就是所谓状态压缩吧?
    
    */
    
    
    
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    int a[21],res[21];
    int n,sum;
    
    
    int main(){
    	
    	int cases,i,j,tmp;
    	scanf("%d",&cases);
    	while(cases--){
    		memset(res,0,sizeof(res));
    	  cin>>n;
    	  sum=0;
    	  for(i=0;i<n;i++){
    		  scanf("%d",&a[i]);
    	      sum+=a[i];
    	  }
    	  for(i=0;i<(1<<n);i++){
    		  tmp=0;
    		  for(j=0;j<n;j++)
    		  {
    			  if((i>>j)&1)
    			  tmp+=a[j];   //该团体的总票
    		  }
    		  if((tmp<<1)<sum) continue;
    		  for(j=0;j<n;j++){
    		      if((i>>j)&1)             //每一个成员
    			  {
    			   if( ((tmp-a[j])<<1) <sum) res[j]++;
    			  }
    		  }
    	     
    	  }
    	
    	for(i=0;i<n-1;i++)
           printf("%d ",res[i]);
    	printf("%d
    ",res[n-1]);
    	}
    
    	return 0;
    
    }
    高校俱乐部 选举问题:仅仅需要多加独裁判断!
  • 相关阅读:
    date format记录
    python同时遍历两个list
    Windbg分析DMP文件
    DNS原理及其解析过程(转)
    有关正则表达式的详细内容
    sizeof _countof _tcslen的比较
    关于androidX
    UML类图
    springBoot 访问html页面遇到的坑
    hashmap 的实现原理
  • 原文地址:https://www.cnblogs.com/dengyaolong/p/3697212.html
Copyright © 2011-2022 走看看