CF1567C Carrying Conundrum
CF1567C Carrying Conundrum
由于我们进位是进到下下位, 所以只有相隔一位的位之间会产生影响.
我们就把每个数按照奇偶位分成两个数, 然后乘起来就是方案数, 由于不能有 \(0\) , 所以记得 \(- 2\) .
\(code:\)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int read() {
int x = 0, f = 1;
char ch = getchar();
while (!isdigit(ch)) {
if (ch == '-') f = -1;
ch = getchar();
}
while (isdigit(ch)) {
x = (x << 1) + (x << 3) + (ch ^ 48);
ch = getchar();
}
return x * f;
}
const int N = 505;
int s[2];
int main() {
int T = read();
while (T--) {
s[0] = s[1] = 0;
int o = 1;
char ch = getchar();
while (isdigit(ch)) {
o ^= 1;
s[o] = s[o] * 10 + (ch ^ 48);
ch = getchar();
}
s[0]++, s[1]++;
printf("%d\n", s[0] * s[1] - 2);
}
return 0;
}
看不见我看不见我看不见我