首页 > 代码库 > C - A or B Equals C
C - A or B Equals C
1 /* 2 a or c = b,已知a和b,求c可能有多少种值。 3 对比二进制每一位,如果A为1,B为0,则不可能,如果A为1,B为1,则C的这一位可以 4 是0也可以是1,所以结果乘以2,其他情况C的这一位必须和B一致,所以结果不变。 5 */ 6 #include <bits/stdc++.h> 7 using namespace std; 8 const int mod=1000000007; 9 int main() 10 { 11 char a[110],b[110]; 12 int n; 13 scanf("%d",&n); 14 while(n--) 15 { 16 int len; 17 scanf("%d%s%s",&len,a,b); 18 int ans=1; 19 for(int i=0; i<len; i++) 20 { 21 if(a[i]==‘1‘&&b[i]==‘0‘) 22 { 23 printf("IMPOSSIBLE\n"); 24 ans=0; 25 break; 26 } 27 if(a[i]==‘1‘&&b[i]==‘1‘) ans=(ans*2)%mod; 28 } 29 ans=ans%mod; 30 if(ans!=0) 31 printf("%d\n",ans); 32 33 } 34 }
C - A or B Equals C
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。