P5874

题目内题解

前置:e......

最低所需知识点:现在还不知道最低可以用什么解答呢

题解使用算法:深度优先搜索

趁着lys教的还没忘赶紧写

同学们可能是在可达第一次看见通信题 不知道是什么玩意

根据某犇犇的解释就是会把你的程序运行两次 第一次的输出固定 第二次程序输入的数据将会根据第一次的输出决定

翻译一下题面:

给你一个字符串 根据字符串选择要干的事情

是nsp则加密这个数字

否则按照后续输入的字符串解密成数字

当然在输出的最后根据出题人的友好提示记得清空缓存区

由于字符串在传输过程可能被反转谁做的传输工具所以我们需要保证加密后的字符串不管是否反转都必须唯一

其实现在开始就可以开始实现了 但是我还是给大家一些提示

如果想要字符串没有重复又想方便后续确定唯一加密方式(不唯一会导致WA) 我们可以使用STL中的set来做

不会用的也没关系待会会说

首先使用深度优先搜索枚举出八位字符串(无论反转与否都不相同)然后在根据字符串来确定加密方式

因为00000001代表1 则在第二次中00000001或者10000000都应该解密成1

所以set中无论是正着的还是反着的都应insert进去(反正最后都会去重)

如果真的不会用set你也可以直接排序来确定唯一加密顺序 至于怎么去重......你可以尝试优化搜索 当然性价比(操作难度)不如直接去学习使用set的好