传送门 这题的DP真是刷新了我的理解,竟然还要用队列优化.... #include<iostream> #include<cstdio> using namespace std; ; long long ans,n,k; ; long long a[maxn],f[maxn],q[maxn]; inline int read() { ,f=;char c=getchar(); ; +c-'; return x*f; } int main() { n=read(); k=read()…
dp dp[ i ] 表示第 i 个不选 , 前 i 个的选择合法的最小损失 , dp[ i ] = min( dp[ j ] ) ( max( 0 , i - 1 - k ) <= j <= i - 1 ) , 符合条件的 j 是一段连续的区间并且随着 i 的增大而增大 , 可以用单调队列维护 , ans = tot - min( dp[ k ] ) ( max( 0 , i - k ) <= k <= n ) ----------------------------------…