`

poj--2159 水题

 
阅读更多

  本来觉得是个水题,也是按水题的思路做的。但是题目的意思比较内涵,说白了就是个陷阱。题目说字符串的加密有两种方法,一种是变换字符,把一个字符变成它的下一个字符,如果是Z,就变成A。还有一种就是给一个数字排列,排列中每个位置的字符就是以这个数字为下标的字符。貌似比较简单。很多人能够想到不管是第一种还是第二种,都可能是多种结果,因为不一定是变成下一个字符,排列就更多了。现在主要需要考虑的就是把两种加密方式结合起来,是否能从原来的字符串得到目的字符串。题目的陷阱就是字符的转换规律也是不确定。不一定是下一个,也不一定是一定的距离的字符,其实只需要一一对应就可以了。如果想到这里了,那就比较简单了。只要两个字符串中每个字符出现的次数是一一对应相等的话就输出yes。这样看来更像是hash法。不过一共也只有26个字符,快排也能过。

#include<stdio.h>
#include<stdlib.h>
int cmp(const void*a,const void*b)
{
    return *(int*)b-*(int*)a;
}
int main()
{
    int i,a[27],b[27];
    char s[200];
    for(i=0;i<27;i++)a[i]=b[i]=0;
    gets(s);
    for(i=0;s[i];i++)a[s[i]-'A']++;
    gets(s);
    for(i=0;s[i];i++)b[s[i]-'A']++;
    qsort(a,27,sizeof(int),cmp);
    qsort(b,27,sizeof(int),cmp);
    for(i=0;i<27;i++)
        if(a[i]!=b[i])break;
    if(i>26)puts("YES");
    else puts("NO");
    return 0;
}

 

 

分享到:
评论

相关推荐

    poj水题(给初学者的练手的)

    这些题目来源于POJ (Peking University Online Judge) 平台,通常被称为“水题”,意指相对简单,适合编程新手进行实践训练。 ### 一、关于POJ平台 POJ(Peking University Online Judge)是由北京大学主办的一个...

    ACM 比赛 POJ的训练计划,,,非常不错,关键在于坚持

    此外,该计划还提供了一些水题供选手练习和提高自信心,如 POJ3299、POJ2159 和 POJ2739 等题目。 在初期阶段,选手需要掌握基本算法,如枚举、贪心、递归和分治法等。然后,需要学习图算法,如深度优先遍历、广度...

    NOIP NOI 信息学竞赛 ACM-ICPC POJ(北京大学在线评测系统)刷题推荐 OI复习计划 算法大纲

    本文主要介绍的是关于NOIP(全国青少年信息学奥林匹克竞赛)和NOI(全国青少年信息学奥林匹克联赛)的信息学竞赛以及ACM-ICPC(国际大学生程序...同时,一些简单的水题如poj3299、poj2159等可用于巩固基础和增强信心。

    poj ac题目代码

    1000 1003 1004 1005 1006 1008 1012 1028 1036 1045 1046 1047 1087 1163 ...2159 2190 2196 2209 2215 2229 2231 2242 2247 2249 2262 2272 2291 2299 2301 2309 2328 2350 2363 2386 2388 2390 2405 2470 2487 2498 ...

    算法学习攻略

    最后,建议在OJ(在线判题)平台上进行练习,如POJ提供的水题,如poj3299、poj2159、poj2739、poj1083、poj2262、poj1503、poj3006、poj2255、poj3094等,这些题目可以帮助巩固基础,增强信心。 通过系统地学习和...

Global site tag (gtag.js) - Google Analytics