ACM-DFS Template
自己写的DFSTemplate:
// DFS_Template.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h" //DFS的思想是:一直向下搜索
//内部逻辑有两种:
//1.不走:找到解 or 走不下去了
//2.走:满足条件的下一个状态重复进行DFS #include <iostream>
#include <string.h>
using namespace std;
const int N = ;
int visit[N][N], map[N][N];
int dir[][] = { , , -, , , , , - }; void DFS(int x,int y)
{ //判断是否满足解 //判断是否走不下去了 for (int i = ; i < ; i++)
{
int nx = x + dir[i][];
int ny = y + dir[i][];
//判断新点是否满足继续搜索的条件
if (nx >= && nx <= N && ny >= && ny <= N && visit[nx][ny] == )
{
//标记点
visit[x][y] = ;//最好把vis标记放在DFS函数外面,这样子集树的结构比较明显,调试也方便
DFS(nx, ny); } }
} int main()
{
//初始化
memset(visit, , sizeof(visit)); //标记点
visit[][] = ;
DFS(, ); }
ACM-DFS Template的更多相关文章
- DFS template and summary
最近一直在学习Deep Frist Search,也在leetcode上练习了不少题目.从最开始的懵懂,到现在遇到问题基本有了思路.依然清晰的记得今年2月份刚开始刷题的时做subsets的那个吃力劲, ...
- Binary Search Tree DFS Template
Two methods: 1. Traverse 2. Divide & Conquer // Traverse: usually do not have return value publi ...
- 数据结构算法集---C++语言实现
//数据结构算法集---C++语言实现 //各种类都使用模版设计,可以对各种数据类型操作(整形,字符,浮点) /////////////////////////// // // // 堆栈数据结构 s ...
- 565. Array Nesting
Problem statement: A zero-indexed array A consisting of N different integers is given. The array con ...
- 592. Fraction Addition and Subtraction
Problem statement: Given a string representing an expression of fraction addition and subtraction, y ...
- Ac自动机基础题集合
Ac_automaton的板子打熟以后发现碰到题不会做,而且还是比较纯的板子,只要改几处地方就可以,Ac_automation有许多优秀而fantasy的性质,下面粘几个题,来记录一下做题的心得. 1 ...
- DFS-BFS(深搜广搜)原理及C++代码实现
深搜和广搜是图很多算法的基础,很多图的算法都是从这两个算法中启发而来. 深搜简单地说就是直接一搜到底,然后再回溯,再一搜到底,一直如此循环到没有新的结点. 广搜简单地说就是一层一层的搜,像水的波纹一样 ...
- ACM学习历程—UESTC 1219 Ba Gua Zhen(dfs && 独立回路 && xor高斯消元)
题目链接:http://acm.uestc.edu.cn/#/problem/show/1219 题目大意是给了一张图,然后要求一个点通过路径回到这个点,使得xor和最大. 这是CCPC南阳站的一道题 ...
- 计蒜客 ACM训练联盟周赛 第一场 从零开始的神棍之路 暴力dfs
题目描述 ggwdwsbs最近被Zeratul和Kyurem拉入了日本麻将的坑.现在,ggwdwsbs有13张牌,Kyurem又打了一张,加起来有14张牌.ggwdwsbs想拜托你帮他判断一下,这14 ...
- ACM/ICPC 之 DFS+SPFA-贪心+最短路(POJ2679)
//POJ2679 //DFS+SPFA+邻接表 //只能走每个点费用最小的边,相同则需保证距离最短 //求最小费用及最短距离 //Time:47Ms Memory:900K #include< ...
随机推荐
- Docker 基础入门
Docker是一个开放的平台,将应用和基础设施分隔开来, 方便快速的交付软件.利用docker的提供的方法可以快速的测试和部署代码,显著的减少写代码和部署直接的延迟. Docker 平台(The Do ...
- java读取ini文件
ini工具类; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import j ...
- JS操作DOM节点查找
JS中常用的DOM操作事件,包括有节点查找,键盘鼠标事件等等,本文内容介绍DOM的节点查找. <script> window.onload = function(){ //children ...
- 6、mysql事务
1.mysql事务 —mysql中,事务其实是一个最小的不可分割的工作单元.事务能够保证一个业务的完整性,例如:银行存款: a - > -100 >update user set ...
- intel关于spark gc的优化建议
Apache Spark由于其出色的性能.简单的接口和丰富的分析和计算库而获得了广泛的行业应用.与大数据生态系统中的许多项目一样,Spark在Java虚拟机(JVM)上运行.因为Spark可以在内存中 ...
- 手动搭建Vue之前奏:搭建webpack项目
手动搭建vue项目 搭建vue前首先搭建webpack项目 首先你应当安装一下npm以及nodejs 安装完成后,进行如下操作: // 创建项目根目录 mkdir some_project_name ...
- 请求http协议分析- (mysql-thinkphp) (5)
http协议 https://tools.ietf.org/pdf/rfc7231.pdf https://www.w3.org/Protocols/ ======================== ...
- Ubuntu操作系统部署zabbix agent服务
Ubuntu操作系统部署zabbix agent服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.下载zabbix软件包 博主推荐阅读: https://www.cnblog ...
- P1062 最简分数
P1062 最简分数 转跳点:
- mac下添加环境变量
1.环境变量相关文件说明: a. /etc/profile b. /etc/paths c. ~/.bash_profile d. ~/.bash_login e. ~/.profile f. ~/. ...