题意比较简单,简单的让我有点害怕自己犯想当然的毛病
给三个数据 t-测试数据组数, n-字符串的长度, h-字符串中‘1’的个数。(其余的一定是‘0’)
(我用的是STL中的库函数next_permutation())
代码如下:
#include <cstdio>
#include <algorithm>
using namespace std;
int main ()
{
int t, n, h;
char p[20];
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&h);
p[n]=0;
for(int i = n-1; i >=0; i--)
if(n-i<=h)p[i] = '1';
else p[i] = '0';
do
{
printf("%s\n",p);
}
while(next_permutation(p,p+n));
if(t)puts("");
}
return 0;
}
本文介绍了一个简单的C++程序,该程序利用STL中的next_permutation函数生成指定长度和特定字符数量的所有可能排列。文章通过具体示例展示了如何为给定的字符串长度和‘1’的数量生成所有可能的字符串排列。
9892

被折叠的 条评论
为什么被折叠?



