红军物资均衡分配时间限制 1s内存限制 256M题目描述长征途中,红军有两支纵队正在行军。后方有 n 件物资需要分配给前线部队。每件物资可以有三种分配方式:1. 分配给第一纵队;2. 分配给第二纵队;3. 暂时留作战略预备。由于运输能力有限,最多只能留 m 件物资作为预备。为了保持两支纵队的公平,要求两支纵队获得的物资总重量必须相等。物资重量为w1, w2, ..., wn。问:有多少种分配方式使得两支纵队获得的总重量相等,且预备物资不超过 m 件?注意:两边都不分配,即所有物资都留作预备,也算一种方案,前提是 n <= m。输入格式第 1 行:两个正整数 n m,分别表示物资总数、预备上限。第 2 行:n 个正整数 w_1, w_2, ..., w_n,表示各物资重量,空格分隔。输出格式输出一个整数,表示满足条件的分配方案总数。输入样例13 3 1 2 3 输出样例1 3 输入样例2 3 1 1 2 3 输出样例2 2 输入样例3 4 0 2 3 5 10 输出样例3 2
正确答案:参考程序(Python):n,m=map(int,input().split());w=list(map(int,input().split()));import sys;sys.setrecursionlimit(10**6);from functools import lru_cache;@lru_cache(None);def f(idx,diff,pre):if idx==n:return 1 if diff==0 and pre<=m else 0;cnt=0;cnt+=f(idx+1,diff
试卷来源:2026信息素养大赛星火征途C++初中组复赛真题