动态规划 NOIP经典问题 开心的金明(洛谷P1060题题解,Java语言描述)
生活随笔
收集整理的這篇文章主要介紹了
动态规划 NOIP经典问题 开心的金明(洛谷P1060题题解,Java语言描述)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目要求
P1060題目鏈接
分析
經(jīng)典的0/1背包問題,《背包九講》中提到的典例。
動(dòng)態(tài)轉(zhuǎn)移方程:f[j]=Math.max(f[j],f[j?v[i]]+w[i])f[j] = Math.max(f[j], f[j-v[i]]+w[i])f[j]=Math.max(f[j],f[j?v[i]]+w[i])
AC代碼(Java語言描述)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));String[] temp = reader.readLine().split("\\s+");int n = Integer.parseInt(temp[0]), m = Integer.parseInt(temp[1]);int[] v = new int[m], w = new int[m], f = new int[n+1];for (int i = 0; i < m; i++) {temp = reader.readLine().split("\\s+");v[i] = Integer.parseInt(temp[0]);w[i] = Integer.parseInt(temp[1])*v[i];}reader.close();for (int i = 0; i < m; i++) {for (int j = n; j >= v[i]; j--) {f[j] = Math.max(f[j], f[j-v[i]]+w[i]);}}System.out.println(f[n]);} }總結(jié)
以上是生活随笔為你收集整理的动态规划 NOIP经典问题 开心的金明(洛谷P1060题题解,Java语言描述)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 选举学生会(洛谷P1271题题解,Jav
- 下一篇: 【操作系统】实验 设计一个按优先权调度算