随笔分类 -  The way——DFS

摘要:【传送门:BZOJ1486】 简要题意: 给出一张n个点m条边的连通图,求出这个图中,所有环中,环上的边权和/环上的点数的最小值 题解: 直接01分数规划二分答案,然后类似与SPFA的dfs判负环就行了 参考代码: 阅读全文
posted @ 2018-12-22 11:49 Star_Feel 阅读(221) 评论(0) 推荐(0) 编辑
摘要:2018-2019 ICPC, NEERC, Southern Subregional Contest 闲谈: 被操哥和男神带飞的一场ACM,第一把做了这么多题,荣幸成为7题队,虽然比赛的时候频频出锅,差点被鸽,但还算打完了5h 总的来说这场还是不算难的,7题还是少了点 A 题目: 给出a,b,求出 阅读全文
posted @ 2018-10-23 15:05 Star_Feel 阅读(365) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1102】 简要题意: 给出一张n*n的图,每个格子有一个高度,一个格子的八个方向为它的相邻格子,高度相同的相邻的格子形成连通块,一个连通块的相邻格子的高度如果都比连通块的高度大,则这个连通块称为山谷,如果都比连通块高度小,则称为山峰 特殊的,如果整张图的高度都相同,则整张图既为山 阅读全文
posted @ 2018-10-03 09:36 Star_Feel 阅读(354) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3391】 简要题意: 给出一棵n个点的树,求出所有满足这个点的与这个点相连的边被删除后,形成的多棵子树的节点数都不超过n的一半的点 如果没有,则输出NONE 题解: 直接DFS求出每个点的子树的节点数和每个点的所有儿子的子树中的最大节点数 一开始没看见是树的结构,想了半天,结果发 阅读全文
posted @ 2018-04-28 15:19 Star_Feel 阅读(204) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3144】 简要题意: 2n个不同n位二进制数(即0~2n-1,不足n位在前补零)的一个排列,这个排列满足相邻的两个二进制数的n位数字中最多只有一个数字不同,所谓超级格雷码就是指Bn个不同的n位B 进制数的排列满足上面的条件 任务:给出n和B,求一个满足条件的格雷码 对于大于9的数 阅读全文
posted @ 2018-04-23 21:19 Star_Feel 阅读(311) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3261】 简要题意: 给出一棵2n-1个点的完全二叉树,非叶子节点为城市,叶子节点为乡村,城市一条边是公路,一条边是铁路,城市i向城市j连边必须满足i>j, 然后乡村有3个参数a[i],b[i],c[i],要求每一个城市选一条通向该城市的路进行翻修(也就是翻修n-1条道路) 设乡 阅读全文
posted @ 2018-04-23 15:40 Star_Feel 阅读(170) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1509】 简要题意: 给你一棵有n个点树 找出三个点x,y,z 求从一个点x出发,先到另外两个点中距离x较近的点,再到剩下的那个点的时间 题解: 我们不妨先假设从x出发,先到y,再到z,这样子的话我们所花费的时间就是dis(x,y)+dis(y,z) 很显然我们肯定要让dis(y 阅读全文
posted @ 2018-04-19 09:57 Star_Feel 阅读(154) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3998】 简要题意: 对于一个给定长度为N的字符串,求它的第K小子串是什么 题解: 后缀自动机 首先对于T=0的时候,所有的能到达的不同状态,Right集合大小恒为1 T=1的时候,就累加 然后先判断子串数量是否超过K 如果没有,则直接DFS就好了 参考代码: 阅读全文
posted @ 2018-04-12 09:15 Star_Feel 阅读(163) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ3562】 简要题意: 给出n个点,m条初始无向边,有3种操作,q个操作: A x y连接x和y D x y删除x和y的边 Q 求出有多少个连通块 题解: 并查集+DFS 因为询问很少,但是边很多,所以我们先离线将不会被删除的边拿出来,然后将永远连在一起的点缩点 这样子这个图就会变 阅读全文
posted @ 2018-04-10 10:44 Star_Feel 阅读(318) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ4500】 简要题意: 有一个n*m的矩阵,初始每个格子的权值都为0,可以对矩阵执行两种操作: 1.选择一行,该行每个格子的权值加1或减1 2.选择一列,该列每个格子的权值加1或减1 有k个约束条件,x,y,c表示第x行第y列的格子为c 如果有满足情况的矩阵就输出Yes,否则输出N 阅读全文
posted @ 2018-03-22 16:52 Star_Feel 阅读(324) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1085】 简要题意: 有一个5*5的棋盘,棋盘上有12个白棋子,12个黑棋子,和一个空格,每只棋子只能按照马走日的规则移动,求出最少步数达到以下状态 题解: DFS+A* DFS很容易做,不过时间复杂度太高 所以用A*来优化时间 A*的好处预判当前递归到结束得到的值,从而判断是否 阅读全文
posted @ 2018-03-20 11:50 Star_Feel 阅读(168) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1042】 简要题意: 硬币购物一共有4种硬币。面值分别为c1,c2,c3,c4。某人去商店买东西,去了tot次。每次带di枚ci硬币,买si的价值的东西。请问每次有多少种付款方法 题解: 背包+容斥定理 f[i]表示不限制个数,放满值为i的方案数 因为硬币的值有重复,所以用到容斥 阅读全文
posted @ 2018-03-20 10:57 Star_Feel 阅读(173) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ2435】 简要题意: 给出n个点,n-1条边,显然是一棵树,每条边有权值,而建设每条边的代价是这条边的权值乘上这条边左边的点数减去右边的点数的绝对值 求出总代价 题解: 很水 我们默认点1为树的根,DFS将每个点遍历一遍,求出每个点的深度和子树点数 然后遍历一遍所有的边,ans+ 阅读全文
posted @ 2018-02-20 15:39 Star_Feel 阅读(115) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1306】 简要题意: 有n个队伍,每个队伍都要和其他队伍比一场,赢了的队得3分,输了的队不得分,打平两队各得一分,给出每个队伍的得分,求出对战方案数 题解: DFS暴搜!!一眼就觉得暴搜,但是时限尴尬,加了些剪枝,10s压线,真的幸运 剪枝: 1.如果当前队伍所搜索到的结果得分大 阅读全文
posted @ 2017-10-01 08:38 Star_Feel 阅读(262) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1086】 简要题意: 给出n个点,n-1条边,将这n个点分成若干个部分,每个部分都有一个中心,给出B,要求2B>=每个部分的点数>=B,是每个部分中的任意一个点到达中心所经过的点(除了最后一个点,即该部分的中心点)都必须属于该部分,求出是否能满足将n个点都分成若干个部分 题解: 阅读全文
posted @ 2017-09-28 19:18 Star_Feel 阅读(174) 评论(0) 推荐(0) 编辑
摘要:【传送门:BZOJ1082】 简要题意: 给出m块有长度的可切割木板,n块有长度的需要木板,求出最多能够切割出多少块需要木板 题解: 二分答案,然后用搜索来判断这个答案是否能够达到,比较简单 但是需要剪枝,其实就是减去一些不必要的搜索,先快排两种木板,如果最小需要的木板比可切割的一些木板还要大的话, 阅读全文
posted @ 2017-09-28 13:06 Star_Feel 阅读(189) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示