zoukankan      html  css  js  c++  java
  • [JZOJ P1276] [DP]郁闷的潜水员

    @kaike

    传送门

    不会写..弱的一渣。

    其实就是一个二维枚举,依次枚举氧气和氮气

    加上第i个罐子的氧气和氮气

    若氧气大于所要求的就满足

     

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 using namespace std;
     5 int yang,dan,n,a[1050],b[1050],c[1050],f[1050][1050];
     6 int main()
     7 {
     8     memset(f,10,sizeof(f));//因为要求最小值,所以初始化一个大值
     9     f[0][0]=0;//前0个罐子满足要求的重量为0
    10     cin>>yang>>dan;
    11     cin>>n;
    12     for(int i=1;i<=n;i++)
    13         cin>>a[i]>>b[i]>>c[i];
    14     for(int i=1;i<=n;i++)//枚举每个罐子
    15         for(int c1=yang;c1>=0;c1--)//枚举氧气
    16             for(int c2=dan;c2>=0;c2--)//枚举氮气
    17             {
    18                 int oo,nn;//oo来记录前i个罐子中气体的体积
    19                 oo=c1+a[i];
    20                 nn=c2+b[i];
    21                 if(oo>yang) oo=yang;//如果罐子中的体积大于需要的,就当成恰好满足,便于求最小值
    22                 if(nn>dan)  nn=dan;
    23                 f[oo][nn]=min(f[oo][nn],f[c1][c2]+c[i]);
    24             }
    25     cout<<f[yang][dan]<<endl;
    26     return 0;
    27 }
    蠢哭了

     

    No matter how you feel, get up , dress up , show up ,and never give up.
  • 相关阅读:
    light oj 1105 规律
    light oj 1071 dp(吃金币升级版)
    light oj 1084 线性dp
    light oj 1079 01背包
    light oj 1068 数位dp
    light oj 1219 树上贪心
    light oj 1057 状压dp TSP
    light oj 1037 状压dp
    矩阵快速幂3 k*n铺方格
    矩阵快速幂2 3*n铺方格
  • 原文地址:https://www.cnblogs.com/Kaike/p/5955368.html
Copyright © 2011-2022 走看看