博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4357 2012 多校 - 6
阅读量:6333 次
发布时间:2019-06-22

本文共 1476 字,大约阅读时间需要 4 分钟。

题意:在一个字符串上有一种操作:交换两个字符然后两个都加一,'z'->'a'问你能不能通过这种操作把a串变为b串?

思路:totally是一道智商题有木有。当字符串小于3的时候暴力算,大于等于三的时候一定有(a, b, c) -> (a, b+2, c)因此只要相差为偶数都可以,奇数则不行。

代码如下:

1 /************************************************** 2  * Author     : xiaohao Z 3  * Blog     : http://www.cnblogs.com/shu-xiaohao/ 4  * Last modified : 2014-05-11 21:51 5  * Filename     : H.cpp 6  * Description     :  7  * ************************************************/ 8  9 #include 
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 #include
18 #include
19 #include
20 #include
21 #define MP(a, b) make_pair(a, b)22 #define PB(a) push_back(a)23 24 using namespace std;25 typedef long long ll;26 typedef pair
pii;27 typedef pair
puu;28 typedef pair
pid;29 typedef pair
pli;30 typedef pair
pil;31 32 const int INF = 0x3f3f3f3f;33 const double eps = 1E-6;34 35 string sa, sb;36 37 void add(char &c){38 if(c == 'z') c = 'a';39 else c++;40 }41 42 void out(){43 for(int i=0; i<26; i++){44 if(sa == sb){45 cout << "YES" << endl;46 return ; 47 }48 swap(sa[0], sa[1]);49 add(sa[0]); add(sa[1]);50 }51 cout << "NO" << endl;52 }53 54 int main()55 {56 // freopen("in.txt", "r", stdin);57 58 int T, ans, kase = 1;59 cin >> T;60 while(T--){61 cin >> sa >> sb;62 int cnt = 0;63 for(int i=0; i
View Code

 

转载于:https://www.cnblogs.com/shu-xiaohao/p/3722462.html

你可能感兴趣的文章
Linux文件夹分析
查看>>
解决部分月份绩效无法显示的问题:timestamp\union al\autocommit等的用法
查看>>
nginx 域名跳转 Nginx跳转自动到带www域名规则配置、nginx多域名向主域名跳转
查看>>
man openstack >>1.txt
查看>>
linux几大服务器版本大比拼
查看>>
在BT5系统中安装postgresQL
查看>>
Can't connect to MySQL server on 'localhost'
查看>>
【Magedu】Week01
查看>>
写给MongoDB开发者的50条建议Tip25
查看>>
PostgreSQL学习手册(四) 常用数据类型
查看>>
为什么要让带宽制约云计算发展
查看>>
[iOS Animation]-CALayer 绘图效率
查看>>
2012-8-5
查看>>
VS中ProjectDir的值以及$(ProjectDir)../的含义
查看>>
我的友情链接
查看>>
PHP实现排序算法
查看>>
Business Contact Mnanager for Outlook2010
查看>>
9种用户体验设计的状态是必须知道的(五)
查看>>
解决WIN7下组播问题
查看>>
陈松松:视频营销成交率低,这三个因素没到位
查看>>