Bits Equalizer UVA - 12545
#include<cstdio>
#include<cstring>
/*
别看错了:0能变1,1不能变0
能完成的条件是,s与t长度相等且s中0数量和?数量之和大于等于t中0数量
首先,对于相等的字符显然不应修改
然后:
***抄的
主要就是要注意0能变1,1不能变0
因此,优先满足1->0的情况
***
*/
char s[110];
char t[110];
int a1;//0->1
int a2;//1->0
int a3;//?->1
int a4;//?->0
int cse=0,c;
int ans;
int main()
{
int i,len;
scanf("%d",&c);
while(c--)
{
scanf("%s",s);
scanf("%s",t);
printf("Case %d: ",++cse);
if(strlen(s)!=strlen(t))
{
printf("-1\n");
continue;
}
a1=0;a2=0;a3=0;a4=0;ans=0;
len=strlen(s);
for(i=0;i<len;i++)
if(s[i]!=t[i])
{
if(s[i]=='0')
a1++;
else if(s[i]=='1')
a2++;
else if(t[i]=='1')
a3++;
else a4++;
}
if(a1+a3<a2)
{
printf("-1\n");
continue;
}
while(a1>0&&a2>0)
{
a1--;a2--;ans++;
}
while(a3>0&&a2>0)
{
a3--;a2--;ans+=2;
}
ans+=a3;ans+=a4;
ans+=a1;//曾经忘了导致错误,多余的另三种操作都要用1次完成,不能忽略0->1多余的
printf("%d\n",ans);
}
return 0;
}
Bits Equalizer UVA - 12545的更多相关文章
- uva12545 Bits Equalizer
uva12545 Bits Equalizer You are given two non-empty strings S and T of equal lengths. S contains the ...
- 【习题 8-3 UVA - 12545】Bits Equalizer
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果1的个数第一个串比第2个串多. 那么就无解. 否则. 找几个位置去凑1 优先找'?'然后才是0的位置 剩余的全都用swap操作就 ...
- UVA 12545 Bits Equalizer
题意: 两个等长的字符串p和q,p有‘0’,‘1’,‘?’组成,q由‘0’,‘1’组成.有三种操作:1.将‘?’变成0:2.将‘?’变成‘1’:3.交换同一字符串任意两个位置上的字符.问有p变到q最少 ...
- UVa 12545 Bits Equalizer (贪心)
题意:给出两个等长的字符串,0可以变成1,?可以变成0和1,可以任意交换s中任意两个字符的位置,问从s变成t至少需要多少次操作. 析:先说我的思路,我看到这应该是贪心,首先,如果先判断s能不能变成t, ...
- UVa 12545 Bits Equalizer【贪心】
题意:给出两个等长的字符串,0可以变成1,?可以变成0和1,可以任意交换s中任意两个字符的位置,问从s变成t至少需要多少次操作 先可以画个草图 发现需要考虑的就是 1---0 0---1 ?---0 ...
- UVA - 12545 Bits Equalizer (比特变换器)(贪心)
题意:输入两个等长(长度不超过100)的串S和T,其中S包含字符0,1,?,但T只包含0和1,你的任务是用尽量少的步数把S变成T.有以下3种操作: 1.把S中的0变成1. 2.把S中的“?”变成0或1 ...
- 8-3 Bits Equalizer uva12545
题意: 给出字符串s包含'0' '1' '?'; 再给出字符串t只包含01: 现在我们可以对S做三个操作:把0变成1,把?变成0或1,任意两个位置交换: 问最少操作几次s == t: 贪心 默认除去那 ...
- UVa 12545 比特变换器
https://vjudge.net/problem/UVA-12545 题意:输入两个等长的串S和T,其中S包含字符0,1,?,但T只包含0和1. 用尽量少的步数把S变成T.每步有3种操作: ①把S ...
- 紫书 习题8-3 UVa 12545 (构造法)
参考了https://blog.csdn.net/catglory/article/details/47188949 最后推出来操作的个数为问号的个数 加上 同一位置上S串为0而T串为1的位置数量 与 ...
随机推荐
- Chrome浏览器 js 关闭窗口失效解决方法
//获取元素ID var DelHtml = document.getElementById("imgdel"); //alert(DelHtml); //添加点击事件 DelHt ...
- 设计模式学习笔记——State状态模式
从一个类中,将有关状态的处理分离出来,独立成类,并面向接口编程.作用是可以简化代码,避免过多的条件判断:if-else-
- 2017ACM/ICPC广西邀请赛 K- Query on A Tree trie树合并
Query on A Tree Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Othe ...
- acd - 1427 - Nice Sequence(线段树)
题意:一个由n个数组成的序列(序列元素的范围是[0, n]).求最长前缀 j .使得在这个前缀 j 中对于随意的数 i1 < i2.都满足随意的 m <= j.i1 在前 m 个数里出现的 ...
- ALVtree 显示BOM结构
REPORT z_barry_alv_tree1_bom MESSAGE-ID oo. TABLES: stpox.INCLUDE <icon>. CLASS: cl_gui_col ...
- unzip解压指定我文件夹
解压try.zip中指定的文件夹 unzip try.zip "try/*" shell中异常处理 { # your 'try' block executeCommandWhich ...
- codeforces 454B. Little Pony and Sort by Shift 解题报告
题目链接:http://codeforces.com/problemset/problem/454/B 题目意思:给出一个序列你 a1, a2, ..., an. 问每次操作只能通过将最后一个数拿出来 ...
- jsch文件下载功能
转载:http://www.cnblogs.com/longyg/archive/2012/06/25/2561332.html 上一篇讲述了使用JSch实现文件上传的功能,这一篇主要讲述一下JSch ...
- 喵哈哈村的魔法考试 Round #1 (Div.2)
比赛地址:http://qscoj.cn/contest/2/ 都是中文题,这里不在详述题意 A.喵哈哈村的魔法石 分析:暴力求解 #include<iostream> #include& ...
- CQOI2013 新数独
传送门 这道题也是很暴力的搜索啊…… 因为数独一开始全是空的,只有许许多多的大小限制条件,那也没必要纠结从哪开始搜索了,直接暴力搜索之后判断一下是否合法. 这题最恶心的是读入.现学了一招判断点在哪个块 ...