AOJ.805 2016算法课期末考试1
来源:互联网 发布:网络好但是迅雷下载慢 编辑:程序博客网 时间:2024/06/04 17:47
Time Limit: 2000 ms Case Time Limit: 2000 ms Memory Limit: 128 MBTotal Submission: 45 Submission Accepted: 7
Description
设计算法生成n个元素{r1,r2,…,rn}的全排列。n<=10
Input
包含多组输入EOF结束,每组输入包含一个只包含小写字母的字符串,长度不超过10.
Output
输出这个字符串中所有字符的全排列,按照字典序输出。
Sample Input
OriginalTransformedabc
abc[EOL] [EOF]
Sample Output
OriginalTransformedabcacbbacbcacabcba
#include<cstdio>#include<cmath>#include<cstring>#include<iostream>#include<string>#include<algorithm>#include<cstring>#include<set>//#define DEBUGusing namespace std;const int maxn = 50050;void dfs(string list, int k, int m);void swap(char *a, char *b);set<string>s;int main() {#ifdef DEBUGfreopen("Text.txt", "r", stdin);#endif // DEBUG//cin.tie(0);//cin.sync_with_stdio(false);string c;while (cin>>c) {int i;dfs(c, 0, c.size()-1);for (set<string>::iterator iter = s.begin(); iter != s.end(); iter++)cout << *iter << endl;}return 0;}void swap(char *a, char *b) {char *temp = a;a = b;b = temp;}void dfs(string list, int k, int m) {if (k == m) {s.insert(list);}else {for (int i = k; i <= m; i++) {swap(list[i], list[k]);//printf("k = %d,i = %d\n", k,i);dfs(list, k + 1, m);swap(list[i], list[k]);}}}
阅读全文
0 0
- AOJ.805 2016算法课期末考试1
- AOJ.806 2016算法课期末考试2
- AOJ-579-期末考试之考试传纸条
- aoj 579 期末考试之考试传纸条
- AOJ-AHU-OJ-579 期末考试之考试传纸条
- 北邮研究生2016年算法期末考试试题
- AOJ.综合训练.2016-12-1
- 期末考试
- 期末考试
- 期末考试
- 期末考试????
- 期末考试
- 期末考试......
- 期末考试
- 期末考试
- 期末考试
- AOJ-problem-805
- 2016ACM竞赛训练暑期课期末考试 a题
- Gson 操作
- 集合框架(二)
- C 文件读写
- flashback
- PAT-A-1053. Path of Equal Weight (30)
- AOJ.805 2016算法课期末考试1
- Sarsa(λ) and Q(λ) in Tabular Case
- webpack---用到过的加载器loader
- 三、vault
- 代码阅读整理之 层次 uml 逆向工程
- ajax和JSON基础知识
- 指针
- 自定义圆角ImageVIew
- JSP技术