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\n",res[n-1]);
} return 0; }
高校俱乐部 选举问题:仅仅需要多加独裁判断!
HDU1557权利选举的更多相关文章
- Zookeeper系列五:Master选举、ZK高级特性:基本模型
一.Master选举 1. master选举原理: 有多个master,每次只能有一个master负责主要的工作,其他的master作为备份,同时对负责工作的master进行监听,一旦负责工作的mas ...
- zookeeper【4】master选举
考虑7*24小时向外提供服务的系统,不能有单点故障,于是我们使用集群,采用的是Master+Slave.集群中有一台主机和多台备机,由主机向外提 供服务,备机监听主机状态,一旦主机宕机,备机必需迅速接 ...
- ZooKeeper 典型应用场景-Master选举
master选举 1.使用场景及结构 现在很多时候我们的服务需要7*24小时工作,假如一台机器挂了,我们希望能有其它机器顶替它继续工作.此类问题现在多采用master-salve模式,也就是常说的主从 ...
- 【分布式】Zookeeper的Leader选举
一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...
- zookeeper原理解析-选举
1)QuorumPeerMain加载 Zookeeper集群启动的入口类是QuorumPeerMain来加载配置启动QuorumPeer线程.首先我们来看下QuorumPeer, 谷歌翻译quorum ...
- 基于Lease分布式系统重试服务选举
/** * Copyright (c) 2015, www.cubbery.com. All rights reserved. */ package com.cubbery.event.retry; ...
- Curator leader 选举(一)
要想使用Leader选举功能,需要添加recipes包,可以在maven中添加如下依赖: <dependency> <groupId>org.apache.curator< ...
- (原)3.1 Zookeeper应用 - Master选举
本文为原创文章,转载请注明出处,谢谢 Master 选举 1.原理 服务器争抢创建标志为Master的临时节点 服务器监听标志为Master的临时节点,当监测到节点删除事件后展开新的一轮争抢 某个服务 ...
- zookeeper选举原理
zookeeper的领导者选举和原子广播 目录: 1.工作原理概述 2.Fast Leader选举算法(领导者选举) 3.Leader与Follower同步数据(原子广播) ...
随机推荐
- visual studio 资源视图 空白 解决方案
visual studio 资源视图打开后显示空白的解决方案步骤: 在解决方案view下,右键点击工程 1 unload projects 完成第一步后仍然在解决方案view下,右键点击工程 2 re ...
- JavaScript高级程序设计42.pdf
IE中的事件对象 要访问IE中的event对象有几种不同的方式,取决于指定事件处理程序的方法.在使用DOM0级方法添加事件处理程序时,event对象作为window对象的一个属性存在 wondow.e ...
- 【解决】小米M1刷机教程(卡刷)
1.下载合适的rom 下载地址为:http://rom.xiaomi.cn/ 选择合适的机型.硬件版本.固件类.软件版本后,点击“搜索”后,下载合适版本即可. 2.备份 个人手机主要需要备份的项目如下 ...
- How to effectively work with multiple files in Vim?
Why not use tabs (introduced in Vim 7)? You can switch between tabs with :tabn and :tabp, With :tabe ...
- man命令
man,这个命令,非常好!后续,更新
- MySQL 优化Limit分页
很多时候.我们需要选择出从指定位置开始的指定行数.此时.limit笑了 对于limit的定义是: limit x,y 表示从第x行开始选择y条记录 在业务需要 ...
- Windows版 mysql 5.7.16安装
MySQL 5.7版本安装教程-踩坑总结 下载 MySQL下载地址选择下载64位(看自己电脑是32位还是64位) 点击下载之后,它会让你登录,没有Oracle账户,跟着它的步骤注册一个就好了. 安装 ...
- sql server 查看表结构说明
select c.name as [字段名],t.name as [字段类型] ,convert(bit,c.IsNullable) as [可否为空] ,convert(bit,case when ...
- Mesh.Bake Scaled Mesh PhysX CollisionData的性能问题
最近在做项目优化时,遇到Mesh.Bake Scaled Mesh PhysX CollisionData这个问题,随手记录一下. profiler中显示的cpu波峰瓶颈中,Mesh.Bake Sca ...
- Day05 - Python 常用模块
1. 模块简介 模块就是一个保存了 Python 代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. 模块也是 Python 对象,具有随机的名字属性用来绑定或引用. 下例是个简单的模 ...