
dfs
图南1204
这个作者很懒,什么都没留下…
展开
-
hdu 4277 USACO ORZ
题意:像所有人一样,牛喜欢多样化。他们当前喜爱的是牧场的新形状。曾经的矩形已不是他们所喜爱的了。新的几何形式是他们最爱的。I.M.Hei,牧场的设计师,管理创造用美丽的白色栅栏栏杆制作而成的三角形牧场。给她N个栏杆安排把它们摆放成一个三角形牧场。Ms.Hei必须用所有的栏杆去组成三个非零的边长。计算她可以组成的不同三角形的个数,她必须把三角形组成一个封闭的图形。 两个看起来不同的牧场至少有一条...原创 2018-09-02 02:17:51 · 243 阅读 · 0 评论 -
递归+素数判断
题目描述 【题意】 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。 从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。 例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34。 现在,要求你计算出和为素数共有多少种。 例如...原创 2018-08-30 06:45:10 · 1256 阅读 · 0 评论 -
全排列问题二
题目描述: 【题意】 组合就是从n个元素中抽出r个元素(不分顺序且r < = n), 我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。 【输入格式】 一行两个自然数n、r ( 1 < n < 21,1 < = r < = n )。 【输出格式】 所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,所有的组合也...原创 2018-08-30 06:29:10 · 360 阅读 · 0 评论 -
天梯赛练习集 L2-020 功夫传人
problem link:嗨,题目在这里代码很好懂,想却不好想。这大概就是dfs,bfs的强者特点。喏,下面是代码,很好理解哒。#include&lt;bits/stdc++.h&gt;using namespace std;const int N=1e5+6;int n,a[N];double z,r;vector&lt;int&gt;v[N];double dfs(int...原创 2018-08-27 21:54:21 · 268 阅读 · 0 评论 -
小白菜oj 1031 全排列
problem link:http://caioj.cn/problem.php?id=1031AC code:#include&lt;iostream&gt;using namespace std;const int N=1e2+6;int a[N],v[N],n;void dfs(int k){ if(k==n+1)for(int i=1;i&lt;=n;i++)...原创 2018-08-27 20:55:09 · 501 阅读 · 0 评论 -
迷宫的最短路径
description: 给定一个大小为N*M的迷宫。迷宫由通道和墙壁组成,每一步可以向邻接的上下左右四格的通道移动。请求出从起点到终点所需的最小步数。请注意,本题假定从起点一定可以移动到终点。样例输入输出: 输入: 输出: 22AC code:#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;qu...原创 2018-08-03 11:39:19 · 511 阅读 · 0 评论 -
康拓展开以及康拓展开的逆运算源代码
description: 问题 A: [文档]康托展开和康托展开的逆运算 题目描述 【题意】 给出正整数n(1&lt;=n&lt;=15) 任务一:给出n个数(1~n)的全排列,求按字典序从小到大是第几个排列; 任务二:给出一个正整数k,输出字典序从小到大的第k个排列。【输入格式】 第一行给出一个正整数n。 第二行给出n个数,表示(1~n)的排列。两两之间用空格隔开。 第...原创 2018-08-03 11:30:56 · 353 阅读 · 0 评论 -
P1162 填充颜色
题目链接:https://www.luogu.org/problemnew/show/P1162AC code:#include&lt;iostream&gt;using namespace std;int a[37][37],n;void dfs(int x,int y){ if(x&gt;=0&amp;&amp;x&lt;=n+1&amp;&amp;原创 2018-08-03 11:27:31 · 188 阅读 · 0 评论 -
部分和问题 dfs
(1)深度优先搜索是穷竭搜索里面最典型的搜索,下面是一个类型题目。 (2)题意:给你一个大小为n的数组,再给你一个数值k,然后是n个整数,判断是否可以从数组中找到和为k的一组数据。可以的话输出“Yes”(不带引号),否则输出“No”。 (3)测试数据: 4 1 2 4 7 13 (4)代码:#include<iostream>using namespace std;const原创 2017-12-08 21:26:59 · 272 阅读 · 0 评论 -
最基础的“穷竭搜索”(3,队列)
(1)队列的基本操作代码 (2)代码:#include<iostream>#include<queue>using namespace std;int main(){ ios::sync_with_stdio(false);cin.tie(0); queue<int>que; que.push(1); que.push(2); que.push(3);原创 2017-12-08 18:50:03 · 200 阅读 · 0 评论 -
最基础的“穷竭搜索”(2,栈)
(1)递归函数的递归过程就可以用栈来解决。下面是栈的基础操作代码 (2)代码:#include<iostream>#include<stack>using namespace std;int main(){ ios::sync_with_stdio(false);cin.tie(0); stack<int> s; s.push(1); s.push(2);原创 2017-12-08 18:21:16 · 225 阅读 · 0 评论 -
最基础的“穷竭搜索”(递归)
(1)斐波那契数列用记忆化搜索方式求解。 (2)代码:#include<iostream>using namespace std;const int MAX_N=1e3+6;int n,memo[MAX_N];int fib(int n){ if(n<=1)return n; if(memo[n]!=0)return memo[n]; return memo[n]=原创 2017-12-08 13:05:45 · 295 阅读 · 0 评论 -
poj 3009 冰球
(1)类型:深搜。 (2)题意:给你一个w*h的冰球场,0代表障碍,1代表有障碍,2代表起始位置,3代表终止位置。当球员从初始位置出发选择无障碍(0)的方向移动,一直到遇到障碍(1)停止,此时障碍(1)变为无障碍(0)。问球员从初始位置一直到终止位置最少移动(注意是移动的次数不是移动的方格数)的次数。 (3)解题思路:记录每一次到达一个障碍移动的最少次数,每次计算时进行更新即可。 (4)时间复原创 2017-10-06 18:48:12 · 410 阅读 · 0 评论 -
poj 1562 Oil Deposits
(1)类型:深搜。 (2)题意:此题与poj2386题非常类似。‘@’表示油田,与‘@’的八面有连接‘@’的与当前油田合并,代表一个油田。问一共有多少个油田。 (3)解题思路:从第一个搜索到的‘@’出发,搜索到八个方向的‘@’,一直搜索到没有‘@’为止,代表一个油田。搜索过的油田做标记。深度搜索即可。 (4)时间复杂度:O(m*n); (5)总结:此类题型为深搜水题,但是也是做了很多个才能自原创 2017-10-04 13:37:59 · 270 阅读 · 0 评论 -
poj 1979 Red and Black
(1)类型:深搜; (2)题意:从‘@’出发,搜索可以到达的‘.’的个数; (3)时间复杂度:O(W*H); (4)代码:#include<iostream>#include<cstring>char field[26][26];int n,m,res;using namespace std;void dfs(int x,int y){ if(x<=n-1&&x>=0&&y>原创 2017-10-04 11:47:37 · 276 阅读 · 0 评论 -
poj 2386 lake counting
(1)类型:深搜 (2)题意:一个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连接在一起的。求园子里总共有多少个水洼。 例如:* W * 此种情况下为八连通情况。 (3)时间复杂度:O(N*M) (4)代码:#include<iostream>const int MAX_N=1e2+6;using namespace std;int n,m;char fie原创 2017-09-29 14:20:46 · 376 阅读 · 0 评论