输入
输入中有 多组 测试数据。每组测试数据的第一行有两个整数n和v,1<=n<=10^5, 1<=v<=10^9,n为可 供选购糖果 数量 ,v为货车的容量。随后n行为糖果的具体信息,第一行编号为1,第二行编号为2,以此类推,最后一行编号为n。每行包含两个整数ti和pi,1<=ti<=2, 1<=pi<=10^4,ti为糖果所属的序列,1为A1、2为A2,pi则是其中的魔幻因子含量。
输入中有 多组 测试数据。每组测试数据的第一行有两个整数n和v,1<=n<=10^5, 1<=v<=10^9,n为可 供选购糖果 数量 ,v为货车的容量。随后n行为糖果的具体信息,第一行编号为1,第二行编号为2,以此类推,最后一行编号为n。每行包含两个整数ti和pi,1<=ti<=2, 1<=pi<=10^4,ti为糖果所属的序列,1为A1、2为A2,pi则是其中的魔幻因子含量。
-
- 样例输入
3 2
1 2
2 7
1 3 - 输出
- 对每组测试数据,先在单独的一行中输出能采购的糖果中的魔幻因子最高含量,之后在单独的行中按编号从小到大的顺序输出以空格分隔的糖果编号,若有多组糖果组合均能满足要求,输出编号最小的组。若没有糖果能够满足要求,则在第一行中输出0,第二行输出“No”。
- 样例输出
- 样例输入
7
2
具体程序网上很多资料,这里我只分享一些题目中可能难理解的地方或者误区 (上面标红的两处)
1. n为可供选购糖果数量
我一开始以为是种类,这个差距还是挺大的,因为如果是种类的话,某种糖果可以被重复放入,这样一来,假如货车容量是5,有三种糖果,重量和对应的魔方因子为
1 2
2 7
1 3
那么我总可以装满,但是如果是数量的话,当货车容量大于总重量时,最大价值一定是全部可选糖果价值的总和。
2. 若有多组糖果组合均能满足要求,输出编号最小的组
这个情况比如下面这种情况:
3 2
1 2
1 5
2 7
组合1:糖果1+糖果2 总价值=7
组合2:糖果3 总价值=7
这两种组合都满足要求,但是组合1的编号小,所以输出1 2,而不是3