POJ1111(DFS)

专题一:Labview表格控件 及 应用(三)在表格中插入一行数据 专题一:Labview表格控件 及 应用(三) 在表格中插入一行数据 最近一段时间,做试验台上位机编程,老是用到表格控件,这几天抽时间专门写一个表格控件的专题。有用到的朋友可以参考一下。 今天接着讲一下,表格控件的数据插入,和相关的操作 1.表格控件的数据插入原理: 表格控件是一个 2D 字符串数组。 在表格插入一行,就是在2D数组插入一行。 行、列插入类似** 以下以成绩录入为例说明 2.1 不要表头直接插入 知识点1:创建数组:把数学,语文,英语三个数值,连成一个一位数组(数值型)。 知 阅读详情

POJ1111(DFS)


Image Perimeters

Description

Technicians in a pathology lab analyze digitized images of slides. Objects on a slide are selected for analysis by a mouse click on the object. The perimeter of the boundary of an object is one useful measure. Your task is to determine this perimeter for selected objects.

The digitized slides will be represented by a rectangular grid of periods, ‘.’, indicating empty space, and the capital letter ‘X’, indicating part of an object. Simple examples are

XX   Grid 1       .XXX   Grid 2 

XX                .XXX 

                  .XXX 

                  ...X 

                  ..X. 

                  X... 

An X in a grid square indicates that the entire grid square, including its boundaries, lies in some object. The X in the center of the grid below is adjacent to the X in any of the 8 positions around it. The grid squares for any two adjacent X’s overlap on an edge or corner, so they are connected.

XXX 

XXX    Central X and adjacent X's 

XXX 

An object consists of the grid squares of all X’s that can be linked to one another through a sequence of adjacent X’s. In Grid 1, the whole grid is filled by one object. In Grid 2 there are two objects. One object contains only the lower left grid square. The remaining X’s belong to the other object.

The technician will always click on an X, selecting the object containing that X. The coordinates of the click are recorded. Rows and columns are numbered starting from 1 in the upper left hand corner. The technician could select the object in Grid 1 by clicking on row 2 and column 2. The larger object in Grid 2 could be selected by clicking on row 2, column 3. The click could not be on row 4, column 3.

img

One useful statistic is the perimeter of the object. Assume each X corresponds to a square one unit on each side. Hence the object in Grid 1 has perimeter 8 (2 on each of four sides). The perimeter for the larger object in Grid 2 is illustrated in the figure at the left. The length is 18.

Objects will not contain any totally enclosed holes, so the leftmost grid patterns shown below could NOT appear. The variations on the right could appear:

Impossible   Possible 



XXXX         XXXX   XXXX   XXXX 

X..X         XXXX   X...   X... 

XX.X         XXXX   XX.X   XX.X 

XXXX         XXXX   XXXX   XX.X 



.....        .....  .....  ..... 

..X..        ..X..  ..X..  ..X.. 

.X.X.        .XXX.  .X...  ..... 

..X..        ..X..  ..X..  ..X.. 

.....        .....  .....  ..... 

Input

The input will contain one or more grids. Each grid is preceded by a line containing the number of rows and columns in the grid and the row and column of the mouse click. All numbers are in the range 1-20. The rows of the grid follow, starting on the next line, consisting of ‘.’ and ‘X’ characters.

The end of the input is indicated by a line containing four zeros. The numbers on any one line are separated by blanks. The grid rows contain no blanks.

Output

For each grid in the input, the output contains a single line with the perimeter of the specified object.

Sample Input

2 2 2 2
XX
XX
6 4 2 3
.XXX
.XXX
.XXX
...X
..X.
X...
5 6 1 3
.XXXX.
X....X
..XX.X
.X...X
..XXX.
7 7 2 6
XXXXXXX
XX...XX
X..X..X
X..X...
X..X..X
X.....X
XXXXXXX
7 7 4 4
XXXXXXX
XX...XX
X..X..X
X..X...
X..X..X
X.....X
XXXXXXX
0 0 0 0

Sample Output

8
18
40
48
8
题意

输入一个n*m的字符矩阵,给出起始点坐标,求出与起始点“相连”的’#’组成的图形的周长,其中,“相连”是指东,西,南,北,东北,东南,西北,西南八个方向。

