题目链接:http://poj.org/problem?id=1111

解题报告:

1、这里深搜有一点要注意,对角线上的点,如果为'.',则total不应该增加,因为这不是他的边长。

#include <stdio.h>
#include <string.h>char maps[35][35];
int flag[35][35];
int mov1[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};
int mov2[4][2]= {{1,1},{1,-1},{-1,1},{-1,-1}};
int r,c;
int click_x,click_y;
int total;///周长void dfs(int x,int y)
{if(flag[x][y]!=0) return ;else{flag[x][y]=1;int tx;int ty;for(int k=0; k<4; k++){tx=x+mov1[k][0];ty=y+mov1[k][1];if(maps[tx][ty]=='X'&&flag[tx][ty]==0)dfs(tx,ty);else if(maps[tx][ty]=='.')total++;}for(int k=0; k<4; k++){tx=x+mov2[k][0];ty=y+mov2[k][1];if(maps[tx][ty]=='X'&&flag[tx][ty]==0)dfs(tx,ty);}}
}int main()
{while(scanf("%d%d%d%d",&r,&c,&click_x,&click_y),r){total=0;memset(flag,0,sizeof(flag));memset(maps,'.',sizeof(maps));for(int i=1; i<=r; i++){scanf("%s",maps[i]+1);maps[i][c+1]='.';}dfs(click_x,click_y);printf("%d\n",total);}return 0;
}

转载于:https://www.cnblogs.com/TreeDream/p/5289733.html

深搜(DFS),Image Perimeters相关推荐

  1. [二叉树|深搜|dfs] leetcode 404 左叶子之和

    [二叉树|深搜|dfs] leetcode 404 左叶子之和 1.题目 题目链接 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 ...

  2. 题解HDU6148 Valley Numer(数位DP+深搜DFS)

    题解HDU6148 Valley Numer[数位DP+深搜DFS] 题目 解析 参考源码 题目 Description: 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Nu ...

  3. 深入递归、深搜dfs、回溯、剪纸学习。

    深入递归,深搜dfs,回溯,剪枝 参考于博客 一.双管齐下解递归 "逐步生成结果"类问题之数值型 自下而上的递归(递推,数学归纳,动态规划) 解决简单情况下的问题. 推广到稍复杂情 ...

  4. 2412 - 和为K ---深搜dfs剪枝

    **2412 - 和为K ---深搜dfs优化 **来源:东方博宜oj oj.czos.cn #include<bits/stdc++.h> using namespace std; co ...

  5. acwing-167. 木棒(深搜dfs+减枝)

    乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过 50 个长度单位. 然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度. 请你设计一个程序,帮 ...

  6. 深搜DFS\广搜BFS 图初步入门

    首先,不管是BFS还是DFS,由于时间和空间的局限性,它们只能解决数据量比较小的问题. 深搜,顾名思义,它从某个状态开始,不断的转移状态,直到无法转移,然后退回到上一步的状态,继续转移到其他状态,不断 ...

  7. 算法学习笔记(六) 二叉树和图遍历—深搜 DFS 与广搜 BFS

    图的深搜与广搜 复习下二叉树.图的深搜与广搜. 从图的遍历说起.图的遍历方法有两种:深度优先遍历(Depth First Search), 广度优先遍历(Breadth First Search),其 ...

  8. 习题9-2(免费糖果)【深搜dfs】+【记忆化搜索】

    习题9-2 [UVa 10118]Free Candies(免费糖果) 题目大意: 桌上有4堆糖果,每堆有N(N<=40)颗.佳佳有个最多可以装5颗糖果的小篮子.他每次选择一堆糖果,把最顶上的一 ...

  9. 算法——广搜(BFS)/深搜(DFS)

        在图的基本算法中,最初接触的就是图的遍历算法,根据访问节点的顺序,可分为广度优先搜索(BFS)和深度优先搜索(DFS). 广度优先搜索 广度优先搜索算法主要解决两个问题: 从节点A出发有到节点 ...

最新文章

  1. 「译」JUnit 5 系列:基础入门
  2. 编写脚本隐藏托盘图标_【Electron-Playground系列】托盘篇
  3. 经典C语言程序100例之七九
  4. codevs4343 找回密码
  5. php 图片不让下载,php简单实现文件或图片强制下载的方法
  6. 目标检测的二十年发展史—从传统方法到深度学
  7. 几种线程池的实现算法分析
  8. VS报:dll标记为系统必备组件,必须对其进行强签名错误
  9. dex2java_dex2jar 使用方法 | 学步园
  10. Cisco.Packet.Tracer思科模拟器浮动路由讲解(含实例步骤)
  11. SwiftUI 绘制刻度时钟表盘(自定义组件教程含源码)
  12. String转成JSON或String转为list后转为JSON或String转为map后转为JSON
  13. 一个屌丝程序员的青春(三三)
  14. 【译】Vertical-Align: All You Need To Know
  15. dubbo注册服务IP解析异常及IP解析源码分析
  16. axios拦截器、ElementUI组件的使用
  17. html实现点击图片全屏显示,用vue实现点击图片预览浏览器满屏大图
  18. linux学习笔记16
  19. uniapp m3u8格式视频加载
  20. 以太坊学习路线——(四、上)Truffle安装、truffle项目创建、编译、部署

热门文章

  1. 获取Java项目根目录
  2. 详解苹果 macOS Mail 中的零点击漏洞
  3. Google Update Service 被曝提权 0day,谷歌拒绝修复
  4. 集成学习lgb库调参的粒子群方法
  5. 进程VS线程---操作类型
  6. java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠,该怎么解决
  7. ELMAH--Using HTTP Modules and Handlers to Create Pluggable ASP.NET Components 77 out of 90 rated th
  8. Swift中的数据存储
  9. 客户端连接openfire报错解决
  10. php imagick