zoukankan      html  css  js  c++  java
  • 【动态规划】完全背包问题

    题目描述

    话说张琪曼和李旭琳又发现了一处魔法石矿(运气怎么这么好?各种嫉妒羡慕恨啊),她们有一个最多能装m公斤的背包,现在有n种魔法石,每种的重量分别是W1,W2,…,Wn,每种的价值分别为C1,C2,…,Cn。若每种魔法石的个数足够多,求她们能获得的最大总价值。

    输入

    第一行为两个整数,即m,n。

    以后每行为两个整数,表示每块魔法石的重量和价值。

    输出

    获得的最大总价值。

    样例输入

    5 5
    1 1
    2 2
    3 3
    4 4
    5 5
    

    样例输出

    5
     1 #include<bits/stdc++.h>
     2 
     3 using namespace std;
     4 int dp[1000010],n,m,v,w;
     5 int main()
     6 {
     7     int i,j;
     8     scanf("%d%d",&m,&n);
     9     while(n--)
    10     {
    11         scanf("%d%d",&w,&v);
    12         for(i=w;i<=m;i++)dp[i]=max(dp[i],dp[i-w]+v);
    13     }
    14     printf("%d
    ",dp[m]);
    15     return 0;
    16 }
    View Code
  • 相关阅读:
    Django框架简介
    前端之Bootstrap
    前端之JQuery
    前端之BOM和DOM
    前端知识之js
    前端知识之CSS
    假期学习总结2-10
    假期学习总结2-9
    假期学习总结2-8
    假期学习总结2-7
  • 原文地址:https://www.cnblogs.com/SoulSecret/p/8423280.html
Copyright © 2011-2022 走看看