Gym 100553J Jokewithpermutation(dfs)
题意:有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)相关推荐
- DFS Gym 100553J Jokewithpermutation
题目传送门 1 /* 2 题意:将字符串分割成一个全排列 3 DFS:搜索主要在一位数和两位数的处理,用d1, d2记录个数,在不饱和的情况下,两种都试一下 4 DFS还是写不来,难道是在家里懒? 5 ...
- Gym - 100989J -(DFS)
题目链接:http://codeforces.com/gym/100989/problem/J J. Objects Panel (A) time limit per test 1.0 s memor ...
- 【Codeforces Gym - 101635C Macarons 】【矩阵快速幂+状压】【dfs时间换空间】
[链接] http://codeforces.com/gym/101635/attachments [题意] 求用1*1,1*2的方格填n*m的矩阵的方法数 [知识点] 状压dfs+矩阵快速幂 [分析 ...
- 图论 ---- 构造DFS树的思想 K - Boomerangs Gym - 102001K
题目链接 题目大意: 解题思路: 启发性思考首先我们先图切成dfs树,然后给图一个稳定结构之后,我们就可以去构造了 对于每个点我们从第底端开始构造每次把每次点的儿子两两匹配,如果是奇数个儿子就把多出来 ...
- Gym - 101480K_K - Kernel Knights (DFS)
题意:有两队骑士各n人,每位骑士会挑战对方队伍的某一个位骑士. (可能相同) 要求找以一个区间s: 集合S中的骑士不会互相挑战. 每个集合外的骑士必定会被集合S内的某个骑士挑战. 题解:讲真被题目绕懵 ...
- Gym - 101972B Arabella Collegiate Programming Contest (2018) B. Updating the Tree 树DFS
题面 题意:T组数据,每次给你1e5个点的树(1为根),每个点有一权值,询问1-n每个节点的子树中, 至少修改几个点的权值(每次都可以任意修改),才能让子树中任意2点的距离==他们权值差的绝对值 无解 ...
- Gym - 102460A Rush Hour Puzzle(dfs迭代加深)
题目链接:点击查看 题目大意:给出一个 6 * 6 的矩阵,表示华容道的游戏界面,现在需要红色汽车(标号为 1 )从第三行最右端到达出口的最短时间,如果无解或者步数超过 10 输出 -1 题目分析:因 ...
- Gym 101147J Whistle's New Car(dfs)
https://vjudge.net/problem/Gym-101147J 题意: 有n个城市,每个城市有一个权值,表示在这个城市的加油站可以加多少油. 现在要计算每个城市i,有多少个城市j可以到达 ...
- Codeforces Gym 101142 G Gangsters in Central City (lca+dfs序+树状数组+set)
题意: 树的根节点为水源,编号为 1 .给定编号为 2, 3, 4, -, n 的点的父节点.已知只有叶子节点都是房子. 有 q 个操作,每个操作可以是下列两者之一: + v ,表示编号为 v 的房子 ...
最新文章
- vb.net与matlab的混合编程
- macOS新版本终于删掉自带Python2,这波操作连Python死忠粉都叫好
- Windows dos 在某个目录下的所有文件中查找包含某个字符串的文件
- IDEA的常用快捷键
- java保存图片进度条_Java上传文件进度条的实现方法(附demo源码下载)
- 用redis实现消息队列
- WebSocket实战
- 依赖于boodtrap3的插件推荐以及bootrap发展前景
- 微软超融合私有云测试02-测试架构描述
- 金蝶k3服务器的操作系统,金蝶k3服务器配置工具
- java 安全策略_java.security.Security 支持的安全策略和算法
- 全息投影特效制作详解
- Beyond Part Models: Person Retrieval with Refined Part Pooling (and A Strong Convolutional Baseline)
- 动态FormBean
- bootstrap 表头组合
- 绩效管理工具OKR与GRAD
- 武林高手?敏捷开发,唯velocity取胜
- C语言/C++编程学习:和QT零距离接触的意义
- ios 使用隐私条款
- 计算机电路板 接地,pcb电路板接地怎么接
热门文章
- matlab期权定价模型比较,期权定价模型与数值方法(Matlab+Jupyter Notebook)
- 批量修改txt内容_不用再慢慢手动修改,用Excel批量修改文件名
- KXD黑夜模式流星滑落个人主页HTML源码
- sleek大气后台UI管理系统模板
- windows环境下memcache服务器使用经验
- FullCalendar 六:FullCalendar应用——拖动与实时保存
- Linux shell中的那些小把戏
- 爬虫入门五(Phantomjs和selenium)
- Linux内核中container_of宏的理解
- 【python命名规范】谷歌风格命名