思路

从起点开始用dfs深度优先搜索找出相连接的图形,然后统计图像的周长即可。

代码
import java.util.Scanner;

public class ImagePerimeters {
    int[][] map = new int[25][25];
    int[] xs = {-1, -1, -1, 0, 0, 1, 1, 1};
    int[] ys = {-1, 0, 1, -1, 1, -1, 0, 1};
    int count = 0;

    public void dfs(int x, int y) {
        if (this.map[x][y] == 0) {
            this.map[x][y] = -1;
        }
        if (this.map[x][y] == 1) {
            this.map[x][y] = 2;
            for (int i = 0; i < 8; i++) {
                dfs(x + xs[i], y + ys[i]);
            }
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            ImagePerimeters ip = new ImagePerimeters();
            int n = sc.nextInt();
            int m = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            if (n == 0 || m == 0 || x == 0 || y == 0) {
                break;
            }
            for (int i = 1; i <= n; i++) {
                String str = sc.next();
                for (int j = 1; j <= m; j++) {
                    if (str.charAt(j - 1) == 'X') {
                        ip.map[i][j] = 1;
                    }
                }
            }
            ip.dfs(x, y);
            for (int i = 1; i <= n; i++) {
                for (int j = 0; j <= m; j++) {
                    if (ip.map[i][j] == 2) {
                        if(ip.map[i-1][j] == -1){//上
                            ip.count++;
                        }
                        if(ip.map[i+1][j] == -1){//下
                            ip.count++;
                        }
                        if(ip.map[i][j-1] == -1){//左
                            ip.count++;
                        }
                        if(ip.map[i][j+1] == -1){//右
                            ip.count++;
                        }
                    }
                }
            }
            System.out.println(ip.count);
        }
        sc.close();
    }
}
【车载以太网】【SOMEIP】Wireshark测试someip 一、 Wireshark SOMEIP plugin 1.1 插件安装 Wireshark插件目录:Help -> About Wireshark -> Folders/Pluginshttps://github.com/jamores/eth-ws-someip 解压后,将所有后缀是lua的文件拷贝到Wireshark安装目录plugins/2.4.10/下。 1.2时间戳调整为UTC显示格式 View -> Time Display Format -> Date and Tim. 阅读详情

相关推荐

第170篇 因子图优化入门——图模型在状态估计中的应用

本文系统介绍了从滤波方法到因子图优化的思维转变,重点解析了因子图的原理与应用。首先对比了递推式滤波(卡尔曼滤波等)与全局优化的区别,指出优化方法能利用所有信息且适合处理稀疏结构。然后详细阐述了因子图的二部图结构(变量节点和因子节点)及其将复杂概率分布分解为小因子乘积的优势。文章讲解了因子图优化如何转化为最小二乘问题,并介绍高斯-牛顿法和LM方法等求解技术。最后对比了g2o、Ceres和GTSAM三大主流框架的特点及适用场景,强调了初始化和鲁棒核函数的重要性,为SLAM相关面试提供了实用建议。

郑伟强dev的专栏 374

poj 1111

题意是输入一个矩阵,再指定一个位置,当这个位置向8个方向扩展,根据形成的图形求出周长。 #include "stdafx.h" #include &lt;iostream&gt; #include&lt;cstring&gt; using namespace std; char str[30][30]; int dir[8][2] = { { 1,0 },{ 0,-1 },{ 0,1 },{ ...

phperHe 283

LPDDR6来了!带你一文看懂它和LPDDR5/5X的差距 + 技术演进逻辑全解析

🧠从速率到架构,从总线宽度到协议设计,LPDDR6 每一个改动都不是拍脑袋做的,它针对的是AI / HPC / 云计算 / 下一代笔记本平台的真实需求。作为工程师的我们,不仅要“用得上”,更要“测得准”,因为没有测试验证,就没有量产落地!🎯LPDDR6不是未来,而是现在进行时!

weixin_43199439的博客 2168

poj1111 Image Perimeters

题目大意:求联通块的周长(八联通),每个块的周长为4。 我的做法是求出联通块的个数cnt,这样总的周长是cnt*4,但是有些块的某些边不能计算在内,有些块整个周长都不能计算在内,处理这个问题的方法是找一个块能够与多少块直接相连(最多有四个,上下左右),假设与x个块相连,再把每个块的x加起来,就是不需要计算在内的边数和,这样再用cnt*4减去就是真正的周长了。#include <cstdio> #i

