计蒜客-置换的玩笑

2023-11-01 22:48
文章标签 置换 玩笑 计蒜客

本文主要是介绍计蒜客-置换的玩笑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小蒜头又调皮了。这一次,姐姐的实验报告惨遭毒手。
姐姐的实验报告上原本记录着从 1 到 n 的序列,任意两个数字间用空格间隔。但是“坑姐”的蒜头居然把数字间的空格都给删掉了,整个数字序列变成一个长度为 1 到 100 的且首部没有空格的数字串。
现在姐姐已经怒了,蒜头找你写个程序快点把试验数据复原。

输入
输入文件有一行,为一个字符串——被蒜头搞乱的实验数据。
字符串的长度在 1 到 100 之间。

输出
输出共一行,为姐姐的原始测试数据—— 1 到 n 的输出。
任意两个数据之间有一个空格。
如果有多组符合要求的正确解,输出其中任意一组即可。

样例输入
4111109876532

样例输出
4 1 11 10 9 8 7 6 5 3 2

#include"string.h"
#include"iostream"
#include"vector"
using namespace std;
string ai;
bool sign;
bool biaoji[100];
vector<int >  jj;void dfs(int wei)
{if(sign)return;if(wei>=ai.length()){for(int i=1;i<=jj.size();i++){if(!biaoji[i])return;} sign=true;for(int i=0;i<jj.size()-1;i++)cout<<jj[i]<<' ';cout<<jj[jj.size()-1]<<endl;return;}int a=ai[wei]-'0';if(!biaoji[a]&&a){biaoji[a]=true;jj.push_back(a);dfs(wei+1);jj.pop_back();biaoji[a]=false;}if(wei!=ai.length()-1){int b=(ai[wei]-'0')*10+ai[wei+1]-'0';if(!biaoji[b]){jj.push_back(b);biaoji[b]=true;dfs(wei+2);jj.pop_back();biaoji[b]=false;}}
}
int main()
{cin>>ai;memset(biaoji,0,sizeof(biaoji));sign=false;dfs(0);return 0;
}

深度优先搜索

这篇关于计蒜客-置换的玩笑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/326298

相关文章

计蒜客 Skiing 最长路

In this winter holiday, Bob has a plan for skiing at the mountain resort. This ski resort has MM different ski paths and NN different flags situated at those turning points. The ii-th path from the

计蒜客 Half-consecutive Numbers 暴力打表找规律

The numbers 11, 33, 66, 1010, 1515, 2121, 2828, 3636, 4545 and t_i=\frac{1}{2}i(i+1)t​i​​=​2​​1​​i(i+1), are called half-consecutive. For given NN, find the smallest rr which is no smaller than NN

页面置换算 - FIFO、LFU、LRU

缓存算法(页面置换算法)-FIFO、LFU、LRU   在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO、LFU 1.FIFO算法   FIFO(First in First out),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则在很多地方都会

操作系统:页面置换算法

在操作系统中,页面置换算法是用于管理虚拟内存系统中的页面(内存块)的一种方法。当一个程序尝试访问的数据不在物理内存中时,就会发生页面缺失(Page Fault)。为了加载所需的页面,操作系统可能需要从物理内存中移除一个页面以腾出空间,这个过程就涉及到页面置换算法。页面置换算法的目标是最小化页面缺失率,从而提高系统的性能。以下是几种常见的页面置换算法: 1. 最佳置换算法(OPT或OPTIMAL)

poj 3128 Leonardo's Notebook(置换的幂)

http://poj.org/problem?id=3128 大致题意:输入一串含26个大写字母的字符串,可以把它看做一个置换,判断这个置换是否是某个置换的平方。 思路:详解可参考置换群快速幂运算 研究与探讨。 可以先正着考虑一个置换的平方出现什么情况。对于置换中的循环,若其长度为偶数,平方以后一定分成了两个长度相等的循环,若长度是奇数,平方以后仍是一个循环,长度不变。因此,考虑

poj 1721 CARDS(置换)

http://poj.org/problem?id=1721 大致题意:原始序列通过洗牌机洗牌s次后变为当前序列,已知当前序列,求原始序列。 在置换群快速幂运算 研究与探讨中最后有详解,有两种解法,一种是求出置换的长度a(即一副牌洗a次后变回原来的位置),现已知原始序列置换s次变为当前序列,那么当前序列再置换a-s次就是原始序列了。求a就是直接模拟每个置换的过程,直到某序列与当前序

缓存算法(页面置换算法)

缓存算法是指令的一个明细表,用于提示计算设备的缓存信息中哪些条目应该被删去。常见类型包括LFU、LRU、ARC、FIFO、MRU。 最不经常使用算法(LFU, least frequently used):这个缓存算法使用一个计数器来记录条目被访问的频率。通过使用LFU缓存算法,最低访问数的条目首先被移除。这个方法并不经常使用,因为它无法对一个拥有最初高访问率之后长时间没有被访问的条目

置换密码实现

原理: 置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。加密过程:将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行6个字母的形式排在矩阵中,形成如下形式: 根据密钥cipher中各个

数据分析:置换检验Permutation Test

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 介绍 置换检验是一种非参数统计方法,它不依赖于数据的分布形态,因此特别适用于小样本数据集,尤其是当样本总体分布未知或不符合传统参数检验的假设条件时。置换检验的基本思想是通过随机置换样本来评估观察到的统计量是否显著不同于随机情况下的预期值。最初真正认识置换检

页面置换算法详解

页面置换算法是操作系统中管理虚拟内存的一种技术,特别是在当物理内存不足以容纳所有活跃的进程时。页面置换算法的目标是决定哪些页面应该被保留在物理内存中,哪些应该被交换到磁盘上。以下是一些常见的页面置换算法: 1. **最佳置换算法(Optimal Page Replacement Algorithm)**:    - 也称为最少使用算法(Least Recently Used, LRU)。