![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DFS
ssl_yty
这个作者很懒,什么都没留下…
展开
-
【2017 特长生】【DFS】益智游戏
先全排列再枚举符号就是一个区间劈开成两个操作再合并原创 2022-06-11 21:59:22 · 258 阅读 · 0 评论 -
【洛谷 P7528】 【并查集】 【DFS】 Portals G
【洛谷 P7528】 【并查集】 【DFS】 Portals G题目解题思路题目出得很迷惑,掩人耳目啊题目大意有2n个点每次给出5个数,c,p1,p2,p3,p4,p1与p2连边,p3与p4连边,c是换边的花费 例如p1本来和p2连,现在想p1与p3连,p2与p4连,那么花费是c求要使这2n个点互相连通,最小的花费看到题目里加粗的那行字,每个点只会出现两次,那么只会有2条边和它相连一个点能到达的点一定是一个环现在就是要花费ci使各个环相通花费按从小到大排序因为p1与p2是一个环原创 2021-08-22 20:15:04 · 76 阅读 · 0 评论 -
【洛谷 P7411】 【DFS】Comfortable Cows S
【洛谷 P7411】 【DFS】Comfortable Cows S题目解题思路每一次新增一个点,如果已经填过,说明是前面为了让奶牛不舒适填的,所以ans–然后DFS扩展下去,一个点能影响旁边4个点,然后判断是否有点满足舒适,就再填一个点,直到没有舒适的奶牛代码#include<iostream>#include<cstdio>using namespace std;const int inf=1000;struct lzf{ int a[5];}cn原创 2021-08-20 11:09:08 · 135 阅读 · 0 评论 -
【gmoj】 【暴力】 【dfs】 Crisis
【gmoj】 【暴力】 【dfs】 Crisis题目解题思路求出这个领导者至少要m个直系下属递申请dfs出它的直系下属想要递申请需要多少个工人按需要的工人数排序累加前m小即为这个领导者想要递申请需要多少个工人解题思路#include<iostream>#include<cstdio>using namespace std;struct lzf{ int to,next;}f[100010];int n,k,x,t,tot,sum[100010],h原创 2021-08-13 18:52:58 · 64 阅读 · 0 评论 -
[洛谷 P2018] [记搜] 消息传递
[洛谷 P2018] [记搜] 消息传递题目解题思路暴力思想就是,枚举所有点为根求出向下传递所需的时间f[i]=max(f[j]+j)对所有子节点贡献的值排序emmm…时间复杂度过于优秀可以很容易得出如果是从同一个父节点走到当前点那么它对结果的贡献值是一样的可以用记忆化搜索代码#include<iostream>#include<cstdio>#include<queue>using namespace std;struct lz原创 2021-07-13 16:38:40 · 102 阅读 · 0 评论 -
【洛谷 P1784】 【深搜】 数独
【洛谷 P1784】 【深搜】 数独题目解题思路深搜限制条件即当前行当前列当前宫都没有此数字此题是这题的弱化版代码#include<iostream>#include<cstdio>using namespace std;char c;int p,a[10][10],h[10][10],l[10][10],g[5][5][10];void dfs(int x,int y){ if (p) return; if (x>9) { p原创 2021-04-17 11:28:58 · 158 阅读 · 0 评论 -
【ybtoj 高效进阶 1.4】【深搜】 虫食算
【ybtoj 高效进阶 1.4】【深搜】 虫食算题目解题思路记录下字母的出现顺序(从右往左)枚举每个字母可能的数字a是加数一,b是加数二,c是和当这三个数已经填数时如果(a+b+w)%n!=c说明不可行如果最高位还有进位也不可行当右边还有数没填如果(a+b)%n!=c且(a+b+1)%n!=c,说明不可行如果最高位有进位不可行代码#include<iostream>#include<cstring>#include<cstdio>u原创 2021-01-03 10:06:39 · 131 阅读 · 0 评论 -
【ybtoj 高效进阶 1.4】【深搜】数独游戏
【ybtoj 高效进阶 1.4】【深搜】数独游戏题目解题思路用字符串输入将其转换成数值放入数组a数组l统计当前行数字的使用情况数组r统计当前列数字的使用情况数组f统计当前3*3方格数字的使用情况枚举当前格可以填的数字代码#include<iostream>#include<cstring>#include<cstdio>using namespace std;int a[10][10],l[10][10],r[10][10],f[5][5原创 2021-01-03 08:04:36 · 176 阅读 · 0 评论 -
【ybtoj 高效进阶 1.4】【深搜】拔河比赛
【ybtoj 高效进阶 1.4】【深搜】拔河比赛题目解题思路深搜模板题拿或不拿两种情况求出所有可能性取最小代码#include<iostream>#include<cstdio>#include<cmath>using namespace std;int t,n,m,mi,ans,a[30];void dfs(int x,int y,int sum){ if (y==m) { mi=min(abs(ans-sum-su原创 2021-01-02 19:37:55 · 122 阅读 · 0 评论 -
【10.26 校内普及组】 棋盘行走 题解
【10.26 校内普及组】 棋盘行走 题解题目样例input3 4AAAAABCAAAAAoutputYesexplain样例中的‘A’形成一个环解题思路原创 2020-10-26 16:35:16 · 167 阅读 · 0 评论 -
【10.14 校内测】小x的液体混合 题解
【10.14 校内测】小x的液体混合 题解题目虽然小 XXX 不喜欢化学原理,但他特别喜欢把一大堆液体倒在一起。现在小 XXX 有 nnn 种液体,其中 mmm 对会发生反应。现在他想把这 nnn 种液体按某种顺序倒入一个容器内,让他获得最刺激的体验,也就是使危险系数尽量大。我们可以这样计算危险系数,一开始容器内没有任何液体,危险系数为 1。每次液体倒入容器时,若容器内已有一种或多种液体会与这种液体发生反应,则危险系数会乘 2,否则危险系数不变。最大危险系数小 XXX 不会算,希望你帮帮他原创 2020-10-18 15:52:52 · 162 阅读 · 1 评论 -
debug 题解
debug 题解debug题目经过了一整夜的激战,rcrcrc的部队终于攻下了虫族的首都BugzillaBugzillaBugzilla。现在,rcrcrc决定亲自带领一队突击队员在虫族庞大的地道中寻找他的宿命之敌—BugBugBug。 BugzillaBugzillaBugzilla由N个基地组成。这NNN个基地被NNN-1段双向地道连接在一起,每段地道都连接两个基地,并且保证任意两个基地之间都可以通过地道互相到达。BugBugBug就藏在其中的某段地道中。 开始时rcrcrc可以乘坐运输机原创 2020-08-15 14:55:01 · 177 阅读 · 0 评论 -
骑马修栅栏 题解
骑马修栅栏题目农民JohnJohnJohn每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。JohnJohnJohn是一个与其他农民一样懒的人。他讨厌骑马,因此从来不两次经过一个一个栅栏。你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次。JohnJohnJohn能从任何一个顶点 ( 即两个栅栏的交点 ) 开始骑马,在任意一个顶点结束...原创 2019-12-20 22:02:06 · 1271 阅读 · 1 评论 -
游乐场 题解
游乐场题目据新闻报道,Orz教主在太平洋中央建了一个大游乐园,其中有许多小岛,每个小岛上有且仅有一个游乐设施,有的小岛与小岛之间有海底隧道连接,而有的没有,一个游乐设施对一个人只开放一次,花的钱与得到的快乐值成正比。一开始,你可以选择被空投到任意一个小岛。当你想离开游乐园时,你可以打电话叫飞机来接,但不能再次被空投。fhn非常有钱,他想在游乐园里得到最大的快乐值。而czm则比较穷,他的愿望...原创 2019-12-19 17:19:33 · 814 阅读 · 0 评论 -
货员的难题 题解
货员的难题题目某乡有 n 个村庄( 1 < n <40 ),有一个售货员,他要到各个村庄去售货,各村庄之间的路程 s ( 0<s<1000 ) 是已知的,且 A 村与 B 村与 B 村与 A 村的路大多不同,为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为 1 ,他不知道选择什么样的路才能使所走的路程最短,请你帮助他选择一条路径。输入村庄...原创 2019-12-19 16:19:55 · 585 阅读 · 0 评论 -
洛谷 P1434 滑雪 (记忆化 & 动规) 题解
滑雪题目Michael喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:123451617181961524252071423222...原创 2019-12-14 14:32:34 · 241 阅读 · 0 评论