题意:有n个数(n<=50)写在一行,将两数之间的空格去掉得到一个数字串。根据这个数字串回复原数;

思路:先求数的个数,当串长度小于10时,均为个位数;当串长度大于9时,存在两位数,剪去9个个位数,同样得到数的个数;

数的个数也是串中的最大数;

采用枚举的方法将每个数与串中的位置匹配,属于同一个数的数字对应同一个数;

输出时,两位数的数字间不加空格;

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char str[105];
int len,mark;
int vis[505];
void dfs(int n)
{if(n==0){mark=1;return;}if(mark) return;if(n>=10){char temp1=n/10+'0';char temp2=n%10+'0';for(int i=0;i<len-1;i++){if(!vis[i]&&!vis[i+1]&&str[i]==temp1&&str[i+1]==temp2){vis[i]=n;vis[i+1]=n;dfs(n-1);if(mark) return;vis[i]=0;vis[i+1]=0;}}}else{for(int i=0;i<len;i++){if(!vis[i]&&(str[i]-'0')==n){vis[i]=n;dfs(n-1);if(mark) return;vis[i]=0;}}}
}
int main()
{int i,j,k,num;freopen("joke.in","r",stdin);freopen("joke.out","w",stdout);while(scanf("%s",&str)!=EOF){len=strlen(str);memset(vis,0,sizeof(vis));mark=0;if(len<10){num=len;}elsenum=(len-9)/2+9;dfs(num);printf("%c",str[0]);for(i=1;i<len;i++){if(vis[i]==vis[i-1])printf("%c",str[i]);else printf(" %c",str[i]);}printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/dashuzhilin/p/4639403.html

Gym 100553J Jokewithpermutation(dfs)相关推荐

  1. DFS Gym 100553J Jokewithpermutation

    题目传送门 1 /* 2 题意:将字符串分割成一个全排列 3 DFS:搜索主要在一位数和两位数的处理,用d1, d2记录个数,在不饱和的情况下,两种都试一下 4 DFS还是写不来,难道是在家里懒? 5 ...

  2. Gym - 100989J -(DFS)

    题目链接:http://codeforces.com/gym/100989/problem/J J. Objects Panel (A) time limit per test 1.0 s memor ...

  3. 【Codeforces Gym - 101635C Macarons 】【矩阵快速幂+状压】【dfs时间换空间】

    [链接] http://codeforces.com/gym/101635/attachments [题意] 求用1*1,1*2的方格填n*m的矩阵的方法数 [知识点] 状压dfs+矩阵快速幂 [分析 ...

  4. 图论 ---- 构造DFS树的思想 K - Boomerangs Gym - 102001K

    题目链接 题目大意: 解题思路: 启发性思考首先我们先图切成dfs树,然后给图一个稳定结构之后,我们就可以去构造了 对于每个点我们从第底端开始构造每次把每次点的儿子两两匹配,如果是奇数个儿子就把多出来 ...

  5. Gym - 101480K_K - Kernel Knights (DFS)

    题意:有两队骑士各n人,每位骑士会挑战对方队伍的某一个位骑士. (可能相同) 要求找以一个区间s: 集合S中的骑士不会互相挑战. 每个集合外的骑士必定会被集合S内的某个骑士挑战. 题解:讲真被题目绕懵 ...

  6. Gym - 101972B Arabella Collegiate Programming Contest (2018) B. Updating the Tree 树DFS

    题面 题意:T组数据,每次给你1e5个点的树(1为根),每个点有一权值,询问1-n每个节点的子树中, 至少修改几个点的权值(每次都可以任意修改),才能让子树中任意2点的距离==他们权值差的绝对值 无解 ...

  7. Gym - 102460A Rush Hour Puzzle(dfs迭代加深)

    题目链接:点击查看 题目大意:给出一个 6 * 6 的矩阵,表示华容道的游戏界面,现在需要红色汽车(标号为 1 )从第三行最右端到达出口的最短时间,如果无解或者步数超过 10 输出 -1 题目分析:因 ...

  8. Gym 101147J Whistle's New Car(dfs)

    https://vjudge.net/problem/Gym-101147J 题意: 有n个城市,每个城市有一个权值,表示在这个城市的加油站可以加多少油. 现在要计算每个城市i,有多少个城市j可以到达 ...

  9. Codeforces Gym 101142 G Gangsters in Central City (lca+dfs序+树状数组+set)

    题意: 树的根节点为水源,编号为 1 .给定编号为 2, 3, 4, -, n 的点的父节点.已知只有叶子节点都是房子. 有 q 个操作,每个操作可以是下列两者之一: + v ,表示编号为 v 的房子 ...

最新文章

  1. 一篇文章让你彻底了解什么叫Netty!大牛看了直呼内行!
  2. linux系统下的grep命令功能与正则表达式详解
  3. 偏最小二乘法回归(Partial Least Squares Regression)
  4. java 1_java基本语法1
  5. W3School-CSS 表格实例
  6. C++class类(I)
  7. MySQL8.0.16主从同步
  8. [kubernetes] Schedule --- Node调度与隔离
  9. 发布一个jQuery插件:formStorage
  10. TensorFlow2.0(二)--Keras构建神经网络分类模型
  11. git clone github源码 下载速度很慢的解决方法
  12. 今天研究成功ASP动态管理数据表及字段
  13. 【Linux学习笔记】last命令
  14. 白帽黑客学习之路-python篇-基础
  15. 用 Python 切换输入法
  16. C. Make it Increasing
  17. ROS机器人的远程启动和控制过程
  18. Appium(Python)测试混血App
  19. 产品创新案例分析|大疆如何从初创到无人机帝国的进阶之路
  20. 访问国内网站提示无法访问

热门文章

  1. MYSQL进程权限过大_mysql查询较长的执行进程及创建权限账号
  2. android模块编译错误,android studio编译出错:Android resource linking failed
  3. Spring Cloud微服务之子模块的创建(二)
  4. mysql 使用的三个小技巧
  5. SAIF MBA2011年学费与资助政策发布公告
  6. dos 必知八项命令
  7. CSS3: 动画循环执行(带延迟)的实现
  8. awk是命令还是编程语言
  9. Moodle: 查询 / 更新 / 添加 / 删除 / 导出 用户 ($DB用法)
  10. 华科05-03年计算机考研复试机试