![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深搜专项
人面桃花相映红
BNU student
展开
-
codeforce 337A
题目大意:将题目输入中的.置为X后整个图形中的.还是联通的,需要置为X的点的个数是题目中给出的。一种新的搜索方式 所有的dfs()相连,之后计数k–;用数组改变一下。 #include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>using namespace std原创 2016-11-02 23:40:48 · 314 阅读 · 0 评论 -
搜索截止条件
1.搜索截止条件分为两种,一种是需要记住所有可能的次数的,一种是只要是满足条件即可,但是需要打印路径的第一种if(满足条件){次数++;return;}else{根据条件尝试;vis[] = 1;dfs(下一个);vis[] = 0;}第二种if(满足条件){flag= 1;return;}else{根据条件尝试;vis[] = 1;dfs(下一个);vi...原创 2018-03-06 17:53:52 · 294 阅读 · 0 评论 -
杭电 2266
Now give you an string which only contains 0, 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9.You are asked to add the sign ‘+’ or ’-’ between the characters. Just like give you a string “12345”, you can work out a string ...原创 2018-03-09 16:17:03 · 215 阅读 · 0 评论 -
杭电 1258 去重复搜索
Given a specified total t and a list of n integers, find all distinct sums using numbers from the list that add up to t. For example, if t=4, n=6, and the list is [4,3,2,2,1,1], then there are four di...原创 2018-03-08 17:45:04 · 245 阅读 · 0 评论 -
杭电 1010 深搜
#include<iostream>#include<algorithm>#include<string.h>#include<string>#include<math.h>#include<stdio.h>using namespace std;char maze[10][10];int t;bool vis[10][10...原创 2018-02-28 10:13:49 · 235 阅读 · 0 评论 -
poj 1518 square dfs
Square 问题描述 : Given a set of sticks of various lengths, is it possible to join them end-to-end to form a square? 输入: The first line of input contains N, the number of test cases. Each test case be原创 2017-04-21 13:02:33 · 243 阅读 · 0 评论 -
poj 1111 dfs 求周长
题意:给你一个图形,让你求周长。 思想:首先把这个图存一遍,然后吧一圈都置为 . ,一旦搜索到边上就加一。 #include <cstdio> #include <cstring> char map[25][25]; int dir[8][2]={ 0,1, 1,1, 1,0, 1,-1, 0,-1, -1,-1, -1,0, -1,1 };原创 2017-04-20 21:49:35 · 270 阅读 · 0 评论 -
手机九宫格解锁所有可能
#include <stdio.h> #include <string.h> int filter[10][10]; //用于存放是否适合连接 int stamp[9]; //用于存放上一次连的是哪个数字 bool vis[10]; //用于标记是否已经用过 int result; //用于输出最后的结果 void dfs(int cou原创 2017-04-05 19:27:06 · 6908 阅读 · 0 评论 -
风险度量 典型的深度搜索
7.标题:风险度量X星系的的防卫体系包含 n 个空间站。这 n 个空间站间有 m 条通信链路,构成通信网。 两个空间站间可能直接通信,也可能通过其它空间站中转。对于两个站点x和y (x != y), 如果能找到一个站点z,使得: 当z被破坏后,x和y无法通信,则称z为关于x,y的关键站点。显然,对于给定的两个站点,关于它们的关键点的个数越多,通信风险越大。你的任务是:已知网络结构,求两站点之间的原创 2017-04-05 15:37:45 · 436 阅读 · 0 评论 -
nyoj 488 素数环
素数环问题 先打表#include <stdio.h>#include <string.h>int n,ac[21]= {1};bool in[21];bool is_prime(int x){ for(int i=2; i*i<=x; i++) if(x%i==0) return false; return true;}void原创 2017-03-26 17:00:29 · 298 阅读 · 0 评论 -
李白打酒
第三题:李白打酒 话说大诗人李白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所原创 2017-04-07 19:08:48 · 210 阅读 · 0 评论 -
poj 1321 棋盘问题 简单深度优先搜索
方法:运用一维的vis[]数组,就可以把这一行一列直接标记,因为他是下过的旗子的这一行和这一列都不可以再下了,所以说vis[i]可以表示第i行和第i列都不可以再下了。然后用m来统计已经下了多少颗旗子了,用total来统计方案的个数。#include<iostream>#include<cstdio>#include<cstring>using namespace std;char a[10]原创 2017-03-27 21:42:46 · 289 阅读 · 0 评论 -
poj 2488 A Knight's Journey http://poj.org/problem?id=2488
Description Background The knight is getting bored of seeing the same black and white squares again and again and has decided to make a journey around the world. Whenever a knight moves, it is two s原创 2017-03-27 20:08:48 · 328 阅读 · 0 评论 -
poj 1979 简单深搜
There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four adjacent tiles. But he can't原创 2017-03-01 20:58:17 · 239 阅读 · 0 评论 -
poj 1321 搜索的经典 问题
Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k原创 2017-02-28 15:32:40 · 213 阅读 · 0 评论 -
codeforce 580C 简单深搜
如果说要A和B相连,要把这个图储存,那么用到vector 数组,如果没有权,直接vectorG[maxn];G[x]push_back(y);G[y].push_back(x).如果有权,先定义一个结构体数组,vector《node>G[maxn];G[x].push_back(node(y,cost);G[y].push_baxk(node(x,cost);#include <stdio.h>原创 2016-11-02 20:29:33 · 364 阅读 · 0 评论 -
带分数 蓝桥杯
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>int aws=0;int a[10],flag[10];int sum(int start,int end){ int i,sum=0; for(i=start;i<end;i++) ...原创 2018-03-25 10:53:39 · 251 阅读 · 0 评论