UVa 11205 - The broken pedometer
称号:给你p一个LED在同一个显示器组成n一个。显示每个显示器上的符号(LED的p长度01串)
问:用最少p几个比特位,您将能够这些区分n不同的符号。同样不能(其他位置上设置0处理)
分析:搜索、枚举。
从保留1位開始,一直搜索到p为。出现满足题意的解就退出,就可以。
枚举採用位运算,提高效率。
说明:寻找同样的时候,先排序。再推断相邻的就可以(n lg(n));也能够使用hash提高效率。
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio> using namespace std; int S[104];
int P[104]; int main()
{
int T,N,M,a,b;
while ( ~scanf("%d",&T) )
for ( int t = 1 ; t <= T ; ++ t ) {
scanf("%d%d",&N,&M);
for ( int i = 0 ; i < M ; ++ i ) {
b = 0;
for ( int j = 0 ; j < N ; ++ j ) {
scanf("%d",&a);
b <<= 1;
b += a;
}
S[i] = b;
} for ( int k = 1 ; k <= N ; ++ k ) {
int xx,yy,comb = (1<<k)-1,flag = 0;
while ( comb < (1<<N) ) {
/* 计算当前状态相应的集合 */
for ( int i = 0 ; i < M ; ++ i )
P[i] = S[i]&comb;
flag = 1;
sort( P, P+M );
for ( int i = 1 ; i < M ; ++ i )
if ( P[i] == P[i-1] ) {
flag = 0; break;
}
if ( flag ) {
printf("%d\n",k);
break;
}
/* 位运算计算下一集合,依照顺序递增 */
xx = comb&-comb,yy = comb+xx;
comb = ((comb&~yy)/xx>>1)|yy;
}
if ( flag ) break;
}
} return 0;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
UVa 11205 - The broken pedometer的更多相关文章
- UVA 11205 The broken pedometer(子集枚举)
B - The broken pedometer Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu ...
- UVa 11025 The broken pedometer【枚举子集】
题意:给出一个矩阵,这个矩阵由n个数的二进制表示,p表示用p位二进制来表示的一个数 问最少用多少列就能将这n个数区分开 枚举子集,然后统计每一种子集用了多少列,维护一个最小值 b[i]==1代表的是选 ...
- uva11025 The broken pedometer
6741870 ksq2013 UVA 11205 Accepted 60 C++11 5.3.0 1002 2016-08-04 14:25:22 题目大意如下:给定n个LED灯串,每个灯串由p ...
- UVa11205 The Broken Pedometer
// 题意:有P个LED灯,以及N个字符,要求选出个数最少的LED灯,使得即使只有这些灯正常工作,也能区分出这N个字符 // 题意抽象:输入两个整数P, N以及N行P列的01矩阵,找少的列,能区分所有 ...
- uva11205 The broken pedometer 子集生成
PS:此题我在网上找了很久的题解,发现前面好多题解的都是没有指导意义的.后来终于找到了一篇好的题解. 好的题解的链接:http://blog.csdn.net/u013382399/article/d ...
- 【例题 6-4 UVA - 11988】Broken Keyboard (a.k.a. Beiju Text)
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 会链表的插入操作的话.这个就不难了. 放置两个哨兵节点. 然后模拟插入一个节点的过程就好. 实时修改光标就好->即下一个插入的 ...
- UVA题目分类
题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics ...
- The broken pedometer-纯暴力枚举
The broken pedometer Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu i ...
- 备战NOIP每周写题记录(一)···不间断更新
※Recorded By ksq2013 //其实这段时间写的题远远大于这篇博文中的内容,只不过那些数以百记的基础题目实在没必要写在blog上; ※week one 2016.7.18 Monday ...
随机推荐
- BIEE11g BI_server Jvm參数调整
1.找到user_projects\domains\bifoundation_domain\bin文件夹 2.复制startWeblogic.sh为新的文件startAdminWeblogic.sh, ...
- codeforece Round#311 BCDE
B题 给我们n,m , m表示茶壶的容量 接下来2*n个数字,表示茶杯的容量,将这些茶杯分给n个男孩和n个女孩 可以倒x毫升的茶水给每个女孩,那么就要倒2x毫升的茶水给男孩,当然了,茶杯要装的下,且 ...
- POJ 1287 Networking(最小生成树)
题意 给你n个点 m条边 求最小生成树的权 这是最裸的最小生成树了 #include<cstdio> #include<cstring> #include<algor ...
- POJ训练计划2418_Hardwood Species(Trie树)
解题报告 Tire树. #include <iostream> #include <cstring> #include <cstdio> #include < ...
- 懒人模式Singleton模式Meyers版本号
直接看代码: /* Singleton模式保证:在一个程序,,一个类有且只有一个实例.并提供一个访问 它的全局访问点 在编程其中.很多情况下,需要确保有一类的一个实例 比如: windopws系统中仅 ...
- C++ 建设者继承
微通道公用号CodingRush 分享编程.算法.机器人leanring.数据挖掘.推荐系统.知识大数据计算框架,欢迎扫码关注. 子类继承了哪些东西? 子类在继承父类的时候,父类的public成员变量 ...
- 为什么android你用的越多,速度较慢的手机
依据第三方的调研数据显示,有 77% 的 Android 手机用户承认自己曾遭遇过手机变慢的影响,百度搜索"Android+ 卡慢",也有超过 460 万条结果. 在业内.Andr ...
- sql server基本流程语句
- div 浮动框
- Code-Based Configuration (EF6 onwards)
https://msdn.microsoft.com/en-us/data/jj680699#Using