bfs
lleozhang
这个作者很懒,什么都没留下…
展开
-
CF1029E
一个看起来就不对的贪心居然是正解... 但仔细思考一下,这种贪心倒的确找不到反例.. 贪心思想:每次找出离根节点最远的点,然后由根节点向这个点的父节点连边,一直连到所有点都能被覆盖即可,这样构造出的一定是一个可行的最优解 正确性证明(个人YY): 主要是要证明这种做法的最优性: 首先,由于所有点都要求被覆盖,自然离根节点最远的点也不例外 那么,如果想覆盖上离根节点最远的点,只会有两种覆...原创 2018-10-22 20:24:15 · 162 阅读 · 0 评论 -
CF919F
题意: Alice和Bob玩游戏,每人各有8张牌,牌的大小在0~4之间 每次操作,先手可以选择自己一张牌和对方一张牌求和后%5,将新的牌替代自己拿出的那张牌,以此类推,直到有一个人手中的牌全部是0,则这个人获胜 但选牌时不能选择已经为0的牌进行操作 现给定初始状态下两人的手牌以及先后手,求是否存在有人必胜 分析: 很显然是个博弈问题,对这种问题搜索是非常好用的。 我们只需考虑一下设计...原创 2018-10-25 12:01:56 · 298 阅读 · 0 评论 -
CF1005F
这题不错... 首先,不难看到他想让你求出的是最短路树 然后,考虑到所有边权均为1,所以可以采用bfs直接生成最短路树 至于方案的储存,可以在加边的时候同时记录边的编号,然后对每个点维护一个能转移他的最短路的边的编号的集合,这样总的方案数就是所有的集合大小的乘积 然后用dfs在每个集合中选一个元素输出即可 #include <cstdio> #include <cma...原创 2018-10-23 20:50:43 · 222 阅读 · 0 评论 -
CF1065D
如果不喜欢过长代码的看官,请移步其他题解... 这题其实思想极其简单: 棋盘问题常见的算法都比较暴力,常用的有搜索和状压dp 而这道题显然没啥能状压的,所以我们考虑搜索 但是仅仅搜索是不够的,因为有极大的可能搜到死... 所以我们引入记忆化 设状态f[i][j][k][0/1/2]代表目前在点(i,j)处,上一个到达的点(注意是达成要求而非经过)的编号为k,目前的棋子种类为1/2/3时...原创 2018-10-30 16:35:05 · 174 阅读 · 0 评论