HDU 4939 DP
给你一段长为n的路,每一个单位长度可以放一种塔,这里有三种塔。
红1)对正在经过这座塔的敌人进行 x 每秒伤害的攻击
绿2)对于已经经过这塔的敌人进行y每秒的伤害攻击
蓝3)对已经经过这个塔的敌人放慢速度,使得原先为 经过一个单位时间为 t的速度变为 t+z
对于红塔一定是放在最后面,然后对于前面的绿塔和蓝塔DP
dp[i][j]=Max(dp[i-1][j-1]+y*(i-j)*(t+(j-1)*z),dp[i-1][j]+y*(i-j-1)*(t+j*z));
前i个放j个蓝塔=Max((前i-1个放j-1个,当前放蓝塔所得到的伤害总和),(前i-1个放j个,当前放绿塔得到的伤害总和));
#include "stdio.h"
#include "string.h"
__int64 dp[1600][1600];
__int64 Max(__int64 a,__int64 b)
{if (a<b) return b;else return a;
}
int main()
{__int64 Case,ii,n,x,y,z,t,ans,i,j;scanf("%I64d",&Case);for (ii=1;ii<=Case;ii++){scanf("%I64d%I64d%I64d%I64d%I64d",&n,&x,&y,&z,&t);printf("Case #%I64d: ",ii);memset(dp,0,sizeof(dp));for (i=0;i<=n;i++) //前i个位置for (j=0;j<=i;j++) // 放j个蓝塔{if (j==0) dp[i][j]=dp[i-1][j]+y*(i-j-1)*(t+j*z);elsedp[i][j]=Max(dp[i-1][j-1]+y*(i-j)*(t+(j-1)*z),dp[i-1][j]+y*(i-j-1)*(t+j*z));if (dp[i][j]<0) dp[i][j]=0;}ans=0;for (i=0;i<=n;i++)for (j=0;j<=i;j++)ans=Max(ans,dp[i][j]+(n-i)*(t+j*z)*(x+y*(i-j)));printf("%I64d\n",ans);}return 0;
}
HDU 4939 DP相关推荐
- HDU 5928 DP 凸包graham
给出点集,和不大于L长的绳子,问能包裹住的最多点数. 考虑每个点都作为左下角的起点跑一遍极角序求凸包,求的过程中用DP记录当前以j为当前末端为结束的的最小长度,其中一维作为背包的是凸包内侧点的数量.也 ...
- hdu 1171 dp(多重背包)
View Code //hdu 1171 dp(多重背包)//题意:把所有物品的价值尽量分为相等的两份,不能等分的话 //后面那份可以稍小于前面的 //求出价值总和后,令价值的一半为背包容量,让背包尽 ...
- HDU 4832(DP+计数问题)
HDU 4832 Chess 思路:把行列的情况分别dp求出来,然后枚举行用几行.竖用几行,然后相乘累加起来就是答案 代码: #include <stdio.h> #include < ...
- hdu 5086(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5086 题目大意:给出长度为n的数组,然后要求累计里面的每个子串的和. 解题思路:这道题直接枚举肯定不行 ...
- hdu 2059(dp)
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Des ...
- HDU 3646 DP + 二分
链接:http://acm.hdu.edu.cn/showproblem.php?pid=3646 题意:你有N把武器,每把武器可以对敌人造成一定的伤害(et:攻击力500,敌人血量为200,杀死敌人 ...
- Hdu 4293 DP
题意: n个人说自己前面有多少人 后面有多少人 求出说真话人数最多的情况 每个样例有 一个 n 表示n个人 接下来 n 行有a b 表示他前面的人数和后面的人数 思路: 如果已经知道了其中一组的人数~ ...
- hdu 3905(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3905 思路:dp[i][j]表示前i分钟,睡了j分钟收获的的最大价值,并记tmp_dp[i][j]为从 ...
- hdu 4472 dp
http://acm.hdu.edu.cn/showproblem.php?pid=4472 第一直觉找规律,第二直觉 把树拆成子树,然后递推或者DP 然后发现不行,然后才发现自己题都没读,,,, d ...
- hdu 1003 dp
确实十分经典的一题,但我是参照dicuss 的题目做的,真是惭愧啊, 希望可以多接触些dp类型的题,提高自己水平 格外注意 sum 的代表含义, #include<iostream> #i ...
最新文章
- 关于API的设计和需求抽象
- [03] 为什么要使用异常机制
- C++ 类成员引用变量的使用
- Oracle_忘记密码
- 8年前端开发的知识点沉淀(不知道会多少字,一直写下去吧...)
- .net工具类 获取枚举类型的描述
- python-web自动化-元素定位
- 面对初学者的CAN总线入门教程(二)_CAN协议基本概念及其规格标准
- Utils 前端随机生成id,中文姓名
- jQuery 选择城市,显示对应的即时时区时间
- HDU 1429 bfs 状态压缩
- [.Net码农]RDLC报表中使用自定义函数
- 如何在C ++ 中分割PDF档案?试试Aspose
- 界面原型设计——在线教育app
- 修改Thinkphp-cmf上传视频大小限制
- 随笔 数据库敏感数据加密存储
- TYVJ账号大公布!
- java——百钱买百鸡
- 在ArcEngine中的点元素如何使用其本身提供的各种符号特征
- 150个常用的Linux命令汇总
热门文章
- codeforces topcoder 指南
- 给C盘减减肥,让你电脑飞一般速度
- Python心法:numpy命令关于axis=0,axis=1,axis=2
- Win2003可用序列号(标准版与企业版)
- 什么是大数据(转自知乎)
- 离线强化学习(Offline RL)系列1:离线强化学习原理入门
- oracle append parallel,oracle 优化之parallel和append
- 数学:AI和大数据的基础
- 55-硅谷课堂1(项目概述+MyBatisPlus使用+搭建项目环境+开发讲师管理接口)
- 2014腾讯校园招聘实习技术类笔试题目