如果你的分块一直TLE #5 和 #6……

P2801 教主的魔法

Itst @ 2018-08-03 22:33:00

检查下分最后一块时的操作QAQ

Correct:

if(R[N / T] < N){//T为块数,N为数列个数,下同
        L[N / T + 1] = R[N / T] + 1;
        R[N / T + 1] = N;
        for(int i = L[N / T + 1] ; i <= N ; i++)    in[i] = N / T + 1;
    }

Wrong:

if(R[N / T] < N){
        L[N / T + 1] = R[N / T + 1] + 1;
        R[N / T + 1] = N;
        for(int i = L[N / T + 1] ; i <= N ; i++)    in[i] = N / T + 1;
    }

表示一直用下面那种(因为一块覆盖所有,所以等效于暴力)交了一版TLE才发现错误qwq

然后去做袜子结果莫队分块又写了下面那种真是不得了


by Itst @ 2018-08-03 22:33:57

为什么我要发这个智障贴因为我太蒻了qwq


by chdy @ 2019-06-24 11:59:05

@Itst 我 发现 我sb了3h 突然发现 就是上述错误 谢谢!


|