zoukankan      html  css  js  c++  java
  • csu 1640 机智的刷题方式(完全背包)

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <time.h>
    using namespace std;
    
    const int N=10000+10;
    const int inf=0x7FFFFFFF;
    int dp[N];
    
    int main()
    {
        int a,b,c,_,i,j,h,x,ans1,ans2;
        scanf("%d",&_);
        while(_--)
        {
            scanf("%d%d%d",&a,&b,&c);
            scanf("%d%d",&h,&x);
            for(i=0; i<N; i++) dp[i]=inf;
            dp[0]=0;
            for(i=1; i<=h+8; i++)
            {
                if(dp[i-1]+a<dp[i]) dp[i]=dp[i-1]+a;
            }
            for(i=2; i<=h+8; i++)
            {
                if(dp[i-2]+b<dp[i]) dp[i]=dp[i-2]+b;
            }
            for(i=5; i<=h+8; i++)
            {
                if(dp[i-5]+c<dp[i]) dp[i]=dp[i-5]+c;
            }
    
            ans1=inf;
            for(i=h; i<=h+8; i++)
            {
                ans1=min(ans1,dp[i]);
            }
    
            memset(dp,0,sizeof(dp));
            for(i=a; i<=x; i++)
            {
                if(dp[i]<dp[i-a]+1) dp[i]=dp[i-a]+1;
            }
            for(i=b; i<=x; i++)
            {
                if(dp[i]<dp[i-b]+2) dp[i]=dp[i-b]+2;
            }
            for(i=c; i<=x; i++)
            {
                if(dp[i]<dp[i-c]+5) dp[i]=dp[i-c]+5;
            }
            printf("%d
    %d
    ",ans1,dp[x]);
    
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    re
    response.xpath
    response.css
    mongovue无法显示collection的问题
    window下安装scrapy
    openCV 图片的处理
    sql server 日期时间操作
    怎样在visual studio 2005 让客户端的recv函数不阻塞
    c# winform 程序用126邮箱发邮件
    MiniDump类笔记
  • 原文地址:https://www.cnblogs.com/xryz/p/4847950.html
Copyright © 2011-2022 走看看