Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
138122 why 二进制计数游戏 C++ 解答错误 0 0 MS 244 KB 826 2024-03-13 22:40:08

Tests(0/10):


#include <iostream> #include <vector> using namespace std; long long countBinaryNumbers(int n, long long s, long long t) { vector<vector<long long>> dp(n + 1, vector<long long>(2, 0)); dp[0][0] = 1; for (int i = 1; i <= n; i++) { dp[i][0] = dp[i - 1][0] + dp[i - 1][1]; dp[i][1] = dp[i - 1][0]; } long long count = 0; for (int i = n; i >= 0; i--) { if ((s >> i) & 1) { count += dp[i][1]; if ((t >> i) & 1) { break; } } else if ((t >> i) & 1) { count += dp[i][0]; } } return count; } int main() { int n; long long s, t; cin >> n >> s >> t; long long result = countBinaryNumbers(n, s, t); cout << result << endl; return 0; }


测评信息: