首页 > 小苯的最大和
头像 等一个offer的三文鱼很谦虚
发表于 2026-01-29 17:20:34
定义dp[i]为以i结尾数组的最大总和,则需要求dp[n-1]可以从边界开始推 当只有一个数时dp[0]=a[0]有两个数时 可以选择删2 或者不删 即dp[1]=max(0,a[0]+a[1])有三个数时 可以选择删3 对应0 ,删2:删a[1]和a[2] 剩下a[0](就是dp[0]),不删 就 展开全文
头像 周康禧
发表于 2025-12-10 23:35:04
#include <bits/stdc++.h> using namespace std; using ll = long long int; using ld = long double; using PII=pair<ll,ll>; using PIII=pair< 展开全文
头像 丘馗
发表于 2026-01-27 16:08:10
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int T;cin>>T; for(int i= 展开全文
头像 王同学8
发表于 2025-12-17 15:03:56
def test(n:int,a:list): if n==1: return a[0] dp = [0 for _ in range(n+1)] dp[1]=a[0] for i in range(2,n+1): dp[i]=max( 展开全文
头像 蟑螂是只爬虫
发表于 2025-12-07 16:26:23
定义: dp[i]为以下标i为结尾的最大子序列和 状态转移方程: 解释: 如果不删除,dp[i]可以由dp[i-1]转移过来; 如果删除,由裴蜀定理  ,一定可以从dp[i-3]及其之前的任意位置转移过来,我们使用一个变量在遍历过程中记录dp[i-3]的前缀最大值即可; 当然也可以从当前节 展开全文
头像 哈基图
发表于 2026-02-01 16:55:30
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main(){ ll T; cin>>T; while(T--){ ll n; 展开全文

等你来战

查看全部