看了这道题的其他题解,本蒟蒻发现大部分都是将其分成两道题二分加主席树做的,本蒟蒻便来分享一波自己的蒟蒻做法–用主席树维护二维矩阵的信息。
这道题全程用主席树,不过要分情况讨论,对于r=1的情况,直接上裸的主席树,对于r=200,c=200的情况我们用主席树来维护矩阵(0,0)到(x,y)的信息,它由(x-1,y)到(0,0)的信息加上(x,0)到(x,y)的信息得到。代码如下
1 | for(register int i=1;i<=r;i++) |
而对于查询,则像二维前缀和一样;
1 | inline int ask(int l,int r,int a,int b,int c,int d,int v) |
然而!这样写是过不了这道题的;