首页 > 小红的双排列删除得分
头像 Xuan2333
发表于 2025-12-13 10:05:44
前面的大佬竟然一句话都没有说,直接发代码了,对蒟蒻(包括我)有点不友好,所以我来发一个带讲解的版本awa代码里说的很明白啦,再有不会的可以评论区问(喜欢的话请点个赞支持一下吧[瞅你][瞅你][瞅你]) #include <bits/stdc++.h> using namespace st 展开全文
头像 周康禧
发表于 2025-12-11 16:15:14
#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-15 10:52:33
#include <iostream> #include<vector> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; 展开全文
头像 小狐今天睡大觉
发表于 2025-12-28 12:21:13
使用前缀和+线性dp解决该问题。pre[i]前缀和数组 pre[i] = a[1]+...+a[i]dp[i] 前i个元素的最大得分pos[x]位置数组 记录数字x最后一次出现的位置对于每一个位置:如果a[i]是第一次出现(pos[a[i]]==0),将a[i]位置记录下来,当前的最大得分不变 dp 展开全文
头像 Drink0318
发表于 2025-12-23 12:39:10
import sys n=int(input()) a=[0]+list(map(int,input().split())) M=0#记录最大和 start=[0]*(n+1)#存储元素a[i]的下标 S=[0]*(2*n+1)#前i个元素之和 dp=[0]*(2*n+1)#记录到i为止最高分 fo 展开全文
头像 Drink0318
发表于 2025-12-23 12:43:40
import sys n=int(input()) a=[0]+list(map(int,input().split())) M=0#记录最大和 start=[0]*(n+1)#存储元素a[i]的下标 S=[0]*(2*n+1)#前i个元素之和 dp=[0]*(2*n+1)#记录到i为止最高分 fo 展开全文
头像 glerium
发表于 2025-12-03 21:29:21
#include <iostream> #include <vector> #define rep(i,x,y) for(int i=x;i<=y;i++) using namespace std; using ll = long long; int main() { 展开全文