https://www.luogu.org/problemnew/show/P2048
题意:给你一个序列a,求前k大长度在(l,r)内的子串和;
反思:代码一定要写的工整~因为有一个id没赋值导致一直RE~;
ST处理每个起始点长度为(l,r)的中最大的位置idm;在每次优先队列取出再剔除这个段,方法是重新在id的(l,idm-1)和(idm+1,r)中处理sum最大的idm,再放进优先队列;
#include<algorithm>
#include<set>
#include<vector>
#include<queue>
#include<cmath>
#include<cstring>
#include<iostream>
#include<set>
#include<vector>
#include<queue>
#include<cmath>
#include<cstdio>
#include<map>
#include<stack>
#include<string>
#include<bits/stdc++.h>
using namespace std;
#define sfi(i) scanf("%d",&i)
#define pri(i) printf("%d\n",i)
#define sff(i) scanf("%lf",&i)
#define ll long long
#define ull unsigned long long
#define mem(x,y)