万卷网 > 题目详情
题型:编程题

红军物资均衡分配
时间限制 1s
内存限制 256M
题目描述
长征途中,红军有两支纵队正在行军。后方有 n 件物资需要分配给前线部队。每件物资可以有三种分配方式:
1. 分配给第一纵队;
2. 分配给第二纵队;
3. 暂时留作战略预备。
由于运输能力有限,最多只能留 m 件物资作为预备。
为了保持两支纵队的公平,要求两支纵队获得的物资总重量必须相等。物资重量为w1, w2, ..., wn。
问:有多少种分配方式使得两支纵队获得的总重量相等,且预备物资不超过 m 件?
注意:两边都不分配,即所有物资都留作预备,也算一种方案,前提是 n <= m。
输入格式
第 1 行:两个正整数 n m,分别表示物资总数、预备上限。
第 2 行:n 个正整数 w_1, w_2, ..., w_n,表示各物资重量,空格分隔。
输出格式
输出一个整数,表示满足条件的分配方案总数。
输入样例1

3 3
1 2 3

输出样例1

3

输入样例2

3 1
1 2 3

输出样例2

2

输入样例3

4 0
2 3 5 10

输出样例3

2
更新时间:2026-07-02 17:40:17 |
【知识点】 全国青少年信息素养大赛C++编程挑战赛

相似题推荐

编程题

密信解析

题目描述

红军的一份密信由一串小写字母组成,解析规则如下:

1. 忽略所有元音字母 a, e, i, o, u。

2. 在剩下的每个辅音字母前加上一个点号 .。

3. 将剩下的所有辅音字母转为大写。

请输出解析后的密信。

输入描述

一个长度不超过 100 的字符串。

输出描述

输出解析后的字符串,保证输出不为空。

样例输入

secret

样例输出

.S.C.R.T


2026-07-03
单选题

在“飞夺泸定桥”战斗中,22 名突击队员分成若干小组。执行代码:

cout << 22 / 4 + 22 % 4;

输出的结果是( )

A.

5

B.

2

C.

7

D.

8

2026-07-03
多选题

在解放战争时期的后勤物资调配中,需要对各种物资数据进行排序处理。解放战争是关系到中国前途命运的大决战,辽沈、淮海、平津三大战役的胜利奠定了新中国成立的基础。以下关于排序算法的说法中,正确的是?

A.

冒泡排序的平均时间复杂度是 O(n^2)

B.

选择排序的平均时间复杂度是 O(n^2)

C.

快速排序的平均时间复杂度是 O(nlogn)

D.

插入排序的平均时间复杂度是 O(n^2)

2026-07-03
多选题

为了练习投弹技术,小战士每天进行 5 轮投掷。以下 for 循环能准确执行 5 次的有( )

A.

for (int i = 1; i <= 5; i++)

B.

for (int i = 0; i < 5; i++)

C.

for (int i = 5; i >= 1; i--)

D.

for (int i = 0; i <= 5; i++)

2026-07-03
单选题

大生产运动中,开荒面积 land 必须大于 10 亩且小于 50 亩才是“标准示范田”。以下能正确表示该条件的 C++ 表达式是( )

A.

10 < land < 50

B.

land > 10 && land < 50

C.

land > 10 || land < 50

D.

land > 10, land < 50

2026-07-03
公众号
客服 反馈
顶部