posts - 64, comments - 4, trackbacks - 0, articles - 0

pku_1256 & boj_1343

Posted on 2010-09-01 19:35 acronix 阅读(134) 评论(0)  编辑 收藏 引用 所属分类: qqy解题报告
//考察点: next_permutation的用法   考察了设计cmp函数的能力
//思路 只要写出满足条件的cmp函数就可以了  利用奇偶性把大小写字母错开.  于是想到了cmp函数的书写方式
//提交情况 1WA   1AC  第一次错了是因为交错题目了!!
//收获: 学到了处理这种比较函数的方法 如果还有一种A就可以乘以三 然后再利用初始相位进行划分.
//经验: 写next_permutation的时候因为需要打印出最早的一个情况  所以用的 do  while  形式
//ACcode:
#include<stdio.h>
#include
<algorithm>
#include
<string.h>
using namespace std;
int f(char x)
{
    
if('a'<=&& x<='z'return (x-'a'+1)*2;
    
else return (x-'A')*2+1;
}
bool cmp(char x,char y)
{
    
return f(x)<f(y);
}
int main()
{
    
//freopen("pku_1256_in.txt","r",stdin);
    char a[15];
    
int t;
    
int n;
    scanf(
"%d",&t);
    
while(t--)
    {
        scanf(
"%s",a);
        n
=strlen(a);
        sort(a,a
+n,cmp);
        
do
        {
            printf(
"%s\n",a);
        }
while(next_permutation(a,a+n,cmp));
    }
    
return 0;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理