HDU 4357

来源:互联网 发布:知乎一句话简介 编辑:程序博客网 时间:2024/05/22 15:06

这种换字符类型的题目,以前好像做过一次,还是没想出来,汗啊,主要就是如何证明字符数字大于3的时候的奇偶性相同则可以,字符数为2的时候模拟过程就好。

#include<iostream>#include<string>using namespace std;bool find(string s1, string s2){    char s;    int i;        for(i = 1; i <= 26; ++i)    {        s = s1[0];        s1[0] = s1[1];        s1[1] = s;        if(s1[0] == 'z') s1[0] = 'a';        else s1[0]++;        if(s1[1] == 'z') s1[1] = 'a';        else s1[1]++;                if(s1[0] == s2[0] && s1[1] == s2[1]) return true;          }       return false;}int main(){   int n, i, p, k, t;   string s1, s2;      while(cin>>n)    {       p = 1;       while(n--)       {           cin>>s1>>s2;                      if(s1.length() == 2)           {               if(find(s1,s2) == 1) cout<<"Case #"<<p<<": YES"<<endl;               else cout<<"Case #"<<p<<": NO"<<endl;           }           else            {               t = 0;               for(i = 0; i < s1.length(); ++i)                 {                   k = s1[i]-'a';                   t = t^k;                    }                 for(i = 0; i < s2.length(); ++i)               {                   k = s2[i]-'a';                   t = t^k;                     }                             if((t&1) == 0) cout<<"Case #"<<p<<": YES"<<endl;                else cout<<"Case #"<<p<<": NO"<<endl;           }           p++;       }                 }   return 0;    } 


 

原创粉丝点击