codeforces-303-B. Equidistant String-水题
2015-10-19 14:52
381 查看
给你2个01串,问能否构造出一个p串
使得 p与 2个给出的串 的 不相同 字母 的个数一样
首先 对s1、s2判断,对于他们相同的位置,p【i】不管是0还是1对结果都不影响
那么如果s1与s2不同的位置是偶数个,则p只要选一半和s1相同,一半与s2相同就可以了
如果为奇数,必定不合法
使得 p与 2个给出的串 的 不相同 字母 的个数一样
首先 对s1、s2判断,对于他们相同的位置,p【i】不管是0还是1对结果都不影响
那么如果s1与s2不同的位置是偶数个,则p只要选一半和s1相同,一半与s2相同就可以了
如果为奇数,必定不合法
#include <cstdio> #include <cmath> #include <cstring> #include <string> #include <algorithm> #include <iostream> #include <queue> #include <map> #include <set> #include <vector> using namespace std; char t1[100005]; char t2[100005]; char p[100005]; int main() { int i,j,n; scanf("%s",t1+1); scanf("%s",t2+1); int len=strlen(t1+1); int common_num=0; for (i=1;i<=len;i++) { if (t1[i]==t2[i]) { p[i]=t1[i]; common_num++; } } int differ=len-common_num; if ( differ%2==1) { printf("impossible\n"); return 0; } int cun=1; int need=differ/2; for (i=1;i<=len;i++) { if (t1[i]!=t2[i]) { if (cun<=need) p[i]=t1[i]; else p[i]=t2[i]; cun++; } } p[len+1]=0; printf("%s\n",p+1); return 0; }
相关文章推荐
- easyui datagrid两种分页区别
- IOS开发:UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法
- Android4.2.2 SurfaceFlinger之图形缓存区申请与分配dequeueBuffer
- LintCode "Expression Tree Build"
- UILabel,文字添加下划线,中划线
- HIVE分析窗口函数: LAG,LEAD,FIRST_VALUE,LAST_VALUE
- Android 属性设置android:noHistory="true"
- IOS笔记UI--侧滑效果的实现(二)抽屉效果
- Qt5 ui文件使用
- OC-----UIImageView用法以及注意点
- Longest Ordered Subsequence(最长单调递增子序列)poj2533+动态规划
- 随手记UIKit Dynamics
- UITextField的文字样式
- <学习笔记>jar包置放在WEB-INF/lib下和通过build path导入的区别是什么
- [LintCode] Longest Increasing Subsequence 最长递增子序列
- easyUI 数据表格-datagrid
- 基于jQury的UI框架 easyUI
- IOS笔记UI--侧滑效果的实现
- 使用NSMutableAttributedString 给UILable加删除线
- 让zepto支持requirejs的方法