终于补出这道:一直耽搁到现在
找到一个代码可读性很好的分块temp;
题意:给一个长度为n 的数组 A,Q次询问,区间相等数的最大范围是多少?
数据范围都是10e5;
当然知道分块了;
传统分块看各种累;
找了一份很好的tmp<新技能get;
1 #include2 3 using namespace std; 4 const int N =100005; 5 const int S =405; 6 7 int a[N],res[S][N],occ[N]; 8 int ans[N]; 9 //一种很神奇的分块写法10 //想办法 在其他题目扩展11 12 struct query13 {14 int L,R,id;15 bool operator <(const query& a)const16 {17 return R sqrt(n)个块,每块的宽度这里并不一定相同29 { //这里是从i*s-->n 都计算出区间的最大值30 for (int j=1;j<=m;j++) occ[j]=-1;31 int now=0;32 for (int j=i*s;j