洛谷入门赛 202212F 宇宙密码 ——深搜

news2025/1/12 15:55:13

题目描述

经历十九年的探索,人们终于找到了宇宙中的那份瑰宝。

这份瑰宝被装在一个密码箱里,按照情报,密码应为一串长度为 nn 的数字 aa。

人们满怀希望地输入了密码,但是密码箱没有任何反应。

这时人们意识到,在十九年中,由于宇宙射线的侵蚀,密码箱的密码发生了改变。

现在人们知道,能够打开密码箱的新密码是由原密码 aa 变化而来。具体的,新密码相比原密码变化了 tt 位数字,其中 tt 满足 0≤t≤k0≤t≤k,且对于变化的数字位,变化后的数字是在该位置原数字的基础上增加或减小 11 得到的数字。特别的,如果原数字是 00,在原数字基础上减少 11 得到的数字是 99;如果原数字是 99,在原数字基础上增加 11 得到的数字是 00。

现在人们知道了 n,a,kn,a,k,想知道经过宇宙射线侵蚀后,所有可能打开密码箱的密码。

人类将重任交到了你身上,请你帮助人类解决这个问题。你需要由小到大输出所有可能的密码,每个一行。

特别的,有一些密码可能存在前导 00。为了方便操作,这时你不必也不应将这些前导 00 一并输出。

人类感谢你。

输入格式

输入只有一行三个整数,依次代表原密码位数 nn,去掉前导零后的原密码 aa,和变化位数的最大值 kk。

输出格式

输出若干行,每一行包含一个整数,代表由小到大的所有可能的密码。

输入输出样例

输入 #1

3 14 1

输出 #1

4
13
14
15
24
114
914

#include <bits/stdc++.h>
#define bug cout << "***************" << endl
#define fuck(x) cout << #x << " -> " << x << endl
#define endl '\n'
#define int long long
using namespace std;
constexpr int N = 1e6 + 10, inf = 0x3f3f3f3f;
vector<int> arr;
set<int>ans;
int temp[N];
int n, a, k;
bool vis[N];
void dfs(int cnt)
{
    if (cnt == k)
    {
        int res = 0;
        for (int i = n-1; i>=0; i--)
        {
            res += temp[i]*pow(10,i);
        }
        ans.insert(res);
    }
    for (int i = 0;i < n;i++) {
        if (!vis[i]) {
            vis[i] = true;
            temp[i] += 1;
            if (temp[i] == 10) {
                temp[i] = 0;
            }
            dfs(cnt + 1);
            temp[i] -= 1;
            if (temp[i] == -1) {
                temp[i] = 9;
            }
            vis[i] = false;
        }
    }

    for (int i = 0;i < n;i++) {
        if (!vis[i]) {
            vis[i] = true;
            temp[i] -= 1;
            if (temp[i] == -1) {
                temp[i] = 9;
            }
            dfs(cnt + 1);
            temp[i] += 1;
            if (temp[i] == 10) {
                temp[i] = 0;
            }
            vis[i] = false;
        }
    }
    for (int i = 0;i < n;i++) {
        if (!vis[i]) {
            vis[i] = true;
            dfs(cnt + 1);
            vis[i] = false;
        }
    }
}

void solve()
{
    cin >> n >> a >> k;
    int temp1 = a;
    int cnt = 0;
    while (temp1)
    {
        int u = temp1 % 10;
        arr.push_back(u);
        temp1 /= 10;
        cnt++;
    }
    int zero = n - cnt;
    for (int i = 0; i < zero; i++)
    {
        arr.push_back(0);
    }
    for (int i = 0;i < n;i++) {
        temp[i] = arr[i];
    }
    dfs(0);
    for (auto it : ans) {
        cout << it << endl;
    }
}

