2018-2019 ACM-ICPC ECfinal I. Misunderstood … Missing
首先有两个个属性值:\(A,D\),其中\(A\)表示目前攻击力,\(D\)表示每回合攻击的增量。
现在一共有\(n\)个回合,每一回合\(i\),可以有以下三种操作:
1.进行攻击,造成\(A+a_i\)的伤害;
2.攻击增量增加\(b_i\),变为\(D+b_i\);
3.攻击增加\(c_i\),变为\(A+c_i\)
现在询问,最后造成的伤害最大为多少。
考虑目前位于第 \(i\) 个回合,如果选择攻击,当前则会造成一定的伤害;如果选择增加攻击力或者增加增量,那么这是对后面的攻击有影响的。
我们不妨假设后面会攻击 \(j\) 次,在第 \(i\) 回合增加攻击力对答案的贡献就为\(j*c_i\),这个很好计算。但是增加增量就不是很好计算了,位置不同,最后的攻击力也不同。但是通过分析:假设后面在\(x_p,x_q,\cdots,x_{r}\)共\(j\)个位置进行了攻击,那么贡献即为:\(b_i*(x_p-i)+b_i*(x_q-i)+\cdots+b_i*(x_r-i)=b_i*(x_p+x_q+\cdots+x_r-i*j)\)。如果我们知道后面的攻击位置下标之和,那么对后面的贡献也很清楚了。
所以我们可以考虑倒着dp,设\(dp(i,j,k)\)为目前第\(i\)个位置,后面攻击了\(j\)次,下标和为\(k\),造成的最大伤害。转移的话就分三种情况:
\]
细节见代码吧:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 105;
int T;
int n ;
ll a[N], b[N], c[N] ;
ll dp[N][N * N] ;
int main() {
ios::sync_with_stdio(false); cin.tie(0) ;
cin >> T;
while(T--) {
memset(dp, 0xcf, sizeof(dp)) ;
cin >> n;
for(int i = 1; i <= n ; i++) cin >> a[i] >> b[i] >> c[i] ;
dp[1][n] = a[n] ;
for(int i = n - 1 ; i >= 1 ; i--) {
for(int j = n - i + 1 ; j >= 1 ; j--) {
for(int k = j * (2 * n - j + 1) / 2 ; k >= (2 * i + j - 1) * j / 2; k--) {
dp[j][k] = max(dp[j][k], dp[j][k] + max(1ll * j * c[i], (ll)b[i] * (k - j * i)));
dp[j][k] = max(dp[j][k], dp[j - 1][k - i] + a[i]) ;
}
}
}
ll ans = 0;
for(int i = 1 ; i <= n ; i++)
for(int j = i * (1 + i) / 2 ; j <= i * (2 * n - i + 1) / 2; j++)
ans = max(ans, dp[i][j]) ;
cout << ans << '\n';
}
return 0;
}
2018-2019 ACM-ICPC ECfinal I. Misunderstood … Missing的更多相关文章
- 2015 ACM/ICPC EC-Final
A. Boxes and Balls 二分找到最大的不超过$n$的$\frac{x(x+1)}{2}$形式的数即可. #include <bits/stdc++.h> using name ...
- 2019 ACM/ICPC 全国邀请赛(西安)J And And And (树DP+贡献计算)
Then n - 1n−1 lines follow. ii-th line contains two integers f_{a_i}(1 \le f_{a_i} < i)fai(1≤fa ...
- 2019 ACM/ICPC Asia Regional shanxia D Miku and Generals (二分图黑白染色+01背包)
Miku is matchless in the world!” As everyone knows, Nakano Miku is interested in Japanese generals, ...
- 2019 ACM/ICPC North America Qualifier G.Research Productivity Index(概率期望dp)
https://open.kattis.com/problems/researchproductivityindex 这道题是考场上没写出来的一道题,今年看看感觉简单到不像话,当时自己对于dp没有什么 ...
- 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)
摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...
- 2014嘉杰信息杯ACM/ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛
比赛链接: http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/36 题目来源: 2014嘉杰信息杯ACM ...
- ACM/ICPC 之 BFS(离线)+康拓展开(TSH OJ-玩具(Toy))
祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...
- ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 G. Garden Gathering
Problem G. Garden Gathering Input file: standard input Output file: standard output Time limit: 3 se ...
- ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 D. Delay Time
Problem D. Delay Time Input file: standard input Output file: standard output Time limit: 1 second M ...
随机推荐
- 一次ajax调用,发送了两次请求(一次为请求方法为option,一次为正常请求)
在项目了开发时遇见一个奇怪的现象,就是我在js里面发送一次ajax请求,在浏览器network那边查询到的却是发送了两次请求,第一次的Request Method参数为OPTIONS,第二次的Requ ...
- Daily Scrumming* 2015.10.29(Day 10)
一.总体情况总结 二.今明两天任务表 Member Today’s Task Tomorrow’s Task 江昊 了解微信API,与社团服务平台创业公司嗨社团创始人沟通,了解其平台运营方案与商业模式 ...
- CS小分队第二阶段冲刺站立会议(6月3日)
昨日成果:完成了主界面按钮移动交换位置 遇到问题:最后的时候发现仅交换了按钮在数据库中的信息,对于按钮的链接忘记交换了 今日计划:解决这个问题,对这个冲刺阶段的成果进行整理
- 《Spring1之第三次站立会议》
<第三次站立会议> 昨天:我对自己找到的代码进行了相关的了解后,把它们在编译环境中进行了编译以及接着对代码进行逐步深入了解: 今天:我把小组成员找到的写关于登录界面的代码加到了我的项目工程 ...
- Linux系统(X32)安装Oracle11g完整安装图文教程另附基本操作
一.修改操作系统核心参数 在Root用户下执行以下步骤: )修改用户的SHELL的限制,修改/etc/security/limits.conf文件 输入命令:vi /etc/security/limi ...
- 进阶系列(5)—— C#XML使用
一.XML介绍 XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨 ...
- 结对项目-四则运算出题程序(GUI版)
目录: 一.致搭档(含项目地址) 二.PSP(planning) 三.结对编程中对接口的设计 四.计算模块接口的设计与实现过程 五.计算模块接口部分的性能改进 六.计算模块部分单元测试展示 七.计算模 ...
- fir.im的高级统计功能
fir.im的高级统计功能,可以根据渠道和活动名称,统计不同渠道和活动带来的下载量.操作步骤如下: 第一步:生成统计链接 点击高级统计,进入统计详情页,然后点击生成统计链接: 设置统计链接的应用版本. ...
- Delphi中BCD和Currency类型
用了这些年的Delphi,竟然对Currency及TBCDField一知半解,下文给了很好的讲解,值得一读. 一. BCD类型 BCD即Binary-Coded Decimal?,在Del ...
- Delphi判断字符串中是否包含汉字,并返回汉字位置
//1,函数代码{判断字符串是否包含汉字// judgeStr:要判断的字符串//posInt:第一个汉字位置}function TForm2.IsHaveChinese(judgeStr: stri ...