zoukankan      html  css  js  c++  java
  • P1130 红牌

    P1130 红牌

     我们可以用 f [ i ] [ j ] 表示第 i 步在第 j 个小组完成的最小天数和
     每次做完一步后可以选择不换小组(即 j )或者换到下一个小组(即 j + 1,Ps : M组换到1组)
     所以转移方程为 f [ i ] [ j ] = min ( f [ i - 1 ] [ j ] , f [ i - 1 ] [ j - 1 ] ) + a [ i ] [ j ] ;
                       注意 f [ i - 1 ] [ 0 ] = f [ i - 1 ] [ m ] ;
     最后比较最后一步在哪个小组完成时总天数最少
     
    DP代码
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    using namespace std;
    int n,m;
    int a[2001][2001],f[2001][2001];
    int main()
    {
        cin>>n>>m;
        
        for(int i=1;i<=m;i++)
          for(int j=1;j<=n;j++)
          cin>>a[j][i];
          
        for(int i=1;i<=n;i++)
        {
          f[i-1][0]=f[i-1][m];
          
          for(int j=1;j<=m;j++)
            f[i][j]=min(f[i-1][j],f[i-1][j-1])+a[i][j];
        } 
        int ans=f[n][1];
        
        for(int i=2;i<=m;i++)
          ans=min(ans,f[n][i]);
        
        cout<<ans;
        return 0;
    }
     
  • 相关阅读:
    拼图
    事件处理和手势
    分栏控制器2
    分栏控制器
    数据保存
    常用小控件
    导航
    人人界面按钮,页面跳转,传值
    TextField
    image
  • 原文地址:https://www.cnblogs.com/xiaoyezi-wink/p/10605902.html
Copyright © 2011-2022 走看看