求代码
  • 板块灌水区
  • 楼主ji_ji_ji
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/12/10 20:03
  • 上次更新2023/12/10 21:00:33
查看原帖
求代码
1235635
ji_ji_ji楼主2023/12/10 20:03

【题目描述】: 越越开了一家木工厂,每次运来一根原木(长度为 � L ),木工师傅们(共 � N 人)就会来截取木头,第 � i 个师傅会截取一段长度为 � � a i ​ 或 � � b i ​ 的木料,来完成自己的作品。对于这根原木,每个师傅最多可以截取一次,当然作为老板,越越可以为了减少木料的浪费,让某个师傅,放弃在这根原木上取木料。

你能给出每位师傅如何截取,使得剩下的木料最少吗?

请你给出一个师傅们的截取方案,如果有多个截取方案,请你输出字典序最小的一个方案。

所谓字典序最小的,是指先以第一个师傅截取的长度比,最较小的,如果相等,则以第二个师傅截取的长度比较, ⋯ ⋯ 。

【输入描述】: 第一行两个正整数 � N 和 � L;( 1 ≤ � ≤ 17 1≤N≤17, 1 ≤ � ≤ 1 0 8 1≤L≤10 8 )

以下 � N 行,第 � i 行两个正整数 � � a i ​ 和 � � b i ​ 。( 1 ≤ � � , � � ≤ 1 0 8 1≤a i ​ ,b i ​ ≤10 8 )

【输出描述】: 输出第一行,一个非负整数,表示剩下木料的长度;

第二行 � N 个非负整数,按师傅编号的顺序,给出师傅们的截取方案(字典序最小的)。

【样例输入】: 3 10 3 5 2 6 2 9 Copy 【样例输出】: 1 0 0 9

2023/12/10 20:03
加载中...