本文共 824 字,大约阅读时间需要 2 分钟。
标签:水题
/* 题意:二进制数的或运算A | C = B, 给出位数相等的A,B,求有多少符合要求的C 思路:或运算(有真则真,全假才假),枚举所有可能的A, B,简化为两种情况,见代码 注意阅读后面的Note,结果可能会很大*/#include#include int main(){ int T; scanf("%d", &T); while(T--) { int n; char a[105], b[105]; scanf("%d %s %s", &n, a, b); long long ans = 1; /// int flag = 1; for(int i = 0; i < n; i++) { if(a[i] == '1' && b[i] == '0') //情况(1) { flag = 0; break; } else if(a[i] == '1' && b[i] == '1') //情况(2) { ans *= 2; if(ans > 1000000007) ans %= 1000000007; ///乘一次模一次 } } if(flag) printf("%I64d\n", ans); else printf("IMPOSSIBLE\n"); } return 0;}
转载地址:http://lnkxi.baihongyu.com/