2018-2019 ACM-ICPC ECfinal I. Misunderstood … Missing

时间:2022-09-21 16:55:59

题目链接

首先有两个个属性值:\(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\),造成的最大伤害。转移的话就分三种情况:

\[dp(i,j,k)=max(dp(i+1,j-1,k-i)+a_i),dp(i+1,j,k)+max(j*c_i,b_i*(k-j*i)))
\]

细节见代码吧:

#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的更多相关文章

  1. 2015 ACM&sol;ICPC EC-Final

    A. Boxes and Balls 二分找到最大的不超过$n$的$\frac{x(x+1)}{2}$形式的数即可. #include <bits/stdc++.h> using name ...

  2. 2019 ACM&sol;ICPC 全国邀请赛(西安)J And And And (树DP&plus;贡献计算)

    Then n - 1n−1 lines follow. ii-th line contains two integers f_{a_i}(1 \le f_{a_i} < i)fai​​(1≤fa ...

  3. 2019 ACM&sol;ICPC Asia Regional shanxia D Miku and Generals &lpar;二分图黑白染色&plus;01背包&rpar;

    Miku is matchless in the world!” As everyone knows, Nakano Miku is interested in Japanese generals, ...

  4. 2019 ACM&sol;ICPC North America Qualifier G&period;Research Productivity Index&lpar;概率期望dp&rpar;

    https://open.kattis.com/problems/researchproductivityindex 这道题是考场上没写出来的一道题,今年看看感觉简单到不像话,当时自己对于dp没有什么 ...

  5. 2016 ACM&sol;ICPC亚洲区青岛站现场赛(部分题解)

    摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...

  6. 2014嘉杰信息杯ACM&sol;ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛

    比赛链接: http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/36 题目来源: 2014嘉杰信息杯ACM ...

  7. ACM&sol;ICPC 之 BFS&lpar;离线&rpar;&plus;康拓展开&lpar;TSH OJ-玩具&lpar;Toy&rpar;&rpar;

    祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...

  8. ACM ICPC 2015 Moscow Subregional Russia&comma; Moscow&comma; Dolgoprudny&comma; October&comma; 18&comma; 2015 G&period; Garden Gathering

    Problem G. Garden Gathering Input file: standard input Output file: standard output Time limit: 3 se ...

  9. ACM ICPC 2015 Moscow Subregional Russia&comma; Moscow&comma; Dolgoprudny&comma; October&comma; 18&comma; 2015 D&period; Delay Time

    Problem D. Delay Time Input file: standard input Output file: standard output Time limit: 1 second M ...

随机推荐

  1. 【代码笔记】iOS-首页3张图片变化

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  2. 六间房 繁星 酷我 来疯 秀吧 新浪秀 直播播放器 Live 1&period;2

    适合用于进行录制的时候 特别说明: 安装 falsh play 19 时 不能正常播放 每个按钮都有提示,不详细说明 下载地址 http://pan.baidu.com/s/1i32ETIt 下载地址 ...

  3. 【MySQL】TokuDB引擎初探(MySQL升级为Percona,MySQL升级为MariaDB)

    参考:http://blog.sina.com.cn/s/blog_4673e6030102v46l.html 参考:http://hcymysql.blog.51cto.com/5223301/14 ...

  4. python 用xlwt包把数据导出到excel表中

    def write_excel(): f = xlwt.Workbook() #创建工作簿 ''' 创建第一个sheet: sheet1 ''' sheet1 = f.add_sheet(u'shee ...

  5. 出现Exception in thread &quot&semi;main&quot&semi; java&period;lang&period;UnsupportedClassVersionError&colon; org&sol;broadinstitute&sol;gatk&sol;engine&sol;CommandLineGATK &colon; Unsupported major&period;minor version 52&period;0问题解决方案

    在做外显子分析Indel Realigner时,弹出以下错误: Exception in thread "main" java.lang.UnsupportedClassVersi ...

  6. Ubuntu系统搭建SVN服务器

    Ubuntu系统搭建SVN服务器 参考地址:http://git.devzeng.com/blog/aliyun-ubuntu-svn-server.html 安装软件 依次在终端中执行下面的命令安装 ...

  7. 删除gitlab 上的文件

  8. TFTP(Trivial File Transfer Protocol&comma;简单文件传输协议)

    网络特性 通常使用UDP 69端口(据说可改成TCP) 与FTP区别 轻量级,适用于传输小文件,当然功能也少些,比如没有列出目录功能,不进行认证

  9. 在触屏设备上面利用html5裁剪图片&lpar;转&rpar;

    前言 现在触屏设备越来越流行,而且大多数已经支持html5了.针对此,对触屏设备开发图片裁剪功能, 让其可以直接处理图片,减轻服务端压力. 技术点 浏览器必须支持html5,包括fileReader, ...

  10. Spring InitializingBean和ApplicationListener&lt&semi;ContextRefreshedEvent&gt&semi;

    事件机制作为一种编程机制,在许多语言中都提供了支持.JAVA语言也不例外,java中的事件机制的参与者有3种角色: 1.event object 2.event source 3.event list ...