称号:给你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的更多相关文章

  1. UVA 11205 The broken pedometer(子集枚举)

    B - The broken pedometer Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu ...

  2. UVa 11025 The broken pedometer【枚举子集】

    题意:给出一个矩阵,这个矩阵由n个数的二进制表示,p表示用p位二进制来表示的一个数 问最少用多少列就能将这n个数区分开 枚举子集,然后统计每一种子集用了多少列,维护一个最小值 b[i]==1代表的是选 ...

  3. 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 ...

  4. UVa11205 The Broken Pedometer

    // 题意:有P个LED灯,以及N个字符,要求选出个数最少的LED灯,使得即使只有这些灯正常工作,也能区分出这N个字符 // 题意抽象:输入两个整数P, N以及N行P列的01矩阵,找少的列,能区分所有 ...

  5. uva11205 The broken pedometer 子集生成

    PS:此题我在网上找了很久的题解,发现前面好多题解的都是没有指导意义的.后来终于找到了一篇好的题解. 好的题解的链接:http://blog.csdn.net/u013382399/article/d ...

  6. 【例题 6-4 UVA - 11988】Broken Keyboard (a.k.a. Beiju Text)

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 会链表的插入操作的话.这个就不难了. 放置两个哨兵节点. 然后模拟插入一个节点的过程就好. 实时修改光标就好->即下一个插入的 ...

  7. UVA题目分类

    题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics ...

  8. The broken pedometer-纯暴力枚举

    The broken pedometer Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu i ...

  9. 备战NOIP每周写题记录(一)···不间断更新

    ※Recorded By ksq2013 //其实这段时间写的题远远大于这篇博文中的内容,只不过那些数以百记的基础题目实在没必要写在blog上; ※week one 2016.7.18 Monday ...

随机推荐

  1. BIEE11g BI_server Jvm參数调整

    1.找到user_projects\domains\bifoundation_domain\bin文件夹 2.复制startWeblogic.sh为新的文件startAdminWeblogic.sh, ...

  2. codeforece Round#311 BCDE

    B题 给我们n,m ,  m表示茶壶的容量 接下来2*n个数字,表示茶杯的容量,将这些茶杯分给n个男孩和n个女孩 可以倒x毫升的茶水给每个女孩,那么就要倒2x毫升的茶水给男孩,当然了,茶杯要装的下,且 ...

  3. POJ 1287 Networking(最小生成树)

    题意  给你n个点 m条边  求最小生成树的权 这是最裸的最小生成树了 #include<cstdio> #include<cstring> #include<algor ...

  4. POJ训练计划2418_Hardwood Species(Trie树)

    解题报告 Tire树. #include <iostream> #include <cstring> #include <cstdio> #include < ...

  5. 懒人模式Singleton模式Meyers版本号

    直接看代码: /* Singleton模式保证:在一个程序,,一个类有且只有一个实例.并提供一个访问 它的全局访问点 在编程其中.很多情况下,需要确保有一类的一个实例 比如: windopws系统中仅 ...

  6. C++ 建设者继承

    微通道公用号CodingRush 分享编程.算法.机器人leanring.数据挖掘.推荐系统.知识大数据计算框架,欢迎扫码关注. 子类继承了哪些东西? 子类在继承父类的时候,父类的public成员变量 ...

  7. 为什么android你用的越多,速度较慢的手机

    依据第三方的调研数据显示,有 77% 的 Android 手机用户承认自己曾遭遇过手机变慢的影响,百度搜索"Android+ 卡慢",也有超过 460 万条结果. 在业内.Andr ...

  8. sql server基本流程语句

  9. div 浮动框

  10. Code-Based Configuration (EF6 onwards)

    https://msdn.microsoft.com/en-us/data/jj680699#Using