1 条题解
-
0
C++ :
#include <iostream> #include <algorithm> #include <cstdio> #include <map> using namespace std; map<char,int> m1; map<int,char> m2; int n,a[505],cnt=0,ans=0; char str[505]; int insert(char ch) { if (m1.find(ch)==m1.end()) m1[ch]=++cnt; return m1[ch]; } int main() { scanf("%d%s",&n,str+1); for (int i=1;i<=n;i++) a[i]=insert(str[i]),m2[a[i]]=str[i]; do{ for (int i=1;i<=n;i++) if (i!=n) putchar(m2[a[i]]); else printf("%c\n",m2[a[i]]); ans++; }while (next_permutation(a+1,a+n+1)); printf("%d\n",ans); return 0; }
- 1
信息
- ID
- 670
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者