当前位置:首页>python>2026年信息素养大赛星火征途python之多村庄救灾粮分配(语法综合应用)

2026年信息素养大赛星火征途python之多村庄救灾粮分配(语法综合应用)

  • 2026-10-11 08:17:54
2026年信息素养大赛星火征途python之多村庄救灾粮分配(语法综合应用)

题目描述:

晋察冀根据地后勤部门需将有限的救灾小米分配给多个受灾村庄,需按量化规则计算每个村庄的实际分配量,并筛选出「人均实际分配量最高」的最优村庄(即资源利用效率最高的村庄),规则如下。

核心计算规则:

1. 基础参数定义:

l村庄数量:m(2≤m≤5);

l总小米数量:S(斤,1000≤S≤5000,且能被所有村庄受灾总人数整除);

l每个村庄含 3 个固定参数:受灾人数(P)、优先级(L:1/2/3 级,1 级最高)、运输损耗率(R:仅 5/10/15%)。

2. 分步计算逻辑:

① 人均基础量 = 总小米 S ÷ 所有村庄受灾总人数(因 S 可整除总人数,结果为整数);

② 单村庄基础分配量 = 该村庄受灾人数 × 人均基础量;

③ 优先级调整(结果为整数):

l1 级:调整后量 = 基础分配量 × 1.2;

l2 级:调整后量 = 基础分配量 × 1.0(不变);

l3 级:调整后量 = 基础分配量 × 0.8;

④ 运输损耗调整(实际分配量,结果为整数):

l损耗率 5%:实际量 = 调整后量 × 95%;

l损耗率 10%:实际量 = 调整后量 × 90%;

l损耗率 15%:实际量 = 调整后量 × 85%。

3. 最优村庄判定规则:

l人均实际量 = 该村庄实际分配量 ÷ 该村庄受灾人数;

l最优村庄 = 人均实际量最大的村庄;若多个村庄人均值并列最大,取编号最小的村庄(村庄编号从 1 开始)。

输出要求:

第一行:m 个整数(空格分隔),依次为村庄 1~m 的实际分配量;

第二行:1 个整数,最优村庄的编号;

第三行:1 个浮点数,该最优村庄的人均实际量(保留 2 位小数)。

输入格式:

第 1 行:整数 m(村庄数量,2≤m≤5);

第 2 行:整数 S(总小米数量,1000≤S≤5000);

第 3 行:m 个整数(空格分隔),依次为村庄 1~m 的受灾人数 P(50≤P≤500);

第 4 行:m 个整数(空格分隔),依次为村庄 1~m 的优先级 L(仅 1/2/3);

第 5 行:m 个整数(空格分隔),依次为村庄 1~m 的运输损耗率 R(仅5/10/15)。

输出格式:

第 1 行:m 个整数,空格分隔;

第 2 行:整数(最优村庄编号);

第 3 行:浮点数(保留 2 位小数)。

样例输入 1:

3

3600

200 300 100

1 2 3

10 10 10

样例输出 1:

1296 1620 432

1

6.48

样例解析 1

① 总受灾人数 = 200+300+100=600 → 人均基础量 = 3600÷600=6 斤 / 人;

② 基础分配量:村 1=200×6=1200、村 2=300×6=1800、村 3=100×6=600;

③ 优先级调整:村 1(1 级)=1200×1.2=1440、村2(2 级)=1800、村 3(3 级)=600×0.8=480;

④ 损耗调整(10%):村1=1440×0.9=1296、村2=1800×0.9=1620、村 3=480×0.9=432;

⑤ 人均实际量:村 1=1296÷200=6.48、村 2=1620÷300=5.4、村 3=432÷100=4.32 → 最优村为 1 号。

样例输入 2:

2

2000

100 100

2 2

5 15

样例输出 2:

950 850

1

9.50

样例输入 3:

4

4000

100 100 100 100

1 1 2 3

10 10 10 10

样例输出 3:

1080 1080 900 720
   1

10.80

数据范围:

所有输入参数均为合法整数,无空值 / 非法值;

S 能被总受灾人数整除,所有计算步骤结果均为整数(无需额外取整);

损耗率仅为 5/10/15,优先级仅为 1/2/3,无其他值。

参考答案:

详情见:懂了啵驿站

最新文章

随机文章