Joke with permutation
来源:互联网 发布:总舵主软件 编辑:程序博客网 时间:2024/05/21 18:38
Joke with permutation
Time Limit: 3000ms, Special Time Limit:7500ms, Memory Limit:65536KB
Total submit users: 87, Accepted users: 60
Problem 13341 : Special judge
Problem description
Joey had saved a permutation of integers from 1 to n in a text file. All the numbers were written as decimal numbers without leading spaces.
Then Joe made a practical joke on her: he removed all the spaces in the file.
Help Joey to restore the original permutation after the Joe’s joke!
Input
The input file contains a single line with a single string — the Joey’s permutation without spaces.
The Joey’s permutation had at least 1 and at most 50 numbers.
Output
Write a line to the output file with the restored permutation. Don’t forget the spaces!
If there are several possible original permutations, write any one of them.
Sample Input
4111109876532
Sample Output
4 1 11 10 9 8 7 6 5 3 2
Problem Source
NEERC 2014
题意是给出一个全排列的字符串,然后让你确定排列两个元素之间的空格位置。
先根据字符串的长度求出n是多大,然后用dfs搜索符合条件的排列。
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#define maxn 500using namespace std;int n,l,cnt;int flag[maxn];char str[maxn];int hash[maxn];bool ll; void dfs(int k)//k表示当前处理到哪个字符{ if(ll) return ; if(k>=n) { for(int i=0;i<n;i++) { printf("%c",str[i]) ; if(flag[i]&&i!=n-1) printf(" "); } //当K>n时,输出排列,return ll=1; return ; } if(!hash[str[k]-'0']&&(k+1>=n||str[k+1]!='0'))//一个字有两种组合,要么自己组成一个数,要么和后面的字符组成两位数,注意组合完之后, 字符串的第一个不能是零 { hash[str[k]-'0']=1; flag[k]=1; dfs(k+1); flag[k]=0;//整数不可取,回退 hash[str[k]-'0']=0; } if(!hash[(str[k]-'0')*10+str[k+1]-'0']&&((str[k]-'0')*10+(str[k+1]-'0'))<=cnt&&(str[k+2]!='0'||k+2>=n)) { hash[(str[k]-'0')*10+str[k+1]-'0']=1; flag[k+1]=1; dfs(k+2); flag[k+1]=0; hash[(str[k]-'0')*10+str[k+1]-'0']=0; } }int main(){ while(scanf("%s",str)!=EOF) { n=strlen(str); if(n<=9) { for(int i=0;i<n-1;i++) printf("%c ",str[i]); printf("%c\n",str[n-1]); continue; } int num=n-9; cnt=9+num/2; ll=0; memset(hash,0,sizeof(hash)); memset(flag,0,sizeof(flag)); dfs(0); printf("\n"); } return 0;}
- Joke with permutation
- Joke with permutation
- HNU Joke with permutation (深搜dfs)
- Joke with permutation 分类: ACM 2015-08-03 14:09 1
- POJ2168 Joke with Turtles
- poj 2168 Joke with Turtles
- POJ 2168 Joke with Turtles
- POJ 2168 Joke with Turtles
- Joke
- joke
- JOKE
- joke
- joke
- joke
- Joke
- joke?
- joke
- Joke with Turtles - POJ 2168 dp
- LeetCode OJ 之 Word Search II (单词搜索 - 二)
- 解决常见svn冲突问题
- Crossed Matchings zoj1425 dp
- 使用apktool工具遇到could not decode arsc file的解决办法
- 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)
- Joke with permutation
- Log4j 简介
- 泛型中获取到Class
- HDU 5339 Untitled (DFS)
- 电信泄露客户信息,导致客户被骗损失钱财
- 在Activity获取屏幕的宽高
- nginx limit_req限速设置
- 关于iOS多线程,你看我就够了(已更新)
- sql之join用法完全版