zoukankan      html  css  js  c++  java
  • 背包问题

    背包问题

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
     
    描述
    现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。
     
    输入
    第一行输入一个正整数n(1<=n<=5),表示有n组测试数据;
    随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1<=s<=10);s表示有s个物品。接下来的s行每行有两个正整数v,w。
    输出
    输出每组测试数据中背包内的物品的价值和,每次输出占一行。
    样例输入
    1
    3 15
    5 10
    2 8
    3 9
    
    样例输出
    65
    来源
    [苗栋栋]原创
    上传者
    苗栋栋


    01.#include<stdio.h>
    02.int main()
    03.{
    04.int N,m,n,z,b;
    05.scanf("%d",&N);
    06.while(N--)
    07.{
    08.int a[100]={0};
    09.int k=0,k2=0;
    10.scanf("%d %d",&m,&n);
    11.for(int i=0;i<m;i++)
    12.{
    13.scanf("%d",&b);
    14.if(a[b]==0)
    15.{
    16.scanf("%d",&a[b]);
    17.}
    18.else
    19.{
    20.scanf("%d",&z);
    21.a[b]+=z;
    22.}
    23.}
    24.for(int i=99;i>0;i--)
    25.{
    26.while(a[i]&&k<n)
    27.{
    28.k++;
    29.k2+=i;
    30.a[i]--;
    31.}
    32.}
    33.printf("%d ",k2);
    34.}
    35.return 0;
    36.}

  • 相关阅读:
    TCP/IP详解卷:协议 第八章简要总结
    渗透测试1
    以前的实验博客地址,以前使用csdn
    day03---Node (05)
    day03---Vue(04)
    day03---Vue(03)
    day03---ES6入门(02)
    day03---前端开发和前端开发工具(01)
    Docker实战总结
    ETL之Kettle入门
  • 原文地址:https://www.cnblogs.com/leishitou/p/5436220.html
Copyright © 2011-2022 走看看