ZJYYC LSH去年买了个表(也是LZY去年买了个表) DFS
题目描述:
LSH去年买了个表,很神奇,是个二进制手表。如下图所示
例如,上面的二进制手表读取 “3:25”。
输入一个非负整数 n 代表当前 LED 亮着的数量,输出所有可能的时间。
结果按字典序排列
输入描述:
测试数据由多组测试样例组成。每组测试样例第一行输入一个整数 n ( 0 <= n <= 8 )
输出描述:
输出所有可能的时间组合
测试样例:
样例输入 1
1
样例输出 1
0:01
0:02
0:04
0:08
0:16
0:32
1:00
2:00
4:00
8:00
提示:
1.小时不会以零开头,比如 “01:00” 是不允许的,应为 “1:00”。
2.分钟必须由两位数组成,可能会以零开头,比如 “10:2” 是无效的,应为 “10:02”。
3.输出顺序按照字典序从小到大排序
emmmm,菜鸡表示我这题是真的没有想明白,看到以往大佬的写法,于是决定写篇博客记录一下(出题人太强了),这题显示的小时和不能大于11,分钟和不能大于59,没有进位的情况,大概就是这样,建议看以往学长的博客,我的只是笨比写法
#include<bits/stdc++.h>
using namespace std;
set<string> se;
int hh[4] = {1, 2, 4, 8};
int mm[6] = {1, 2, 4, 8, 16, 32};
bool vish[4];
bool vism[6]; void dfs(int h, int m, int len, int n){if(len == n){string s = "";string ss = "";if(h == 0){s += "0";}while(h){ss += (h % 10) + '0';h /= 10;}reverse(ss.begin(), ss.end());s += ss;s += ":";ss = "";if(m == 0){s += "00";}else if(m < 10){s += "0";s += m + '0';}else{while(m){ss += (m % 10) + '0';m /= 10;}reverse(ss.begin(), ss.end());s += ss;}se.insert(s);return ;}for(int i = 0; i < 6; i++){if(vism[i]){continue;}if(m + mm[i] > 59){continue;}vism[i] = 1;dfs(h, m + mm[i], len + 1, n);vism[i] = 0;}for(int i = 0; i < 4; i++){if(vish[i]){continue;}if(h + hh[i] > 11){continue;}vish[i] = 1;dfs(h + hh[i], m, len + 1, n);vish[i] = 0;}
}int main(){int n;while(cin >> n){se.clear();memset(vish, 0, sizeof(vish));memset(vism, 0, sizeof(vism));dfs(0, 0, 0, n);for(auto i : se){cout << i << endl;}}return 0;
}
ZJYYC LSH去年买了个表(也是LZY去年买了个表) DFS相关推荐
- 未封装的扩展程序是什么意思_伊能静双11买900件商品,张萌发文去年快递未收到,什么意思?...
昨天凌晨,伊能静发文报告双11购物战况,整个双十一大约购入900件,11月11日单日用了三个号码购入397件商品. 双十一期间,小编专门挑有需要的.便宜的买,狠心狠心再狠心最后才买了不足100件. 妈 ...
- 未封装的扩展程序是什么意思_伊能静双11买900件商品,张萌发文去年快递未收到什么意思?...
昨天凌晨,伊能静发文报告双11购物战况,整个双十一大约购入900件,11月11日单日用了三个号码购入397件商品. 双十一期间,小编专门挑有需要的.便宜的买,狠心狠心再狠心最后才买了不足100件. 妈 ...
- angular js创建表单_如何优雅的使用 Angular 表单验证
随便说说,这一节可以跳过 去年参加 ngChine 2018 杭州开发者大会的时候记得有人问我: Worktile 是什么时候开始使用 Angular 的,我说是今年(2018年) 3 月份开始在新模 ...
- oracle外部表使用详解,详解Oracle外部表的一次维护(图文)
在做Oracle数据库的导出导入操作的时候,发现在将导出数据导入到新库过程中报告如下错误: 在查看数据库中关于外部表的视图中相关信息:select * from dba_directoriesSele ...
- 数据库表(字段类型、约束、截断表、修改表字段、重命名表)
字段类型: 在这里只列举一些常用的字段类型: 整数类型:int(Integer):普通大小的整数 小数类型: float(m,d):单精度浮点数,m表示数字长度,d表示小数位数,例如float(5,2 ...
- 涉密计算机用户账号设置审批表,北京邮电大学涉密计算机配置审批表.PDF
北京邮电大学涉密计算机配置审批表 北京邮电大学涉密计算机配置审批表 使用部门 品牌型号 涉密计算机类型 ?台式机 ?便携机 资产编号 用途 ?科研 ?办公 ?其他 配置日期 硬盘序列号 中央处理器 硬 ...
- 【数据结构】邻接表的储存结构 建立图的邻接表算法
[数据结构]邻接矩阵及其实现 一个图的邻接矩阵的表示是唯一的,但其邻接表表示不唯一,这是因为在邻接表结构中,各便表结点的链接次序取决于建立邻接表时的算法以及输入的次序. 一般而言邻接矩阵适合存储稠密图 ...
- python提交表单无效_使用Django Form解决表单数据无法动态刷新的两种方法
一.无法动态更新数据的实例 1. 如下,数据库中创建了班级表和教师表,两张表的对应关系为"多对多" from django.db import models class Class ...
- 2020身高体重标准表儿童_2020年儿童标准身高体重表发布,对比看看,你家孩子达标了吗?...
下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 说起孩子的身高,恐怕没有父母不关注.尤其到了春天,长高的"黄金季"来了,都恨不得孩子在这个 ...
- navcat设置oracle表主键自增_初识 Oracle 表空间设置与管理
本文出自头条号老王谈运维,转载请说明出处. 前言 表空间是 Oracle 特有的一种逻辑结构,是管理和组织 Oracle 数据文件一种方式,一个Oracle 数据库能够有一个或多个表空间,而一个表空间 ...
最新文章
- 阿里转衰!百度没落!字节跳动崛起!未来的互联网是腾讯和字节跳动的世界!这样的言论你相信吗?...
- Tensorflow实践 基本原理学习和框架使用
- pip安装库速度较慢--常用的几个国内镜像
- 系统安全运维 Server 2008 R2 事件查看器实现日志分析
- java局部内部类 final_Java的局部内部类以及final类型的参数和变量
- mPaas 运维流程介绍
- 应用 | 同学,该学MyCat实际应用案例与MyCat读写分离了
- Android定位(是否使用GPS进行定位)
- 使用@property
- 《设计模式详解》结构型模式 - 外观模式
- VB禁用CTRL +ALT + DEL (2)
- NVMe驱动详解系列_第一部:NVMe驱动初始化与注销
- jetson-nano编译qt5.15.2带opengl,xcb
- 2020暑期牛客多校训练营第九场(C)Groundhog and Gaming Time(数学期望,线段树,逆元)
- 如何4步绘制出高水平的气泡图?
- (转载)QTableWidget详细用法总结(非常详细,基本所有常用函数都涉及了)
- 解析XML文件(字符串)的两种方法-----SAXReader 与 DocumentHelper
- 支付业务名词及释义大全
- 用docker搭建discuz论坛
- 新计算机教师工作随笔反思,初中信息技术教学随笔:在反思中成长
热门文章
- 大雪坪剑来 Spring Cloud 教程(二):Spring Boot 集成 mybatis 实现增删改查
- pycharm改变匹配括号的颜色
- 查看已连接的WiFi密码
- Android 判断当前身份证格式是否正确
- qqc什么梗_网络语cpdd是什么意思 王者荣耀QQ飞车里很常见
- 软件能力成熟度模型CMM
- B2065 鸡尾酒疗法
- 计算机本科毕业后还可以当音乐人吗,我想考计算机研究生 但是我音乐鉴赏不及格拿可能不到毕业证 那我还能报考研究生吗?...
- 解决使用Keil5不能生成bin文件或生成的是.bin文件夹问题
- Microsoft System Center (SCCM/SCOM)简介