DFS
笑对这个世界的志贵
这个作者很懒,什么都没留下…
展开
-
【DFS】pta 5-12 功夫传人 (25分)
5-12 功夫传人 (25分) 一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的秘笈),会将功夫的威力一下子放大N倍 —— 我们称这种弟子为“得道者”。 这里我们来考察某一位祖师爷门下的徒子徒孙家谱:假设家谱中的每个人只有1翻译 2017-03-31 16:38:37 · 2305 阅读 · 0 评论 -
【dfs && 剪枝】PTA L3-015. 球队“食物链”(30分)
Step 1 Problem: 给你n个点 和 一个n*n的矩阵,第i行第j列为‘L’,代表j点可以到达i点;为‘W’,代表i点可以到达j点。输出字典序最小的哈密顿回路路径。Step 2 Involving algorithms: dfs搜索Step 3 Ideas: 如果有回路,那么无论从哪个点为起点搜索都能搜索到回路,既然我们要求字典序最小,所以从1点开始搜...翻译 2018-03-18 13:56:06 · 590 阅读 · 0 评论 -
【容斥定理 && dfs】UESTC 1544 当咸鱼也要按照基本法
Problem Description 给你n条咸鱼。有m个操作。 每个操作给你一个数,这个第这个数的倍数的咸鱼的咸鱼值异或上1。(初始咸鱼值都是0) 问你最终有多少条咸鱼的咸鱼值是1。思路: 容斥定理:有三个集合A,B,C要求三个集合的并 = A + B + C - AB - AC - BC + ABC 我们这里咸鱼的倍数看成一个集合。 我们要求的是翻译 2018-01-30 09:57:08 · 389 阅读 · 0 评论 -
【博弈 && dfs】URAL 2104 Game with a Strip
Problem Description Alice 和 Bob玩一个游戏,游戏规则如下 给你两个串,和串的长度。 可以选择其中一个串对折,形成新的两个串,然后到对方操作。 如果折后的两个串全都是A那么Alice赢,全是B是Bob赢,其他情况平局。 Alice先手 例如: 4 BBAA BABB 这时候 Alice选择BBAA的话 折后翻译 2018-01-29 09:16:30 · 223 阅读 · 0 评论 -
【dfs && 剪枝】SPOJ FISHER Fishmonger
Problem Description 给你n,k分别代表n个点,1点要到达n点不能超过k的时间。 给你n个点,1点是起点,n点是终点。给你两个n*n的矩阵,分别代表任意两点间移动需要的时间,任意两点间移动需要的花费。 让你求1点到达n点不能超过k的时间的前提下的最小花费。 输出最小花费和所用的时间。思路: 就是求1->n在时间不超过k的情况下的最小花费。翻译 2018-01-24 09:00:12 · 323 阅读 · 0 评论 -
【tarjan思想 && 离线处理】Codeforces Round #436 (Div. 2) F - Cities Excursions
Problem Description 给你n个城市m条单向的道路,q个访问。 问你u城市到v城市字典序最小的路径的第k个城市。 不存在路径的情况: u->v城市的过程中存在一个使字典序一直变小的环。 u根本无法到达v。思路: 一开始想到肯定是dfs,但是不知道如何跑,看了一些大佬的博客才知道如何处理。 我们预处理一下,所得dfs所走的下一个点,一定是字典序最翻译 2017-12-23 10:15:35 · 215 阅读 · 1 评论 -
【记忆化搜索】POJ - 1088 滑雪
Problem Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6翻译 2017-08-14 09:08:21 · 204 阅读 · 0 评论 -
【记忆化搜索】HDU - 1078 FatMouse and Cheese
Problem Description 给你两个数n, k。接下来给你一个n * n 的矩阵,矩阵上的值,代表奶酪数,到那个值,你就可以把那个值所有奶酪吃掉。下一步只能去更大的值(k代表你的下一步可以最大走k距离,也就是你下一步可以走1-k之间的任何一个距离)。思路: 用数组存已经走过的点,这样就可以避免重复走导致浪费大量的时间(记忆化搜索)。#include<bits/stdc++.h翻译 2017-08-14 09:00:20 · 257 阅读 · 0 评论 -
【欧拉路的判断 DFS判断连通】UVA - 10129 Play on Words
Problem Description 给你T组数据,每组数据给你一个n,接下来有n行,每行代表一个字符串,问你能不能把他们连接起来,这个串的尾字母,等于另外一个串的首字母,他们就能连起来。代码: 典型的判断欧拉回路的题目,核心:判断欧拉路要满足,该图是连通,而且度数为奇数的点,两个或者没有,为了防止重复的字符串,所以还要满足入度和出度差值的绝对值,不能大于1#include<bits/std翻译 2017-06-03 20:27:45 · 387 阅读 · 0 评论 -
【拓扑排序模板题DFS方法】UVA - 10305 Ordering Tasks
Problem Description 给你n个点,还有m个关系,让你输出拓扑排序后的结果代码:因为之前学习过拓扑排序,用之前的方法很轻松的A了,后面看到dfs解决的就去学习学习,还看了挺久的才看懂。。#include<bits/stdc++.h>using namespace std;int n, m, t;int Map[105][105], Pre[105], vis[105];翻译 2017-06-03 20:19:57 · 365 阅读 · 0 评论 -
【DFS】UVA - 1103 Ancient Messages
Problem Description 给你一个n行m列的矩阵,其中的字符代表的是十六进制,你需要将其转换成二进制,然后1代表黑点0代表白点,他们能够构成很多图像,这些图像只出现六种类型,具体的看题目,让你按字典序输出图像对应的字母代码:因为这六个图像的“洞”的个数都不一样,所以可以利用这个条件来区分图像,接下来就是需要你如何判断这个图像有几个洞。mmp数组代表转换后的图像。0代表白点,1代表翻译 2017-06-03 19:56:20 · 270 阅读 · 0 评论 -
【DFS】UVA - 572 Oil Deposits
Problem Description 给你一个n行m列的矩阵,让你判断里面有多少块油田,相邻算是连通**代码:可以DFS,也可以BFS这次代码用的是DFS也算是给自己熟练下DFS#include<bits/stdc++.h>using namespace std;struct node{ int u, v;};char Map[105][105];int vis[105]翻译 2017-06-03 19:46:37 · 248 阅读 · 0 评论 -
【DFS】HDU - 2181 哈密顿绕行世界问题
Problem Description 20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市代码: 很简单的DFS,第一次敲的时候,样例怎么都不对不知道为何,全删了在敲一遍就A了#include<cstdio>#include<cstring>using namespace std;int map[30][30], vis[30], Pre[30], cas;//地图,标记城翻译 2017-05-28 16:42:11 · 282 阅读 · 0 评论 -
【DFS】 2107 图的深度遍历
图的深度遍历 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。 Input 输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m翻译 2017-02-17 21:30:23 · 256 阅读 · 0 评论 -
【DFS】SDUT 2449 走迷宫 求走的方法次数
走迷宫 Time Limit: 1000MS Memory Limit: 65536KB Problem Description一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。 Input 第一行一个整数T 表示有T 组测试数据。(T <= 1翻译 2017-02-20 17:29:33 · 411 阅读 · 0 评论 -
【DP && 全排列 && 每一行选一个 1 保证其列不相等的方案数】UVALive 8521 LOL
Step1 Problem 给你 5 个由 01 组成的长度为 100 的字符串。 让你求选 5 个 1 且 1 不能再同一列的方案数Step2 Ideas: 学习博客 dp[i][j]:到了第 j 列,选了 i 个 1 且第 i 个 1 对应的列 大于 第 i-1 个 1 对应的列的方案数 结果等于 = 5 个字符串全排列后的 sum{ dp[5][100...翻译 2018-08-14 21:30:14 · 295 阅读 · 0 评论