2017多校Round10(hdu6171~hdu6181)

Posted 人活着就是为了Chelly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017多校Round10(hdu6171~hdu6181)相关的知识,希望对你有一定的参考价值。

补题进度:5/11

1001(双向BFS)

题意:

  给你一个类似移子游戏,给你初始状态和终止状态,问初始状态到终止状态至少要移多少步,如果步数>20就-1

分析:

  很明显的BFS了,不过普通的BFS会有4^20个节点,会TLE

  这里因为移动方式可逆并且两个状态明确,所以可以双向BFS,在中间汇合就行

  只需要在某个方向的BFS扩展到12步左右的时候返回-1就行了

1002(BM算法模板)

题意:

  给你很复杂的很复杂的递推式,你需要求$\left \lfloor \sqrt a_n \right\rfloor$

分析:

  这个有根号还有取整肯定不能直接矩阵乘了

  猜测一下结果应该是线性递推,所以手算几个初值丢到杜教的BM板子里就行了

1003(待填坑)

1004(待填坑)

1005(待填坑)

1006(待填坑)

1007(待填坑)

1008(树的最大匹配)

题意:

  有一个n个点的树,你需要选择k个点每个点上放一只猴子,树上的n-1条边中你可以选择删掉一些保留一些,但是必须能让每个猴子所在点的连通分块内都有另一只猴子,问最少保留多少条边

分析:

  贪心着来,肯定是尽可能往树的最大匹配上丢猴子最优,这样的话2k个猴子只需要保留k条边

  最大匹配的点丢完了然后怎么办呢,容易发现这时候往任意一个点丢猴子都会使得结果+1,所以随便将剩余的猴子丢上去就行了

  于是只需要用dp跑出最大匹配这题就结束了

  时间复杂度O(n)

  顺便一提这题卡读入

1009(待填坑)

1010(贪心+堆)

1011(裸的次短路)

以上是关于2017多校Round10(hdu6171~hdu6181)的主要内容,如果未能解决你的问题,请参考以下文章

2017多校Round4(hdu6067~hdu6079)

2017多校Round3(hdu6056~hdu6066)

2017多校Round7(hdu6120~hdu6132)

双向bfs2017多校训练十 HDU 6171 Admiral

2019HDU多校 Round4

2017多校第10场 HDU 6172 Array Challenge 猜公式,矩阵幂