题目描述
今天去购物!
小蓝是个宅男,很长时间才出去购物一次,今天又到了小蓝去购物的日子,今天的商店里有 n 个小蓝需要的物品,每个物品有一个价值 vi 以及一个重量 wi ,小蓝最多可以拿下重量总和为 m 的物品,在此我们定义一次购物中物品的价值和为购买的所有物品的价值异或和。小蓝想知道在买下的物品重量恰好为 1~m 的情况下,价值最高为多少。
异或为位运算操作"^"。
如果本题评测超时,请使用#pragma GCC optimize(3,"Ofast","inline")
输入
第一行包含一个整数 T (1<= T <=100),表示测试用例的组数。
对于每组测试用例:
第一行输入一个正整数 n,m (1<= n,m <=2000)
接下来 n 行每行输入两个整数表示第 i 个物品的价值 vi 以及重量 wi (0<= vi,wi <=2000)
保证 n 的和不超过2000
输出
对于每组测试用例:
输出一行 m 个整数,对于第 i 个回答,如果能有一种方案可以使得购买的物品重量恰好为 i ,则输出价值的最大值,否则输出”-1”(不带引号)。
1
5 5
3 2
4 3
3 1
2 1
5 1