Leetcode 3259. 超级饮料的最大强化能量

动态规划。

f[i][0/1]表示前i个且最后选A或B的方案的集合。

所以f[i][0]=max(f[i-1][0],f[i-2][1])+A[i]。f[i][1]同理。

复制代码
 1 typedef long long LL;
 2 const int N = 1e5+10;
 3 LL f[N][2];
 4 class Solution {
 5 public:
 6     LL maxEnergyBoost(vector<int>& A, vector<int>& B) {
 7         memset(f,0,sizeof f);
 8         int n=A.size();
 9         for(int i=0;i<A.size();i++){
10             int j=i+1;
11             f[j][0]=f[j-1][0]+A[i];
12             if(j>=2)
13                 f[j][0]=max(f[j][0],f[j-2][1]+A[i]);
14 
15             f[j][1]=f[j-1][1]+B[i];
16             if(j>=2)
17                 f[j][1]=max(f[j][1],f[j-2][0]+B[i]);
18             
19         }
20         return max(f[n][0],f[n][1]);
21     }
22 };
复制代码

 

posted on   greenofyu  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示