随笔分类 -  图论

摘要:"题目链接" 满分做法: 在做搜索 最短路路径时 可以从终点搜到起点,记录该位置到终点的最短路,再次搜索时从起点搜索并判断即可。 本题还要比较颜色的字典序,于是我们把当前深度的点都拿出来,进行向外扩展,找到既在最短路径上,又经过颜色字典序最小的点,加入到队列中,并把当前颜色最小值加入到答案序列即可。 阅读全文
posted @ 2019-10-31 16:28 lihan123 阅读(277) 评论(0) 推荐(0)
摘要:满分做法: 由题,树是不需要染色的,所以我们要让所有的连通块变成树。所有联通块的总点数 是 n,所以如果设联通块数为 C,则最后剩下的边个数就是 n − C,因此答案就是 m − n + C。 阅读全文
posted @ 2019-10-22 21:34 lihan123 阅读(212) 评论(0) 推荐(0)
摘要:满分做法: 在第一棵树中确定编号的dfs序,遍历第二棵树时,用树状数组维护在第一棵树相对位置,查询某点的贡献时,统计有多少比他高的就行了。注意要在子树后消除影响。 阅读全文
posted @ 2019-10-22 21:09 lihan123 阅读(211) 评论(0) 推荐(0)
摘要:满分做法: 手画样例,发现输出的都是以k为根的叶子节点。于是我们按照以下步骤去操作即可: 1.先按以k为根,进行dfs处理。 2.按照节点深度及编号对节点排序,深度越大排序越靠前,深度相同时,编号小的排在前面。 3.依次处理每个节点 ,每次向上蹦,如果碰到以走过的节点或根节点就停止,记录走过的步数。 阅读全文
posted @ 2019-10-21 21:56 lihan123 阅读(430) 评论(0) 推荐(0)
摘要:满分做法: 对于一条链的情况,我们可以隔一个走一个,最后再走回来,如下: 那对于树来说,我们可以直接扩展:如 果当前节点深度是奇数,那么我们在 DFS 前输出这个点,否则在 DFS 完所有孩子之 后再输出这个点。自己手画一下,感觉很对!!! 阅读全文
posted @ 2019-10-21 17:28 lihan123 阅读(183) 评论(0) 推荐(0)
摘要:满分做法: 本题直接搜索即可,因为要记录最优值,直接spfa就好了。 阅读全文
posted @ 2019-10-20 20:01 lihan123 阅读(134) 评论(0) 推荐(0)
摘要:满分做法: 因为每个数都小于$10^{18}$,因此每个数最多有$64$位,因此如果有超过$128$个非零数字,那么必定有一位在$3$个及以上个数的二进制表示下为$1$,所以最小环大小为$3$。 当n include include include include include using nam 阅读全文
posted @ 2019-10-17 20:50 lihan123 阅读(183) 评论(0) 推荐(0)
摘要:满分做法: 把人向床连边进行二分图匹配即可。 cpp include include include include include include using namespace std; typedef long long ll; const int maxm=5555; int t,n,ans 阅读全文
posted @ 2019-10-17 20:45 lihan123 阅读(93) 评论(0) 推荐(0)
摘要:60分做法: 暴力跑dijkstra即可 阅读全文
posted @ 2019-10-17 15:33 lihan123 阅读(162) 评论(0) 推荐(0)
摘要:感觉这个题没什么好说的。 对于树的情况直接从1开始搜(保证字典序最小),从大到小排序它的子节点,再接着搜。 对于基环树,直接$n^2$暴力删边即可,用$vector$存边,排序预处理,枚举边,给边两侧的点打上标记,在搜到他们俩时直接continue就行,剩下的和树一样 cpp include inc 阅读全文
posted @ 2019-10-12 16:40 lihan123 阅读(116) 评论(0) 推荐(0)
摘要:逛公园 题意:在一张有向图中,求出1到n有多少条路径长度不超过最短路+K。 30分做法:K=0时,就是最短路计数,详见P1144 "最短路计数" cpp include include include include include include include using namespace s 阅读全文
posted @ 2019-10-11 20:38 lihan123 阅读(271) 评论(0) 推荐(0)
摘要:肝了一个下午,终于把这个绝世好题写完了(滑稽) 满分做法: 看到题目求最短时间,说明更高的时间也可以控制,满足答案单调性,可以二分;(技巧) 看到这些比较复杂的题目,一定要滤清自己该干什么,不要慌!!! 显然一个军队最后停留的节点深度越小,它控制的叶子结点越多。所以我们尽量让军队往上走,如果过程中它 阅读全文
posted @ 2019-10-11 19:16 lihan123 阅读(202) 评论(0) 推荐(0)