6 条题解
-
40
首先,N 块空地必须得都种上草,不然就浪费了。
其次,造成伤害的只有红草,有持续效果的是蓝草和绿草,所以为了让伤害尽可能地高,肯定是蓝草和绿草放前面,后面是连续的红草。
但是蓝草和绿草的放置顺序就没有办法直接确定了,所以我们可以定义状态 f[i][j],表示前 i+j 块草地中,有 i 块蓝草和 j 块绿草的情况下,僵尸所失去的最大生命值(不包括后面的红草所带来的杀伤值)。
对于每一个状态 f[i][j],它只有可能从以下两种状态转化而来:
- 前 i+j−1块草坪中,有 i块蓝草和 j−1 块绿草,第 i+j 块草坪种绿草,此时僵尸经过第 i+j块草坪造成的伤害的损耗为 (i×B+T)×G×**(j−1**)
- 前 i+j−1 块草坪中,有 i−1块蓝草和 j 块绿草,第 i+j 块草坪种蓝草,此时僵尸经过第 i+j 块草坪造成的伤害的损耗为 ((i−1)×B**+T)×G×j**
所以
f[i][j]=max{f[i][j−1**]+(i×B+T)×G×(j−1),f[i−1**][j]+((i−1)×B**+T)×G×j**}
前 i+j块草地中有 i块种蓝草,j块种绿草的情况下,对于剩余 n−i−j块种红草的草坪来说:
- 经过每块红草的时间都为 i×B+T;
- 经过每块红草收到的伤害是红草的物理伤害加上累积的毒伤 R+j×G
所以经过后 n−i−j 块草坪的总伤害为
(n−i−j**)×(i×B+T)×(R+j×G)**
所以最终的答案为
max{f[i][j]+(n−i−j**)×(i×B+T)×(R+j×G)**}
AC代码
#include <bits/stdc++.h> using namespace std; const int maxn = 3030; int n; long long R, G, B, T, f[maxn][maxn], ans; int main() { cin >> n >> R >> G >> B >> T; for (int i = 0; i <= n; i ++) { for (int j = 0; i+j <= n; j ++) { if (j) f[i][j] = max(f[i][j], f[i][j-1] + (i*B+T)*G*(j-1)); if (i) f[i][j] = max(f[i][j], f[i-1][j] + ((i-1)*B+T)*G*j); ans = max(ans, f[i][j] + (n-i-j) * (i*B+T) * (R+j*G)); } } cout << ans << endl; return 0; }
-
6
#include <bits/stdc++.h> using namespace std; const int maxn = 3030; int n; long long R, G, B, T, f[maxn][maxn], ans; int main() { cin >> n >> R >> G >> B >> T; for (int i = 0; i <= n; i ++) { for (int j = 0; i+j <= n; j ++) { if (j) f[i][j] = max(f[i][j], f[i][j-1] + (i*B+T)*G*(j-1)); if (i) f[i][j] = max(f[i][j], f[i-1][j] + ((i-1)*B+T)*G*j); ans = max(ans, f[i][j] + (n-i-j) * (i*B+T) * (R+j*G)); } } cout << ans << endl; return 0; }
-
-40
写题解请注意
鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 1242
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 308
- 已通过
- 193
- 上传者