• Bits Equalizer UVA


    点击打开链接

    #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
    ");
    			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
    ");
    			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
    ",ans);
    	}
    	return 0;
    }


  • 相关阅读:
    Nginx 跨域配置支持
    数据结构与算法分析
    数据结构与算法分析
    数据结构与算法分析
    Bash shell
    Bash shell
    HHUOJ 1040
    HHUOJ 1114
    HDUOJ 1171
    HDUOJ 1428
  • 原文地址:https://www.cnblogs.com/hehe54321/p/8470436.html
Copyright © 2020-2023  润新知