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]\)表示当前剩下积木种类的状态数,转移显然。
总结
以后再也不会死刚一题了。
简单的题先打先得分,这样才有保证啊。。。
有些题没有想象中那么简单的。。。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.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 组 总结