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

    dp;枚举red,dp前i 个塔中有j 个蓝塔的最大伤害。

    机智的地方:dp前i 个塔的时候可以同时处理n-i 个红塔,这样就少了个循环。。。(枚举红塔的循环)

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 using namespace std;
     5 
     6 long long dp[1505][1505];
     7 long long n,x,y,z,t;
     8 
     9 int main (){
    10     int T,kase=0;
    11     cin>>T;
    12     //scanf("%d",&T);
    13     while (T--){
    14         cin>>n>>x>>y>>z>>t;
    15         //scanf("%I64d%I64d%I64d%I64d%I64d",&n,&x,&y,&z,&t);
    16         long long ans=x*n*t;
    17             memset (dp,0,sizeof dp);
    18             for (int i=0;i<=n;i++){
    19                 if (i>0)
    20                     dp[i][0]=dp[i-1][0]+y*(i-1)*t;
    21                 dp[i][i]=0;
    22                 for (int j=1;j<i;j++){
    23                     dp[i][j]=max (dp[i-1][j-1]+(i-j)*y*(t+(j-1)*z),dp[i-1][j]+(i-j-1)*y*(t+j*z));
    24                 }
    25                 for (int j=0;j<=i;j++){
    26                     ans=max (ans,dp[i][j]+(n-i)*x*(t+j*z)+(n-i)*(t+j*z)*(i-j)*y);
    27                 }
    28             }
    29         cout<<"Case #"<<++kase<<": "<<ans<<endl;
    30         //printf("Case #%d: %I64d
    ", ++kase , ans);
    31     }
    32     return 0;
    33 }
  • 相关阅读:
    nproc 查看系统可用处理单元数
    c++内存泄露的坑
    内存泄露脚本
    c++内存问题(转)
    tmp
    kprobe
    内存对齐算法
    正则
    P3261 [JLOI2015]城池攻占有趣的做法
    CF1620C BAString题解
  • 原文地址:https://www.cnblogs.com/gfc-g/p/3921541.html
Copyright © 2011-2022 走看看