解题思路:
注意事项:
参考代码:
#include <iostream> using namespace std; int count,n,book[21]; char str[21]; int b[21]; void dfs(int step){ if(step>n){ count++; return; } for(int i=1;i<=n;i++){ if(book[i]==0){ book[i]=1; dfs(step+1); book[i]=0; } } return; } int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>str[i]; dfs(1); for(int i=1;i<=n;i++) b[i]=1; for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) if(str[i]==str[j]) b[i]++; for(int i=1;i<=n;i++) count=count/b[i]; cout<<count<<endl; return 0; }
0.0分
0 人评分