Loi_whales 的坑 433

详解Xilinx FPGA高速串行收发器GTX/GTP(1)--SerDes和GTX的关系

详解Xilinx FPGA高速串行收发器GTX/GTP(1)--SerDes和GTX的关系

孤独的单刀 4350

家用扫地机器人实物拆解报告-从顶盖到每一颗螺丝 · 逐层拆解旗舰扫拖一体机器人

2026年旗舰扫拖机器人拆解报告:采用D形机身设计,主机重4.5kg,基站重12kg。核心配置包括RK3588S+STM32H743双处理器、8颗21700电池、LDS激光雷达和双摄像头+结构光导航系统。创新设计亮点:锥形滚刷自动排毛发、活水循环拖地系统、基站集成450W强力集尘和自动上下水模块(带三重防漏保护)。整机采用模块化设计,关键部件均支持快速更换,在密封性、防呆设计和降本增效方面展现出成熟的工程智慧。

智能硬件研发,欢迎交流 515

Poj1111结题报告

题目要求: 给定矩形长宽,及起始坐标,求所有与起始坐标有关联的X形成图形的周长。 有关联是指所有利用九宫格联系起来的格子   思路: 1、从起始坐标开始,将他周围八个格子里是X的标为Y,并从被标为Y的格子开始同样的搜索//注意,别忘了标记初始位置,我就是忘了标初始位置,WA了好多次 2、遍历数组,找出等于Y的格子,再计算它周围有几个不等于Y的格子,有几个,周长就加几//画下图,很容易懂

AUV1107的专栏 989

【推荐100个unity插件之34】在unity中实现和Live2D虚拟人物的交互——Cubism SDK for Unity

Live2D是一款2D建模的软件,常用于游戏,动态壁纸,虚拟主播,游戏公司里面是有专门的ive2D岗位的。游戏里面还有一个经常使用的软件——spine,他做的也是2d的模型,但是他更适合做一些动作,Live2D更适合人物交互方面。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4989

poj 1111(Image Perimeters DFS)

这道题其实我都没有看懂啥意思,也没太仔细看,就想着看看博客中某yuan博客中是否说出了它的题意,没想到一不小 心看见了求周长的方法,原来Perimeters就是周长的意思啊!!!旁边有几个点就给周长加一咯,就加了这一个功能而 已,之前先用dfs找出八连通全部块数就可以了。#include #include #include char a[105][105]; int step[

勿忘初心 826

《点云进阶》专栏文章目录

点云进阶》专栏文章目录

点云侠的博客 4903

【OpenClaw从入门到精通】第03篇:吃透Gateway/Skills/ClawHub核心概念(2026实测+避坑)

本文针对OpenClaw新手易混淆的核心概念痛点,以通俗类比+实操演示拆解OpenClaw核心、Gateway、Skills、ClawHub四大组件。通过“数字员工团队”类比明确各组件定位:OpenClaw核心是“老板”(调度中心)、Gateway是“前台+后勤”(后台进程)、Skills是“专业员工”(功能插件)、ClawHub是“人才市场”(技能商店)。补充版本更名史、技能加载优先级、ClawHub与GitHub区别等关键细节,结合“AI融资新闻查询并邮件推送”虚拟案例演示组件协同流程,梳理5个高频认知

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 5036

POJ 1111 深搜

题意:给出一幅图和一个起点坐标,求出该点所在联通块的边长。   用深搜对每个点搜周围的八个点,对于每个在联通块内的点,求出其对联通块边长的贡献,贡献值就是该点的周围四个方向上的点越界或者为空(就是图中的“.”)的个数。 另外注意坐标读进来后要减一(本弱没注意调试了半天。。。)。 #include #include #include #include #include #defi

tanmlh的专栏 411

MATLAB - 机械臂手眼标定(眼在手内) - 估计安装在机器人上的移动相机的姿态

