HDU 4357 String change

来源:互联网 发布:matlab的gui编程实例 编辑:程序博客网 时间:2024/05/23 15:39

http://acm.hdu.edu.cn/showproblem.php?pid=4357

题意:

给定a串b串,问能否把a变成b串

方法:任选a的2个字母,ascil+=1 然后交换位置,可以操作任意多次。

3个及3个以上一定可以T^T

2个就暴力判一下

像这种只要最后结果不求过程的题目,往往都是有规律可循的


#include <iostream>#include <cstdio>#include <string>#include <cmath>#include <cstring>using namespace std;char a[100];char b[100];int check(){    int cnt = 30;    while(cnt--){        if(a[0]==b[0]  && a[1] == b[1]) return 1;        a[0] = (a[0]-'a'+1)%26 + 'a';        a[1] = (a[1]-'a'+1)%26 + 'a';        char c = a[0];        a[0] = a[1];        a[1] = c;    }    return 0;}int main(){    int i,j,k,t,m,n;    cin>>t;    int cnt = 1;    while(t--){        cin>>a;        cin>>b;        printf("Case #%d: ",cnt++);        int len = strlen(a);                if(len==2){            if( check()) cout<<"YES"<<endl;            else cout<<"NO"<<endl;        }        else{            int sum = 0;            for(i=0;i<len;i++){                sum+=(a[i]-'a');            }            for(i=0;i<len;i++){                sum+=(b[i]-'a');            }            if( sum % 2 ==0 ){                cout<<"YES"<<endl;            }            else                cout<<"NO"<<endl;        }               // cout<<endl;    }    return 0;}


0 0
原创粉丝点击