HDU_4939 stupid tower defense 2014多校7 多变量型DP
意思是有个塔防游戏,有三种塔,红塔在怪物经过的时候每秒会产生攻击力大小的伤害,绿塔对怪物经过以及经过之后每秒产生攻击力大小的伤害,还有种蓝塔,对怪物进行减速,即怪物从此之后经过一个单位都会减慢c秒
最后最最大的伤害值是多少
又是比赛的时候没想出来,知道是个DP,但是对这种多变量型的DP就是有点不感冒。这个思想其实也是差不多的,你首先得枚举其中的一个值或者两个值
这里有个特性,我绿塔和蓝塔放越前面越好,红塔放越后面越好(主要是腾前面的位置给另外两种),这用了点贪心技巧,但绝对是对的
所以我们可以枚举某个点 后面全部是放红塔。。。然后我绿塔和蓝塔该怎么处理呢。这个时候我们不能猛想全局,考虑单个点的伤害,前面是绿和蓝,后面是红,这样在这个点所受的伤害,我枚举前面蓝塔有几个,则绿塔就是长度-蓝的数目,这样对该点的伤害我就可以求出来,然后通过i-1过渡出来,就可以得到整个前段受的伤害,再通过直接算出后面红塔的伤害,就可以得出这个状态下受到的总伤害,最后取最大值即可
#include <iostream>
#include <cstdio>
#include <cstring>
#define LL __int64
using namespace std;
LL dp[1510][1510];
int main()
{
int w,kase=0;
LL n,x,y,z,t;
scanf("%d",&w);
while (w--)
{
memset(dp,0,sizeof dp);
scanf("%I64d%I64d%I64d%I64d%I64d",&n,&x,&y,&z,&t);
LL ans=0;
for (int i=1;i<=n;i++){
for (int j=0;j<=i;j++){
if(j<i)
dp[i][j]=dp[i-1][j]+((i-1-j)*z+t)*j*y;
if (j>0){
dp[i][j]=max(dp[i][j],dp[i-1][j-1]+((i-j)*z+t)*(j-1)*y);
} ans=max(ans,dp[i][j]+((i-j)*z+t)*(n-i)*(x+j*y)); }
}
ans=max(ans,n*t*x);
printf("Case #%d: ",++kase);
printf("%I64d\n",ans);
}
}
HDU_4939 stupid tower defense 2014多校7 多变量型DP的更多相关文章
- hdu4939 Stupid Tower Defense (DP)
2014多校7 第二水的题 4939 Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131 ...
- dp --- hdu 4939 : Stupid Tower Defense
Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ...
- HDU4939Stupid Tower Defense (有思想的dp)
Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Oth ...
- Stupid Tower Defense
Problem Description FSF is addicted to a stupid tower defense game. The goal of tower defense games ...
- 初识Tower Defense Toolkit
Tower Defense Toolkit 做塔防游戏的插件 主要层次如下图: 1GameControl _ _Game Control(Script) _ _ _Spawn Manager _ _ ...
- Tower Defense Game
Tower Defense Game 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 There is a tower defense game with n level ...
- hdu 4779 Tower Defense (思维+组合数学)
Tower Defense Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others) ...
- HDU 4779:Tower Defense
Tower Defense Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)T ...
- 2014多校第七场1005 || HDU 4939 Stupid Tower Defense (DP)
题目链接 题意 :长度n单位,从头走到尾,经过每个单位长度需要花费t秒,有三种塔: 红塔 :经过该塔所在单位时,每秒会受到x点伤害. 绿塔 : 经过该塔所在单位之后的每个单位长度时每秒都会经受y点伤害 ...
随机推荐
- SQLite、MySQL和PostgreSQL 三种关系数据库哪个好?
关系型数据库的使用已经有相当长的时间了.它们变得流行起来托了管理系统的福,关系模型被实现得相当的好,并且被证明是操作数据的好方法(特别是事务性强的应用). 在这篇DigitalOcean文章中,我们将 ...
- HTTP出现前的协议
前言 再HTTP普及之前,也就是从互联网的诞生期至今,曾出现过各式各样的协议.在HTTP规范确立之际,制定者们参考了那些协议的功能. 正文 1.FTP(File Transfer Protocol) ...
- 十七 Spring的JDBC模版:使用开源连接池,DBCP,C3P0
DBCP的配置以及使用 引入jar包
- 2019 徐州网络赛 G Colorful String 回文树
题目链接:https://nanti.jisuanke.com/t/41389 The value of a string sss is equal to the number of differen ...
- 如何:使用 as 和 is 运算符安全地进行强制转换(C# 编程指南)
如何:使用 as 和 is 运算符安全地进行强制转换(C# 编程指南) 由于对象是多态的,因此基类类型的变量可以保存派生类型.若要访问派生类型的方法,需要将值强制转换回该派生类型.不过,在这些情况下, ...
- 利用Python进行多项式拟合
多项式拟合的简单代码: import matplotlib.pyplot as plt import numpy as np x=[,,,,,,,] y=[,,,,,,,] a=np.polyfit( ...
- windows驱动开发-设备扩展
设备对象Device_Object记录通用设备信息,另外一些信息记录在设备扩展里,设备扩展由程序员自己定义,由程序员指定内容和大小,由I/O管理器创建,并保存在非分页内存中. 驱动程序中,尽量避免使用 ...
- new Vue() 和 export default {}及Vue页面组件和标签组件说明与比较(非常重要)
说明与比较:new Vue() 和 export default {} (1)vue就是一个构造函数 (2)vue标签组件:是HTML标签的扩展https://www.cnblogs.com/w-wa ...
- 使用IDEA,Eclispe搭建Spring Boot项目
如何创建一个Spring Boot项目?这里使用maven来进行依赖管理,根据常用的IDE,可以使用IDEA.Eclipse.或者访问官方网站搭建. 项目搭建环境准备 JDK:1.8 MAVEN:3. ...
- Linux centosVMware vim 编辑模式、vim命令模式、vim实践
一.编辑模式.命令模式 在一般模式下输入:或/可进入命令模式.在该模式下可进行走索某个字符或字符串,也可保存.替换.退出.显示行号等. /word:在光标之后查找一个字符串word,按n向后继续搜索 ...