Processing math: 100%

2020.08.10【省选B组】模拟 总结

爆零,呵呵。
估分:\(30 + 30 + 0 + 0 = 60\)
考场:\(0 + 0 + 0 + 0 = 0\)
刚了一场比赛的\(T1\),最后\(T2\)这种一眼切的题没时间打了。

\(T1\)

刚开始想的是贪,然后打完+对拍,然后证伪。
后来想到树形\(DP\),没打完。
正解:
可以发现原图点相邻连边可以形成一颗树,考虑树形\(DP\)
我们设\(f[i][0/1/2]\)\(0\)表示当前点与父亲所在的链还未覆盖的答案,\(1\)表示当前点覆盖但不涉及到父亲的答案,\(2\)表示当前点覆盖并且涉及到父亲与当前点这一条链的答案。
然后转移即可。对于根节点要特判。

\(T2\)

我们发现可以直接加完边再操作,毕竟那些没有加的边不会先询问。
这样就是个裸的倍增了。。。
\(max,min\),向上跳时的答案,这个点的\(2^j\)的祖先向下跳的答案。
对于每次询问直接\(O(logn)\)求即可。

\(T3\)

这道题原来暴力可以\(DP\)转。
我们先得到最大的操作数(就是把\(S\)变成\(T\)后并做极限次三连)
我们可以设\(DP\)\(f[i][j][k]\)表示有\(i\)个还要\(1\)次才能成为\(T\),有\(j\)个要两次的有几个,\(k\)表示当前操作了\(k\)次。
然后转移方程式很简单,而答案就是\(∑f[0][0][i]\)
而这个\(DP\)显然可以矩乘,多设一格求和即可。

\(T4\)

一句话:难想的暴力。
暴枚每种积木放哪一层,然后暴枚每种积木上方的积木种类。
然后流网络流来判断是否合法(符合暴枚以及积木能放完)。
最后用一个\(DP\)来求出当前积木塔移走的方案数。
\(f[S]\)表示当前剩下积木种类的状态数,转移显然。

总结

以后再也不会死刚一题了。
简单的题先打先得分,这样才有保证啊。。。
有些题没有想象中那么简单的。。。

posted @   jz929  阅读(116)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理
历史上的今天:
2019-08-10 2019.08.10【NOIP提高组】模拟 A 组 总结
点击右上角即可分享
微信分享提示