搜索
光球层上的黑子
是个菜狗
展开
-
CF gym102411E 多源BFS
题目链接https://codeforces.com/gym/102411/problem/E题意给出一棵树,树上一些点染色,问是否有点到所有染色点距离相等?思路多源->多源转化为单源->多源。我们可以看作是所有染色点连了个虚拟源点(代码里没有体现,但思路是这样的),把虚拟源点扔队列里bfs去。我们维护dep数组存放当前bfs深度,也就是到虚拟源点距离。cnt数组存放当前点’汇集’的染色点的数量vis数组存放是否在队里。我们在BFS过程中,一个点最多可以被找到n次,但因为是原创 2021-06-24 22:21:32 · 162 阅读 · 0 评论 -
洛谷P2962 位运算,meet in middle
题目链接https://www.luogu.com.cn/problem/P2962题意给出n点m边无向图,每一个节点都是开关,触发后会将它自己和所有直接相连节点状态改变(0->1,1->0)。初始全部状态为0,问最少几步全1。n<35思路首先易知任意一个节点最多摁下1次,因为摁下两次相当于没有操作最朴素的方法就是搜索,我们利用二进制数来模拟点开关状态,不用常规的存图方法,我们用数组g记录节点x触发后可以直接改变的点。从1-n枚举每个点开关状态,触发新的点后的状态转移可以用二进原创 2021-03-27 22:15:30 · 311 阅读 · 0 评论 -
Number of Simple Paths CodeForces - 1454E 图论,简单路径数
题目链接https://vjudge.net/problem/CodeForces-1454E题意n点n边,保证联通,求简单路径数(1-3-2和1-2-3算两条,1-2-3,和3-2-1算一条)思路n点n-1边即可联通,多加一边则必有且仅有一环。这时我们可以将图看作一个环加上各个环点为根延伸出了子树。所有简单路径可以统计任意两点间的路径数再加和。分析两点u和v的情况:u和v都在环上:则u-v路径有两条u或v在环上,另一点在该点环外子树上:路径仅一条u或v在环上,另一点在环外不是该点子原创 2020-11-27 13:53:11 · 284 阅读 · 0 评论 -
11.12PTA训练 人狼羊菜过河 搜索,位运算
题意人不在的时候狼吃羊,羊吃菜,用MWGC表示人狼羊草,箭头代表行进方向,输出所有由初始情况到最终情况的解决方案思路目前为止写得最头疼的搜索因为一岸的状态确定了,另一岸也就唯一确定了,所以可以用五位二进制数表示当前状态。之后利用位运算的操作就可以进行搜索,用vector存储进行到当前状态的二进制数,得到结果后输出即可。为了防止重复访问,要开vis数组记录某个状态是否到过代码#include<cstdio>#include<iostream>#include<io原创 2020-11-14 19:34:14 · 1506 阅读 · 0 评论 -
导弹防御系统 ACwing187 最长上升/下降子序列+贪心+DFS
题目链接https://www.acwing.com/problem/content/189/题意导弹只能打掉严格递增或者严格递减的一段序列,求覆盖n个目标需要多少导弹思路如果只看严格递增或者严格递减就是导弹拦截的贪心做法,因为有严格递增或者严格递减的限制,所以在外面套一个搜索的壳就行了,注意维护全局变量ans,以便剪枝代码#include<cstdio>#include<iostream>#include<iomanip>#include<ma原创 2020-11-04 11:38:23 · 197 阅读 · 0 评论