摘要: 题目:http://codeforces.com/problemset/problem/1006/F 题意:从左上走到右下,每次只能向右或下走,问走到右下角时路径异或和为k的路径数 直接暴力dfs的话复杂度为240 所以我们用双向dfs 复杂度为2*220=221 用map记录路径异或和 从左上跑一 阅读全文
posted @ 2018-07-17 19:09 BK_201 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 题目:http://www.qscoj.cn/#/problem/show/1970 本题就是求一个图的欧拉通路或者欧拉回路 用圈套圈算法跑一遍就行了 但是dfs的时候会爆栈,所以需要改成非递归形式 阅读全文
posted @ 2018-07-17 12:15 BK_201 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=3375 题意:给你一个由/和\构成的图,求图中不是用作分割图形的/和\的数量 这个题最坑的是n,m是反的!!! 一种简单直接的方法是将/或\放大成3*3,然后直接染色,判断 但是还有更好的方法,将一个/或\分 阅读全文
posted @ 2018-07-17 09:58 BK_201 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=2121 题意:求一个有向图的不定根的最小树形图 构造一个虚根,将所有点都连向虚根,权值为所有边总和+1 然后用朱刘算法跑一遍 因为枚举的顺序是从小到大,所以得出的根一定是最小的字典序 阅读全文
posted @ 2018-07-16 16:29 BK_201 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目:http://www.qscoj.cn/#/problem/show/1963 将被隔开的当作新的行或者新的列 对行和列进行二分图匹配 阅读全文
posted @ 2018-07-15 21:24 BK_201 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题目:http://www.qscoj.cn/#/problem/show/1951 逆向思考,先全部种上再一个一个删除 先把最外围都标记成空地,再bfs将所有的空地标记 剩下的不是空地也不是树的就是答案 删除的时候只有3种情况 1.周围都是空地 直接变成空地 2.周围没有空地 答案+1 变成答案区 阅读全文
posted @ 2018-07-15 19:39 BK_201 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目:http://www.qscoj.cn/#/problem/show/1955 我们可以先用spfa跑出每2个点之间的距离 之后枚举b点和c点,再枚举从c点出发和到达b点的最大距离 对距离排序后先找到的答案更优,所以找到后就可以退出循环 阅读全文
posted @ 2018-07-15 15:14 BK_201 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目:http://www.qscoj.cn/#/problem/show/1962 建立一个源点s和汇点t 每个点预置1后流量最小值就变成了0 将a[i]连接到s,b[i]连接到t 再将每行的点连接到每列,流量为19 再跑一次dinic 阅读全文
posted @ 2018-07-15 10:55 BK_201 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题目:http://www.qscoj.cn/#/problem/show/1960 每两个点之间都有只有一条有向边的图是竞赛图。 定理: 竞赛图一定存在哈密顿路径 竞赛图存在哈密顿回路 充要条件是强连通。 构造方法一共3种 加到头 加到尾 插到中间 阅读全文
posted @ 2018-07-13 19:41 BK_201 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题目:http://www.qscoj.cn/#/problem/show/1959 要判断最小生成树是否唯一,我们只需要看每次加入最小生成树的边是否还有选择的余地 在Kruskal最小生成树的算法中,我们每次取最小权值加入,那么 cnt1表示在权值相同时可以加入最小生成树的边数 cnt2表示在权值 阅读全文
posted @ 2018-07-13 16:52 BK_201 阅读(184) 评论(0) 推荐(0) 编辑