题目大意:题中给了一种例子,LED的七根灯管不同的开关方式显示0到9的数字。其中可以去掉第六根灯管(可能去掉其他也可以,没细究)也就是只要六根灯管就可以区分所有的数字。简单理解可以认为是7位的一个二进制数,每个字符有不同的二进制数。开为1,关为0。最少需要几个位可以区分所有字符。输入r,l。r代表几位的二进制,l代表有几个字符。

解题思路:用子集生成的增量构造法。这是一个可以求一个集合所有集合的方法。我们对每一个子集都对应二进制的位,算出只取这些位计算出的每个字符的二进制数的大小是否都不一样。都不一样代表这个子集的元素数就可以是需要的位。

ac代码:

#include <iostream>
#include <cmath>
#include <set>
using namespace std;
int n, r, l, pu[105][105], a[105], len;
set <int>se;
void print_subset(int cur)
{se.clear();int sum, minu;for (int i=0; i<l; i++){sum = 0;for (int j=0; j<cur; j++)sum += pu[i][ a[j] ] * pow(2, a[j]);if (!se.count(sum))se.insert(sum);}if (se.size() == l && cur < len)len = cur;       if (cur)minu = a[cur-1] + 1;elseminu = 0;for (int i=minu; i<r; i++){a[cur] = i;print_subset(cur+1);}
}
int main()
{scanf("%d", &n);while (n--){scanf("%d%d", &r, &l);len = r;for (int i=0; i<l; i++)   for (int j=0; j<r; j++)scanf("%d", &pu[i][j]);print_subset(0);printf("%d\n", len);}
return 0;
}

UVA 11205 - The broken pedometer相关推荐

  1. uva 11205 The broken pedometer

    刚开始一列一列考虑,最后再减去能去掉几列,后来才发现是错误的.单独考虑某一列,同时去掉几列时,单独考虑的不一定成立.后来一查是算法竞赛入门经典里面的p188页的位向量法.原来一直以为这边书空有理论,现 ...

  2. UVaOJ 11205 - The broken pedometer

    --by A Code Rabbit Description 有p个LED灯,可以组成一个灯牌. 灯牌上可以显示一些有意义的符号,比如显示数字啥的. 现在有n个灯牌,显示的符号各不相同. 问你最少用几 ...

  3. 11205 - The broken pedometer

    语言:C++ 描述:这道题其实一开始自己就是错误思维,题目就是通过最少的二进制位表示所有的数,也就是说存在自由组合的问题,不过存在这样的问题:如果一列二进制数被删去后,可以使列数减一来表示了所有的数了 ...

  4. UVa11205 The Broken Pedometer

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

  5. 第六周 8.23-8.29

    8.23 POJ 3311 Hie with the Pie TSP问题. 先跑一遍Floyd.再状压dp. dp[i][j]表示经过集合i的点最后到达j的最短距离. 转移:取集合i中任意一点j.如果 ...

  6. 提取了下刘汝佳推荐的题号...

    今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started    10055 - Hashmat the Brave Warrior ...

  7. TYUT-A专题题解(一)

    TYUT-A专题题解(一) 01A Ad Hoc UVA353 LA5247 Pesky Palindromes[回文] - 海岛Blog - CSDN博客 UVA947 Master Mind He ...

  8. Competitive Programming 3题解

    题目一览: Competitive Programming 3: The New Lower Bound of Programming Contests(1) Competitive Programm ...

  9. AOAPC I: Beginning Algorithm Contests 题解

    AOAPC I: Beginning Algorithm Contests 题解 AOAPC I: Beginning Algorithm Contests (Rujia Liu) - Virtual ...

最新文章

  1. 多形态MVC式Web架构:完成实时响应
  2. 空调能窃听插座能放火?物联网成了“危”联网
  3. qq分享 设备未授权报错解决方案_金融行业思科设备典型网络故障案例:76系列典型案例(四)...
  4. Mapillary发布世界最大交通标志数据集,用于自动驾驶研究
  5. SAP License:对虚拟利润中心的几点认识
  6. 整理: JAVA错误处理集锦
  7. thinkphp5 return 返回空_杨丞琳演唱会意外踩空,从两层楼高的舞台掉落,李荣浩心疼发文...
  8. 存数字,储未来——新华三2018存储瞄准闪存、海量、AI与超融合
  9. 预训练语言模型关系图+必读论文列表,清华荣誉出品
  10. C# 开发 Windows 服务 使用Log4net 组件 不能生成日志文件
  11. oracle 方法函数,执行oracle函数的四种方法
  12. 手机号码归属地查询,手机号码归属地批量查询
  13. 芯片设计流程 芯片的设计原理图
  14. 1.3 新概念 可数名词变复数
  15. 2019年7月2日 星期二(韩天峰的建议)
  16. CDA Level Ⅲ 模拟题(二)
  17. [论文阅读] (07) RAID2020 Cyber Threat Intelligence Modeling Based on Heterogeneous GCN
  18. word文档除号怎么打出来之除号插入的方法教程
  19. 中国互联网金融:浪潮还是浪花?
  20. The Pilots Brothers' refrigerator DFS+枚举

热门文章

  1. Hadoop之——HDFS容错
  2. 开始闭关修炼 冥思微软之大未来
  3. CMWAP和CMNET终极大比较
  4. cdn缓存服务器有网站图片,cdn缓存服务器上传图片
  5. php线下支付,Paypal线下支付模块,附下载地址_PHP教程
  6. python的树蕨类型(是数据嘿嘿嘿,打错发现挺好玩的)
  7. 一个完整的python文件即是一个模块_README.md
  8. README.md 文件的作用和语法
  9. enq:TM-contention
  10. 藏在GPT背后的治理分歧:那些赞同和反对的人们|AI百态(下篇)