这也算是第K大问题的套路题了(虽然我一开始还想了个假算法),大体想法就是先弄出最优的一批解,然后每次从中提出一个最优解并转移到一个次优解,用优先队列维护这个过程即可. 类似的问题很多,放在序列上的,放在图上的,改天可以考虑补个专题. #include <bits/stdc++.h> using namespace std; #define int long long const int N = 1000005; int a[N],s[N],st[N][20],stp[N][20],n,k,L,…