
搜索
Martin20150405
博客搬家啦,http://martin20150405.github.io
(邮箱Martin20150405@163.com)
展开
-
[BFS] HDU 1429 胜利大逃亡(续)
思路:因为存在门和钥匙,所以一个点可能被多次访问,解决方法是在vis数组中保存当前持有的钥匙的状态,对于一个相同的点,一种持有钥匙的状态只能访问一次,很容易理解在没有更多钥匙的情况下,多次访问这个点得到的结果不会更优(因为只有10把钥匙,代码中用二进制储存,但用bool数组储存也是完全可以的。另外用不用优先队列对于这题的影响不大)#include #include #include #i原创 2016-02-02 14:53:38 · 518 阅读 · 0 评论 -
(HDU 5727)2016 Multi-University Training Contest 1 Necklace(搜索、图论)
题意给你2*n个珠子,n个yang,n个yin,每个编号为1-n(题目居然不明说这一点,真坑)有m种情况,当a号yang珠子和b号yin珠子在一起的时候会变暗,求变暗的最小数量。思路一开始我以为串出来的是一条线,然后愣了半天都没看懂。。 官方题解说可以根据代价剪枝,好吧并不会剪 T T 做法是枚举所有yin的摆放情况,然后把yang放进去(因为变暗的是yang),至于能不能放,可以用无权值的二分原创 2016-07-24 16:06:15 · 621 阅读 · 0 评论 -
[TCL]浙大PAT 1021. Deepest Root
题意给出nn个点n−1n-1条边,当只有一个联通块时,求有多少个顶点,当它作为根时形成的树最深思路网上很多的解法用并查集判断有几个联通块,然后以每个叶子节点进行DFS,这样的复杂度是O(n2)O(n^2)的 其实只要两遍DFS就好了,顺便把联通块个数也判掉用DFS判断联通块,这个应该很好理解第一次DFS求出最深的叶子节点第二次DFS从这些最深的叶子节点中选一个再进行DFS,再求出一批最深的叶原创 2016-12-01 09:18:00 · 703 阅读 · 0 评论 -
ZOJ 3949 Edge to the Root(树形DP)
题意给定一棵树,选一个节点和根相连,使得最后所有点到根的距离和最小,求最小距离和思路首先一个点和根连起来以后,影响的只有根到这个点这条路径上的点,以及他们的子树,并且对于每个点影响的权值都是能够确定的。 一个点减少多少距离,那么子树中的点也会减少多少距离。从路径的中点以下,因为连了根减少的权值为2-4-6…以此类推虽然树形DP怎么打都行,但是不知道为什么网上找到的代码都特别复杂,看了半天才看懂。然原创 2017-04-18 10:36:23 · 867 阅读 · 0 评论