解题思路:
这一题数据量小,可以这样做就AC了。但是这种方法数据量大一点就超时了,再修改吧。
先把输入的字符按字母顺序排序,然后直接用全排列函数next_permutation( )即可。
注意事项:
注意全排列函数next_permutation( )是可以去重的,例如:next_permutation(a,a+n),如果数组a的前n个元素中有重复的,则会跳过重复排列,继续下一个排列的。大家可以自行测试。
参考代码:
#include <bits/stdc++.h> using namespace std; int main() { int n,cnt=0; char a[25]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); //按字母顺序排序 do { cnt++; }while(next_permutation(a,a+n)); cout<<cnt<<endl; return 0; }
0.0分
0 人评分
C二级辅导-同因查找 (C语言代码)浏览:626 |
C语言训练-计算1977!* (C++代码)浏览:907 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1334 |
WU-复数求和 (C++代码)浏览:2120 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:565 |
Tom数 (C语言代码)浏览:758 |
C二级辅导-阶乘数列 (C语言代码)浏览:583 |
Hello, world! (C语言代码)浏览:916 |
格式化数据输出 (C语言代码)浏览:882 |
1231题解(注意理解“输入多个测试实例”)浏览:830 |