Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
116217 彭士宝 求和比较 Python3 Wrong Answer 33 MS 3864 KB 1110 2025-04-06 17:05:42

Tests(1/4):


Code:

def count_split_schemes(N, M): total_sum = N * (N + 1) // 2 # 计算1到N的总和 if (total_sum + M) % 2 != 0 or (total_sum - M) % 2 != 0: return 0 sum1 = (total_sum + M) // 2 sum2 = (total_sum - M) // 2 # 动态规划检查sum1 dp = [[False] * (sum1 + 1) for _ in range(N + 1)] dp[0][0] = True for i in range(1, N + 1): for j in range(sum1 + 1): dp[i][j] = dp[i - 1][j] if j >= i: dp[i][j] = dp[i][j] or dp[i - 1][j - i] count = 0 if dp[N][sum1]: count += 1 # 如果sum1 != sum2,检查sum2 if sum1 != sum2: dp = [[False] * (sum2 + 1) for _ in range(N + 1)] dp[0][0] = True for i in range(1, N + 1): for j in range(sum2 + 1): dp[i][j] = dp[i - 1][j] if j >= i: dp[i][j] = dp[i][j] or dp[i - 1][j - i] if dp[N][sum2]: count += 1 return count # 读取输入 N, M = map(int, input().split()) # 输出结果 print(count_split_schemes(N, M))


Run Info:

------Input------
5 3
------Answer-----
3
------Your output-----
2