zoukankan      html  css  js  c++  java
  • 【bzoj2748】[HAOI2012]音量调节

    F[i][j]表示在第i首歌曲结束后,音量能否刚好为j

    转移:F[i][j]=F[i][j-C[i]] or F[i][j+C[i]]

    初始化:F[0][beginlevel]=true

    最后在所有F[N][j]中找到F[N][j]为true的且要让j尽量大。

    如果所有0<=j<=maxlevel中的F[N][j]均为false,则输出-1。

     

    #include<algorithm>
    #include<iostream>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<cmath>
    #include<queue>
    using namespace std;
     
    #define N 1010
     
    int f[N][N];
     
    int n,b,m;
     
    int x;
     
    int main()
    {
        scanf("%d%d%d",&n,&b,&m);
        f[0][b]=1;
        for (int i=1;i<=n;i++)
        {
            scanf("%d",&x);
            for (int j=0;j<=m;j++)
            {
                if (j>=x)
                    f[i][j]=f[i-1][j-x];
                if (j+x<=m)
                    f[i][j]=(f[i][j] || f[i-1][j+x]);
            }
        }
        for (int i=m;i>=0;i--)
            if (f[n][i])
            {
                printf("%d",i);
                return 0;
            }
        printf("-1");
        return 0;
    }
    

      

  • 相关阅读:
    [转]测试的基本概念
    记录
    flash 与 程序通讯
    怎么正确的建立项目
    安装包的制作
    JS
    页面刷新定位
    [转]C#处理XML
    MSN机器人
    报表 的使用
  • 原文地址:https://www.cnblogs.com/yangjiyuan/p/5321100.html
Copyright © 2011-2022 走看看