using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Main
{
class Program
{
static void Main(string[] args)
{
int[,] map = new int[1005, 1005];
int[] Bvalue = https://www.it610.com/article/new int[1005];
int[] Bvolume = new int[1005];
string cin,cin2;
string[] sp,sp2;
int number, volume;
int round = Convert.ToInt32(Console.ReadLine());
while (round-- != 0)
{
cin = Console.ReadLine();
sp = cin.Split(' ');
number = Convert.ToInt32(sp[0]);
volume = Convert.ToInt32(sp[1]);
cin = Console.ReadLine();
cin2 = Console.ReadLine();
sp = cin.Split(' ');
sp2 = cin2.Split(' ');
for (int i = 1;
i <= number;
++i)
{
Bvalue[i] = Convert.ToInt32(sp[i - 1]);
Bvolume[i] = Convert.ToInt32(sp2[i - 1]);
}for (int i = 0;
i < 1002;
++i)
{
map[i, 0] = 0;
}for (int i = 1;
i <= number;
++i)
{
for (int j = 0;
j <= volume;
++j) //题目默认volume为0时value可以不为0,所以必须j=0开始
{
map[i, j] = map[i - 1, j];
if (j >= Bvolume[i])
map[i, j] = map[i - 1, j] > map[i - 1, j - Bvolume[i]] + Bvalue[i] ?
map[i - 1, j] : map[i - 1, j - Bvolume[i]] + Bvalue[i];
}
}
Console.WriteLine(map[number, volume]);
}
}
}
}
20200516 | 2017-03-22 17:18:12 | Accepted | 2602 | 187MS | 17812K | 1811 B | C# | harrypoirot |
【hdu-2602 Bone Collector C#_Ex】