1 条题解
-
0
全排列函数超时, dfs中的 char t 判重没想到
#include<bits/stdc++.h> using namespace std; int len; bool vis[10001]; char str[10001]; char ans[10001]; void dfs(int start) { char t = '\0'; if(start == len) { for(int i = 0; i < len; i++) { printf("%c", ans[i]); } printf("\n"); return ; } for(int i = 0; i < len; i++) { if(!vis[i] && t != str[i]) { vis[i] = true; ans[start] = str[i]; t = str[i]; dfs(start + 1); vis[i] = false; } } } int main() { while(cin >> str) { len = strlen(str); memset(vis, false, sizeof(vis)); sort(str, str + len); dfs(0); } system("pause"); return 0; }
- 1
信息
- ID
- 15
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 25
- 已通过
- 10
- 上传者