这次..
考场刚了T1T2两题的正解
然后T2A了,T1被毒瘤卡常
让skyh得了rank1,QMQ
话说这次考试体(r)验(p)极(yong)佳(jin)
也许是昨晚没玩狼人杀睡的比较好?(现场%苗东旭)
T1 入阵曲
赞美RNB摆脱犯罪深渊(掌声走已)
正解是个桶,但是卡常了,n^3开longlong会当场被日成n^4
T2 将军令
菜狗又没想出贪心
大神们都说DP不可做?
考场上弄了个不知道对不对的dp
考试过程
不想看的跳过
仔细阅读了题面。凭君莫话封侯事,一将功成万骨枯。
等不及中二病发作,赶紧看题
看了眼k,貌似是个DP?(贪心:喂喂喂想想我啊)
打了个看起来不是很靠谱的树形dp,结果样例全过了..
冷静撕烤
好像少考虑一种情况...
出题人又出水样例...
差点被算计!
打个对拍吧..
少考虑的加上了..
拍了20000多组了..
emmmmm应该稳了..
(内心其实是:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈)
DP思路:
设$dp[i][j]$为满足 以$i$为节点的子树全部被看守,且离根节点$i$最近的驻扎点距离为$j$的 驻扎点最少数量。
鉴于一个点可以被儿子或祖先两个方向看守,将两点之间的距离上限$d$设为看守半径r的二倍(人话翻译:设$d=2*r$)
再考虑被兄弟看守的情况,设有一个兄弟子树的最近驻扎点到父亲节点的距离为$dis$
可以得知该驻扎点看守这棵子树的最大深度为$d-dis-1$ ,也就是这棵子树的第$d-dis$层必须要放一个点了
所以状态转移方程
$ dp[i][0]=sum limits_{k in son[i] } dp[k][d] $
$ dp[i][j]=min limits_{k in son[i]} ( dp[k][j-1] + sum limits_{u in otherson } dp[u][max(j-1,d-dis)] )$
由于在一棵子树中 最近驻扎点距离越远花费不会更高 所以上边两个柿子都是用可能的最大距离进行转移的
在根节点处需要特殊考虑,因为根节点没有父亲管着,如果最近驻扎点还是$ 2*r $那应该是不合题意的
所以$ ans=minlimits_{i<=r}(dp[root][i] )$而非$ ans=minlimits_{i<=d}(dp[root][i]) $
然后就很幸运地A掉了,如果有漏洞还请不烦指出
T3 星空
问题转化的思想可以说是很惊艳了
区间异或到异或差分,观察性质后又转化成图论,最后用状压求解
而我只是一个颓了题解匆匆水过的菜狗..