signed main()
{
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

    int T = 1;

    while (T--)
    {
        solve();
    }

    return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

迈向高算力、跨域融合新拐点,智能座舱各路玩家如何卡位?

当前&#xff0c;中国车联网发展进入平稳增长周期&#xff0c;5G、V2X市场迎来拐点。 借助数字化转型驱动&#xff0c;互联化、数字化、个性化的智能座舱&#xff0c;以及与之强关联的座舱域控制器方案正实现快速发展和落地。 高工智能汽车研究院监测数据显示&#xff0c;202…

[附源码]Python计算机毕业设计SSM基于人脸识别和测温的宿舍管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

使用ESPRIT,LS-ESPRIT,Music以及Root-Music四种算法进行角度估计matlab仿真

目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 1.1ESPRIT ESPRIT算法全称为&#xff1a;Estimation of Signal Parameters using Rotational Invariance Techniques.与Root_MUSIC算法相同&#xff0c;也是一种参数估计技术。ESPRIT算法在旋转矢量中&#xff0…

Jetpack组件(三)Lifecycle

本篇是Jetpack组件系列文章的第三篇&#xff0c;将介绍第二个组件Lifecycle。Lifecycle为开发者管理 Activity 和 Fragment 生命周期提供了极大的便利&#xff0c;帮助开发者书写更轻量、易于维护的代码 一、Lifecycle简介 Lifecycle用于存储有关组件&#xff08;如 activity …

UE实现指北针效果

文章目录 1.实现目标2.实现过程2.1 设计指北针Widget2.2 实时指北2.3 添加到页面显示3.参考资料1.实现目标 在UE中实现指北针效果,GIF图如下。 2.实现过程 实现思路较为简单,即获取到当前场景的Rotation,来设置UMG的旋转角度即可。 2.1 设计指北针Widget 包括底图圆环,…

嵌入式开发学习之--通讯的基本概念

提示&#xff1a;本章主要了解一下通讯的基本概念&#xff0c;无代码 文章目录前言一、通讯的基本概念1.1串行通讯与并行通讯1.2全双工、半双工及单工通讯1.3同步通讯与异步通讯1.4通讯速率总结前言 对于嵌入式开发来说&#xff0c;基本就是在传递信息和解析信息&#xff0c;根…

Kafka高级特性解析之物理存储

1、日志存储概述 Kafka 消息是以主题为单位进行归类&#xff0c;各个主题之间是彼此独立的&#xff0c;互不影响。每个主题又可以分为一个或多个分区。每个分区各自存在一个记录消息数据的日志文件。图中&#xff0c;创建了一个 tp_demo_01 主题&#xff0c;其存在6个 Paritio…

《四叶游戏》:梦想执念·棒球1号位

《幸运四叶草》又名《四叶游戏》&#xff0c;是日本漫画家安达充的代表作品之一。 2005年 – 2010年在《周刊少年Sunday》上连载。是小学馆漫画赏第54回&#xff08;平成20年度&#xff09;少年向部门得奖作品。作品亦改编为同名电视动画和游戏。 中文名 幸运四叶草 原版名称 …

海带软件分享——玩转OpenAI聊天机器人ChatGPT(免费中文版)

目录 2022 地表最强AI聊天机器人ChatGPT诞生&#xff01; 一、前言 &#x1f384;&#x1f388; ChatGPT是OpenAI开发的一个大型预训练语言模型。它是GPT-3模型的变体&#xff0c;GPT-3经过训练&#xff0c;可以在对话中生成类似人类的文本响应。ChatGPT旨在用作聊天机器人&a…

微服务框架 SpringCloud微服务架构 28 数据同步 28.5 监听 MQ 消息

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构28 数据同步28.5 监听 MQ 消息28.5.1 直接开干28 数据同步 28.5 监听 MQ …

阿里云创建https请求

1.添加二级域名 点击域名或者解析设置 2.点击添加记录&#xff0c;设置二级域名&#xff0c;二级域名指向地址和生效时间 3.测试 成功 4.对域名进行免费CA证书申请&#xff0c;添加绑定域名&#xff0c;dns验证&#xff0c;CA证书算法,验证成功后提交审核&#xff0c;约6分…

一键部署工具easy-jenkins,界面友好,操作简单

文章目录前言一、项目地址二、使用步骤1.项目结构2.启动主类 EasyJenkinsApplication3.安装4.项目启动图三、功能点介绍1.部署列表1.添加连接&#xff08;部署jar&#xff09;1.添加本地项目地址2.添加服务器相关信息2.部署jar3.部署成功4.删除5.编辑2.部署记录3.数据分支1.创建…

[oeasy]python0027_整合程序_延迟输出时间_整合两个py程序

整合程序 回忆上次内容 通过搜索发现 time中有函数可以延迟 time.sleep(1) 还可以让程序无限循环 while True: 现在需要两个程序的整合 循环延迟输出时间输出怎么办&#xff1f;&#x1f914; 整合基础 一定要自己整合啊生命在于瞎折腾!&#x1f4aa; 进行整合 思路就是 循环…

期末复习-大数据技术原理与应用

大数据技术原理与应用大数据基础什么促进了大数据时代的诞生&#xff1f;大数据的发展进程大数据的 4V 概念大数据的计算模式云计算HadoopHadoop的生态系统Hadoop 安装和使用大数据存储和管理分布式文件系统DFSHDFS 数据块计算集群中元数据需要的内存HBase shell基本命令NoSQL数…

敲开社科院与杜兰大学金融管理硕士项目的大门,开启在职读研的快乐时光

随着23考研的到来&#xff0c;备考的你做好准备了吗&#xff1f;2023年考研人数预计超过520万&#xff0c;达到历史新高&#xff0c;前段时间还有人热议&#xff0c;不久的将来研究生学历将成为各大国有企业入职的起步门槛。随着各个行业对人才要求的提高&#xff0c;考研热度持…

hadoop项目实战——奥运会数据分析

大三学期项目 hadoop MapReduce 奥运会数据分析结果&#xff1a; 有没需要详细实现方法的小伙伴呀&#xff1f;可以在评论区评论一下。 如果人多&#xff0c;那么后续会详细更新实现方法。

微服务保护

一、初识Sentinel 1. 雪崩问题及解决方案 微服务调用链路中的某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。 解决雪崩问题的常见方式有四种&#xff1a; &#xff08;1&#xff09;超时处理&#xff1a;设定超时时间&#xff0c;请求超…

【JVM】StringTable

String的基本特性 String&#xff1a;字符串&#xff0c;使用一对 ”” 引起来表示 String s1 “mogublog” ; // 字面量的定义方式String s2 new String(“moxi”); string声明为final的&#xff0c;不可被继承String实现了Serializable接口&#xff1a;表示字符串是支持序…

软件测试:随机测试

随机测试流程&#xff0c;自我积累&#xff0c;暂时作为base模板&#xff0c;后续会继续优化 ps&#xff1a;后续目标&#xff0c;可以完成随机测试-APP-模块初稿 1.发起随机测试 项目负责人发起随机测试&#xff0c;明确项目背景&#xff0c;筛选测试目标模块 随机测试的模…

计算机毕业设计php+vue基于微信小程序的音乐云系统-音乐播放系统

项目介绍 随着计算机技术的高速发展,现代计算机系统已经从以计算为中心向以信息化处理为中心的方向发展。如何充分利用互联网,这是大家共同关心的问题。本文主要介绍了关于音乐云微信小程序的实现方法,设计规划了音乐云微信小程序的网页,以互联网的形式将分散的用户进行统一管理…