hdu-2602 Bone Collector C#_Ex

来源:互联网 发布:钱学森被美国监禁 知乎 编辑:程序博客网 时间:2024/04/27 19:02

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 = 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]);            }        }    }}

202005162017-03-22 17:18:12Accepted2602187MS17812K1811 BC#harrypoirot



0 0