Dual horsetail
来源:互联网 发布:msp430编程软件 编辑:程序博客网 时间:2024/06/03 19:02
题目链接; http://acm.fafu.edu.cn/problem.php?id=1564
题意:给一个数n,输出n被分成最小的集合数,要求集合里任意的X,Y,X&Y不能在同一个集合内
思路:找规律,发现每个数的二进制1的数量一样多的分到同一个集合,结果就为小于等于n的二进制1数量的最大值
代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<iostream>
#include<string>
#include<algorithm>
#include<queue>
using namespace std;
int a[33];
int main()
{
int T,t=0;
scanf("%d",&T);
for(t=1;t<32;t++)
a[t]=(1<<t) - 1;
t=0;
while(T--)
{
t++;
int n;
scanf("%d",&n);
int i;
for(i=1;i<32;i++)
{
if(n<a[i])
break;
}
printf("Case #%d: %d\n",t,i-1);
}
return 0;
}
0 0
- Dual horsetail
- dual
- dual
- dual
- oracel dual
- oracle dual
- Dual表
- Dual Palindromes
- dual简介
- (oracle)dual
- GC864-DUAL
- Oracle dual
- ORACLE DUAL
- dual表
- dual palindromes
- Dual Palindromes
- Dual Palindromes
- Dual Palindromes
- Linux内核参数(如kernel.shmmax)及Oracle相关参数调整(如SGA_MAX_SIZE)
- 在xcode7中使用纯代码编写工程准备工作
- maven+springMVC+mybatis+junit详细搭建过程
- 图像处理(二)
- Oracle性能调优
- Dual horsetail
- 图像特征提取之--PCA方法
- 【转】后期学习规范
- 《猜猜二次元》重温心中的经典动画片
- ViewPager不为人知的秘密
- DOS中的CD命令详解
- C# LINQ中如何使用split
- angularJS学习之路(二十四)---创建服务的五大方法---service
- c3p0及其配置