zoukankan      html  css  js  c++  java
  • 奶牛的锻炼

    背景 Background  
      USACO
         
         
      描述 Description  
      奶牛Bessie有N分钟时间跑步,每分钟她可以跑步或者休息。若她在第i分钟跑步,可以跑出D_i米,同时疲倦程度增加1(初始为0)。若她在第i分钟休息,则疲倦程度减少1。无论何时,疲倦程度都不能超过M。另外,一旦她开始休息,只有当疲惫程度减为0时才能重新开始跑步。在第N分钟后,她的疲倦程度必须为0。
         
         
      输入格式 Input Format  
      第一行,两个整数,代表N和M。
    接下来N行,每行一个整数,代表D_i。
         
         
      输出格式 Output Format  
      Bessie想知道,她最多能跑的距离。
     
    样例输入 Sample Input [复制数据]  
     
         
         
      样例输出 Sample Output [复制数据]  
     
    View Code
     1 #include<iostream>
     2 #include<string.h>
     3 #include<algorithm>
     4 #include<cstdio>
     5 #include<cstdlib>
     6 #include<cstring>
     7 
     8 
     9 using namespace std;
    10 
    11 int n,m;
    12 int a[2001];
    13 int f[2001][501];
    14 
    15 
    16 int main( )
    17 {
    18     cin>>n>>m;
    19     for(int i=1;i<=n;i++)
    20     {
    21        scanf("%d",&a[i]);
    22     }
    23     memset(f,0,sizeof(f));
    24     for(int i=1;i<=n;i++)
    25     {
    26         for(int j=0;j<=m;j++)
    27         {
    28              if(j!=0)    
    29              f[i][j]=f[i-1][j-1]+a[i];
    30              else  
    31              {
    32                  f[i][0]=max(f[i][0],f[i-1][0]);
    33                  for(int k=i;k>=1;k--)
    34                  {
    35                     f[i][0]=max(f[i][0],f[i-k][k]);
    36                  }
    37              }
    38         }
    39     }
    40     int maxn=0;
    41     cout<<f[n][0];
    42     system  ("pause");
    43     return 0;
    44 }
    45     
    46       

    首先这道题有个坑爹的地方,那就是休息必须休息到0才能再开始。对于这个,可以采取一种类似区间动态规划的思想,FOR一遍以前的f[i-k][k],最后还要注意,f[i][0]可由f[i-1][0]递推而来。。。这道题要A掉不简单。。。

  • 相关阅读:
    (模板)高斯消元法模板
    poj1797(dijstra变形,求最小边的最大值)
    poj2253(floyd变形)
    (模板)poj2387(dijkstra+优先队列优化模板题)
    poj1915(双向bfs)
    poj3977(折半枚举+二分查找)
    uva11624 Fire! (bfs预处理)
    codeforces#1152C. Neko does Maths(最小公倍数)
    codeforces#1154F. Shovels Shop (dp)
    codeforces#1136E. Nastya Hasn't Written a Legend(二分+线段树)
  • 原文地址:https://www.cnblogs.com/spwkx/p/2586892.html
Copyright © 2011-2022 走看看