首页 > 宵暗的妖怪
头像 Ldh1315109
发表于 2025-11-11 18:05:12
fmin = lambda x, y: x if x < y else y fmax = lambda x, y: x if x > y else y # @TIME def solve(testcase): n = II() A = LII() dp = [ 展开全文
头像 ddb酱
发表于 2025-11-14 17:46:07
void solve() { int n;cin >> n; vi a(n); for (int i = 0;i < n;i++) { cin >> a[i]; } vi dp(n + 1); dp[0] 展开全文
头像 周康禧
发表于 2025-12-11 17:23:18
#include <bits/stdc++.h> using namespace std; using ll = long long int; using ld = long double; using PII=pair<ll,ll>; using PIII=pair< 展开全文
头像 自由的风0450
发表于 2025-11-16 15:41:58
#include <iostream> #include<vector> #include<algorithm> using namespace std; int main() { int n; cin>>n; vector& 展开全文
头像 此在Dasein
发表于 2025-11-17 05:56:57
状态定义 设 dp[i] 为 只考虑第 i 个位置(即 a[1] 到 a[i]) 时,能够得到的最大饱食度。 由于区间长度为 3,若在第 i 个位置结束一个区间,则该区间必覆盖 i‑2、i‑1、i 三个位置,贡献的饱食度为 a[i‑1](区间的中点)。 状态转移 对第 i 个位置有两条决策: 展开全文
头像 大时代1105
发表于 2025-04-04 12:04:38
思路 线性dp 过程 代码 #include <iostream> using namespace std; typedef long long LL; const int N = 1e5 + 10; int n, a[N]; LL f[N]; int main() { 展开全文
头像 Drink0318
发表于 2025-12-22 10:44:32
def main(): import sys input = sys.stdin.read().split() n = int(input[0]) a = list(map(int, input[1:n+1])) # 边界情况:只有3段时,只能选这三 展开全文
头像 SDU_25_数学交叉_新耕孙
发表于 2025-12-18 22:40:31
#include<bits/stdc++.h> using namespace std; typedef long long ll; //状态转移方程为dp[i]=max(dp[i-1],dp[i-3]+a[i-1]); //其中dp[i]表示前i项中最大值 int main(){ 展开全文