zoukankan      html  css  js  c++  java
  • HDU 4939 Stupid Tower Defense dp

    由于瞬间伤害的塔一定是放在终点端的,所以枚举这样的塔的个数

    然后就能把n^3变成n^2了


    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    typedef long long ll;
    const int N = 1500 + 2;
    ll d[N][N]; // j = 3;
    int Tt = 0, n, x, y, z, t;
    
    inline void up(ll& a, ll v) {
        if (v > a)
            a = v;
    }
    
    void work() {
        ll ans = 0, T, D;
        scanf("%d%d%d%d%d", &n, &x, &y, &z, &t);
        for (int i = 0; i <= n; ++i)
            for (int j = 0; j <= i; ++j)
                d[i][j] = 0;
        for (int i = 0; i < n; ++i)
            for (int j = 0; j <= i; ++j) {
                T = t + (ll)z * j;
                D = T * (n - i) * x + T * (n - i) * y * (i - j) + d[i][j];
                up(ans, D);
                // put a 2
                up(d[i + 1][j], d[i][j] + (ll)(i - j) * y * T);
                up(d[i + 1][j + 1], d[i][j] + (ll)(i - j) * y * T);
            }
        for (int i = 0; i <= n; ++i)
            up(ans, d[n][i]);
        printf("Case #%d: %I64d
    ", ++Tt, ans);
    }
    
    int main() {
        int cas;
        scanf("%d", &cas);
        while (cas -- > 0) 
            work();
        return 0;
    }


  • 相关阅读:
    .net注册iis
    hdu 1081To The Max
    hdu 1312Red and Black
    hdu 1016Prime Ring Problem
    hdu 1159Common Subsequence
    hdu 1372Knight Moves
    hdu 1686Oulipo
    hdu 1241Oil Deposits
    hdu 1171Big Event in HDU
    hdu 4006The kth great number
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6905690.html
Copyright © 2011-2022 走看看