暑假集训8-11
集训过得真的很快,转眼间已经只剩一个星期了
然而最近就是状态不好,颓
上午考试透心凉,教练十分不满意现在的状况(感觉说的听像我的)
也是,要是这样下去到NOIP还用什么拿省一
今天开题先码了T1暴力+特判5分,然后看T2似乎是个树规
发现K==1的情况就是之前做过的小胖受皇宫的模型,于是弄了个dp
然后试图扩展到K<=20的情况,状态转移方程不太好写(其实像之前熟练剖分似的树规),又整耗了两个小时,没调出来
赶紧把T3的部分分拿了(一时慌张忽略了m==1的特殊情况),暴力dfs
最后T2仍然没出来,于是T1 65分 T2 45分 T3 12分 rk23
讲评的时候还有点懵T2竟然可以贪心(不过确实有dp过的,比我的简洁多了)
这回败在T2上了,不该死杠一题
T1
本来一个$N*M$的矩阵的子矩阵是$N^4$级别的,不过子矩阵之间明显有重叠
矩阵内的和能被K整除 $<=>$ 矩阵内的和$mod K == 0$(余数是0)
那么如果两个包含关系的矩阵的余数相等,那么他们之间的矩阵余数一定为0(前缀和可加)
要是枚举左右端点,再枚举两个行,仍然是$N^4$的
这时候用到桶了,可以统计余数一定的矩阵的数量,之后出现一个新矩阵(前缀和),直接查询桶中与此余数相同的矩阵的数量,降到$N^3$
T2
贪心:一个小分队要发挥最大效用,最好多覆盖一些点;对于叶子点,它被一个距离不超过K的父亲小队覆盖,为了不浪费这个小队,这个小队在能覆盖叶子的情况下应尽量再多覆盖一些点,于是把它放到离叶子恰好距离K处,不断给已覆盖的点染色,对剩下没染色的点重复以上操作最后得到最优解
关于dp:最后我的dp改到了65分,其实是错的dp(我只设定了 点被距离$j$远的父亲覆盖 的状态,忽略了兄弟之间的影响)