USACO持续进不去中..好久没去POJ了~~就去随便抓了一个水题...这道题主要是又回顾了下next_permutation..原来next_permutation里可以加自写的cmp~~~
Program:
#include<iostream>
#include<algorithm>
using namespace std;
int t,l;
char s[20];
bool cmp(char a,char b)
{
if (a<'a' && b>='a')
{
a=a-'A'+'a';
return a<=b;
}else
if (b<'a' && a>='a')
{
b=b-'A'+'a';
return a<b;
}
return a<b;
}
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
scanf("%d\n",&t);
while (t--)
{
gets(s);
l=strlen(s);
sort(s,s+l,cmp);
do
{
puts(s);
}
while (next_permutation(s,s+l,cmp));
}
return 0;
}
本文分享了在USACO比赛中解决一道题目时,如何利用C++中的next_permutation函数并自定义比较函数来获取字符串的下一个排列。通过实例演示了这一过程,帮助读者提升比赛解题能力。
815

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



