• MM群2007七夕模拟赛


      

    <问题分析>

    状态转移方程 s[i][j]=s[i-rmb[k]][j-rp[k]]+1 if(s[i][j]<s[i-rmb[k]][j-rp[k]]+1)

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 
     5 #define N 100+1
     6 
     7 int main()
     8 {
     9     int n,i,j,k,m,r,rmb[N],rp[N],time[N],s[N][N],c[N][N];
    10     scanf("%d",&n);
    11     for(i=1;i<=n;i++)
    12     {
    13        scanf("%d %d %d",&rmb[i],&rp[i],&time[i]);
    14     }
    15     scanf("%d %d",&m,&r);
    16     memset(s,0,N*N*sizeof(int));
    17     memset(c,0,N*N*sizeof(int));
    18     for(i=1;i<=n;i++)
    19     {                
    20        for(j=m;j>=rmb[i];j--)
    21        {
    22            for(k=r;k>=rp[i];k--)
    23            {
    24               
    25                  if(s[j][k]<s[j-rmb[i]][k-rp[i]]+1)
    26                  {
    27                     s[j][k]=s[j-rmb[i]][k-rp[i]]+1;
    28                     c[j][k]=c[j-rmb[i]][k-rp[i]]+time[i];
    29                  }
    30                  else if(s[j][k]==s[j-rmb[i]][k-rp[i]]+1&&c[j-rmb[i]][k-rp[i]]+time[i]<c[j][k])
    31                  {
    32                     c[j][k]=c[j-rmb[i]][k-rp[i]]+time[i]; 
    33                  }
    34            }
    35        }
    36     }
    37     i=c[m][r];
    38     printf("m:%d r:%d %d
    ",m,r,i);
    39     for(j=m;j>=0;j--)
    40     {
    41        for(k=r;k>=0;k--)
    42        {
    43           if(s[j][k]!=s[m][r])
    44           {
    45              continue;
    46           }
    47           if(i>c[j][k])
    48           i=c[j][k];
    49        } 
    50     }
    51     printf("%d
    ",i);
    52     while(true);
    53     return 0;
    54 }
  • 相关阅读:
    javascript之理解参数按值传递
    javascript之模仿jQuery实现框架雏形
    javascript之正则表达式学习笔记
    python常用算法了解
    爬虫_小结04
    爬虫_小结03
    爬虫_小结02
    爬虫_小结01
    IO 模型
    数据库,前端和框架须知
  • 原文地址:https://www.cnblogs.com/simplesslife/p/MutiplyPackage.html
Copyright © 2020-2023  润新知