暑假集训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$远的父亲覆盖 的状态,忽略了兄弟之间的影响)

 

原文地址:https://www.cnblogs.com/Duan-Yue/p/11336907.html