UVA 10098
来源:互联网 发布:mac重装系统无法验证 编辑:程序博客网 时间:2024/06/05 13:26
题目大意:按字典次序输出全排列,不要重复的。
解题思路:全排列,set容器。
全排列代码:
#include <iostream>#include <cstring>using namespace std;int n, vis[1005], num[1005];void dfs(int d){if (d >= n){for (int i=0; i<n; i++)printf("%d ", num[i]);printf("\n");}else{for (int i=0; i<n; i++)if (!vis[i]){vis[i] = 1;num[d] = i+1;dfs(d+1);vis[i] = 0;}}}int main(){while (scanf("%d", &n)!=EOF){memset(vis, 0, sizeof(vis));dfs(0);}return 0;}
ac代码:
#include <iostream>#include <cstring>#include <set>using namespace std;int n, len, cnt, vis[20];char ch[20], map[20], re[20];set <string>se;set <string>::iterator it;void dfs(int n){if (n == len){re[len] = '\0';se.insert(re);return ;}else{for (int i=0; i<len; i++)if (!vis[i]){vis[i] = 1;re[n] = map[i];dfs(n+1);vis[i] = 0;}}}int main(){scanf("%d", &n);while (n--){scanf("%s", ch);len = strlen(ch);memset(vis, 0, sizeof(vis));for (int i=0; i<len; i++)map[i] = ch[i];cnt = 0;dfs(0);for (it=se.begin(); it!=se.end(); it++)cout << *it << endl;printf("\n");se.clear();}return 0;}
阅读全文
0 0
- UVA 10098
- uva 10098
- uva 10098
- uva 10098
- UVA 10098
- UVa 10098 Generating Fast
- uva 10098 - Generating Fast
- UVa 10098 Generating Fast
- uva 10098 - Generating Fast
- UVa 10098 - Generating Fast
- uva GeneratingFastSortedPermutation 10098
- UVa 10098 Generating Fast
- Uva 10098 - Generating Fast
- UVA 10098 - Generating Fast
- UVa 10098 - Generating Fast
- uva 10098 - Generating Fast
- UVA 10098 (13.07.18)
- UVa 10098: Generating Fast
- ArcGIS API for JavaScript心得体验
- 设计一个100亿计算器
- java web 入门必知
- 做一个主页导航
- Redis集群安装
- UVA 10098
- JS 下拉刷新页面
- 模拟实现str--以及mem--
- 考研英语二——词汇积累
- 二叉树的每个节点
- 如何解决“文件上传返回JSON数据,在IE下提示下载文件”的问题?
- 图片 压缩
- Hadoop MultipleOutputs输出到多个文件中
- javascript写在body和head的区别