执行手眼校准有助于操作配备末端执行器(简称 “手”)的机械臂,该末端执行器依赖于摄像头提供的视觉数据。一旦完成了眼在手外的校准,机械臂就能准确地移动到摄像头识别的特定像素位置。这种能力是执行精确拾放任务(如分类、堆垛和分拣)的基础,即使在摄像机的确切位置和方向未知的情况下也是如此。机器人-摄像机系统有两种构型:眼在手内和眼在手外。在眼在手内构型中,摄像头直接安装在机器人手臂的末端执行器上。相反,在眼在手的构型中,摄像头固定在一个静止的物体上,机器人手臂在其视野内。

机器人控制与仿真应用 3348

POJ 1111 Image Perimeters(DFS)

POJ 1111 Image Perimeters(简单DFS) http://poj.org/problem?id=1111 题意:(L又是一道题意复杂的简单题)给你一个R*C的仅有字符’.’(表空格)和字符’X’(表物体)构成的棋盘,现在在给你一个坐标(从1计数),要你算出这个与这个坐标点相连的所有’X’构成物体的外表面周长. 如上的棋盘,构成了两个X物体,其中下面那个小的外周长为4

code 1106

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

POJ 1111(单身快乐)

Poj 1111 题意:求感染体X的周长 用DFS 很快就能得到解 #include<iostream> using namespace std; char Mp[30][30]; int dir[8][2]={{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}}; int DFS(int r,int c) { if(Mp[r]...

qq_19669667的博客 184

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

POJ 1111 Image Perimeters

POJ 1111 Image Perimeters 1. 写得最有逻辑的一道题了,10次讲座学的最好的就是DFS和BFS了。 2. 直接深搜 #include <iostream> #include <fstream> #include ...

dayong9372的博客 164

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

POJ1111DFS

Image Perimeters Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9174   Accepted: 5419 Description Technicians in a pathology lab analyze digitized images of

博学 笃志 切问 近思 326

DFS专攻:POJ 1111

下面是别人的做法,AC的,我的感觉和别人差不多,可就是过不了,好奇怪!!!#include #include #include #include #include #include #include #include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) typedef long long ll; usi

liwei的专栏 782

poj 1111 dfs求面积问题

题目链接 https://vjudge.net/contest/146654#problem/K;  http://poj.org/problem?id=1111; 首先,来说说我的思路吧,最近在做dfs但只会一些简单题,就以这道题为例子来帮助自己回忆一下dfs的套路吧。嘿嘿 题目大意就是给你一个图和一个点 你用算出这个点X区域组成的 面积。刚开始也是不知道这咋整,因为这个图像并不是规则的。但

小菜鸟。。 363

poj1111 dfs

(L又是一道题意复杂的简单题)给你一个R*C的仅有字符’.’(表空格)和字符’X’(表物体)构成的棋盘,现在在给你一个坐标(从1计数),要你算出这个与这个坐标点相连的所有’X’构成物体的外表面周长.   #include&lt;cstdio&gt; #include&lt;cstring&gt; using namespace std; const int maxn=30; int R,...

qq_40859951的博客 175

poj1111 DFS

J - 搜索 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1111 Description Technicians in a pa...

weixin_30530523的博客 125

POJ1111 Image Perimeters(dfs)

Image Perimeters Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8400   Accepted: 5030 Description Technicians in a pathology lab analyze digitized images

GKHack's Blog 1150

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 };

人面桃花 324

POJ 1111(简单dfs)

Image Perimeters 原题请点击上方蓝色标题 ↑ 题意:求最大连通块的周长,统计连通块周围的点点即可,所以我们预先将map都初始化为点点,然后dfs去搜索就好,上下左右四个方向,每有一个点点周长就加一。 ok,直接上AC code。 #include&lt;algorithm&gt; #include&lt;iostream&gt; #include&lt;string.h...

Eternally831143的博客 371

POJ1111 Image Perimeters(dfs)

Image Perimeters Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8934 Accepted: 5325 DescriptionTechnicians in a pathology lab analyze digitized images of slides. Objects on a sl

474

poj 1111 Image Perimeters DFS

Description Technicians in a pathology lab analyze digitized images of slides. Objects on a slide are selected for analysis by a mouse click on the object. The perimeter of the boundary of an object

渭城朝雨浥轻尘 747
上一篇: POJ3984(BFS)
下一篇: POJ1562(DFS)
shui2104
博客等级 码龄10年 22粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值