Codeforces Round 913 (Div. 3) E
题目link
一个三元组只有在加法过程中没有发生进位时才被认为是好的。例如,考虑a=2,b=7,c=4;它们的数字之和是2+7+4=13,而它们的数字之和的数字和是1+3=4。这意味着每当数字中有进位时,数字之和总是比n的数字之和增加更多。
这使我们可以将每个数字单独考虑,并将它们的答案相乘。每个数字x的答案将是数字之和为x的数字三元组的数量。这些值不依赖于输入数据,因此可以预先计算,但这并非通过测试所必需的。
#include<bits/stdc++.h>
typedef long long ll;
void solve() {
int n;
std::cin >> n;
ll ans = 1;
while (n) {
ll cnt = 0;
int x = n % 10;
n /= 10;
for (int i = 0; i <= x ; i ++) {
for (int j = 0; j <= x; j ++) {
if (x - i - j >= 0) {
cnt ++;
}
}
}
ans *= cnt;
}
std::cout << ans << "\n";
}
int main() {
int t;
std::cin >> t;
while (t -- ) {
solve();
}
}