海岸线——模拟题

2023-11-16

题目链接:http://icpc.upc.edu.cn/problem.php?cid=2230&pid=0

题目描述

一个王国分成n*m个六边形区域,每个区域内是陆地或者是水。如果一条边两侧为陆地和水,则该条边成为海岸线,求这个王国海岸线的长度。

输入

第一行两个整数N,M。
以下N行每行M个字符,“.”表示水,“#”表示陆地。偶数行需要向右移半格,具体见样例。

输出

一个整数,海岸线的长度。

样例输入

3 6
..#.##
.##.#.
#.#...

样例输出

19

提示

数据表示如下图像:
可以看出,海岸线长度为19。
在这里插入图片描述
【数据范围】
对100%的数据1<=N,M<=50

///尴尬的。。。。。。。。。。。。。。。。。。。。。。。。。。。。。分界线
每一个元素有六个方向,运用两个for循环解决上述问题

#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize (2)
#pragma G++ optimize (2)
#include <bits/stdc++.h>
#include <algorithm>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
#define wuyt main
typedef long long ll;
#define HEAP(...) priority_queue<__VA_ARGS__ >
#define heap(...) priority_queue<__VA_ARGS__,vector<__VA_ARGS__ >,greater<__VA_ARGS__ > >
template<class T> inline T min(T &x,const T &y){return x>y?y:x;}
template<class T> inline T max(T &x,const T &y){return x<y?y:x;}
//#define getchar()(p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++)
//char buf[(1 << 21) + 1], *p1 = buf, *p2 = buf;
ll read(){ll c = getchar(),Nig = 1,x = 0;while(!isdigit(c) && c!='-')c = getchar();
if(c == '-')Nig = -1,c = getchar();
while(isdigit(c))x = ((x<<1) + (x<<3)) + (c^'0'),c = getchar();
return Nig*x;}
#define read read()
const ll inf = 0x3f3f3f3f;
const int maxn = 2e5 + 7;
const int mod = 1e9 + 7;
#define start int wuyt()
#define end return 0
int n,m;
char ss[100][100];
start{
    n=read,m=read;
    int cnt=0;
    for(int i=1;i<=n;i++)
        cin>>ss[i]+1;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(ss[i][j]=='#'){
                if(ss[i][j-1]=='.') cnt++;
                if(ss[i][j+1]=='.') cnt++;
                if(ss[i+1][j]=='.') cnt++;
                if(ss[i-1][j]=='.') cnt++;
                if(i%2){
                    if(ss[i+1][j-1]=='.') cnt++;
                    if(ss[i-1][j-1]=='.') cnt++;
                }
                else{
                    if(ss[i+1][j+1]=='.') cnt++;
                    if(ss[i-1][j+1]=='.') cnt++;
                }
            }
        }
    }
    cout<<cnt;
	end;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

海岸线——模拟题 的相关文章

  • pytorch混合常量、变量

    有矩阵 X R n d X in R n times d
  • 蓝桥杯2015年第六届真题-赢球票

    题目 题目链接 题解 暴力 模拟 枚举每次从哪个位置开始 也就是有n种情况要枚举 对于每一种情况 我们都模拟这个过程 更新最大值 取牌操作结束的条件是还未被取走的数中的最大值都小于报的数了 说明没有办法取走任何一张了 此时结束 注意答案要求
  • docker安装rabbitmq

    1 准备 需要安装好docker环境 可以阅读文章在Centos和Redhat上安装Docker 小帅虎丶丿的博客 CSDN博客 学习如何安装docker 需要安装docker compose 了解yaml格式文件的编写以及一些常用的doc
  • 【python】如何使python中线程等待其他线程完了再执行;python-threading中的join方法;python的thread库如何判断子线程所绑定的函数全部执行完毕?

    1 主要方法 让所有的子线程都join 就可以了 不用join 的时候是这样的 用了join 之后是这样的 2 案例一 1 没有join import threading time def fun print 线程开始 print 我是线程
  • 国内几个主要的ubuntu 18.04 软件源

    1 阿里源 deb http mirrors aliyun com ubuntu bionic main restricted universe multiverse deb http mirrors aliyun com ubuntu b
  • R如何正确动态创建变量名,解决target of assignment expands to non-language object

    在一个群里 看到一位朋友发了一堆代码 错误代码 以及一个报错信息 Error in paste could not find function paste 还有一个target of assignment expands to non la
  • C++ 文档加密与解密运用【Crypto++】库

    一 下载Cryptopp 鼠标放到下面网址 点击下载即可 github地址 8 7 0版本 https github com weidai11 cryptopp releases tag CRYPTOPP 8 7 0 二 下载PEM包 pe
  • [1100]rocketmq详解

    文章目录 rocketmq入门 消息队列 rocketmq示例图 rocketmq应用场景 搭建环境 环境安装 Linux RocketMQ下载及安装 RocketMQ目录结构 RocketMQ启动及测试 管理工具 mqadmin管理工具
  • Navicat系列软件在win10中崩溃/闪退解决办法

    Navicat系列软件在win10中崩溃 在执行query gt run selected 的时候crash 安装了navicat 11的版本 经常在下拉菜单执行的过程中碰到闪退的情况 找过很多版本的安装包 都是如此 操作系统 win10
  • 程序员的关键思维

    在IT行业工作多年 越往后走 越是感觉到需要强调思考的能力 思考是我们底层非常关键的能力 尤其是在脑力密集 知识密集的行业里面显得更加重要 而这些思考的能力到底指的是什么 有没有什么方法论可以作为指导 让我们在日常的工作中不断精进 我最近试
  • [转]如何删除grub恢复windows操作系统的启动

    注 本文特别适合于在windows下已释放Linux所占空间 而启动时仍进入grub引导而不知如何解决的朋友 此文是我自己遇到这个问题时在网上搜到的 在此转载供大家参考 我自己采用的是方法四 确实比较简便 由于windows 2000 wi
  • 移植2- 移植uboot的spl代码

    根据http blog csdn net xiaojiaohuazi article details 8269890来修改 2014 3 2 做到第九步 这步还未做 疑问 uboot应该在BL2时才初始化内存吧 这里为什么这么早就初始化内存
  • 多线程高并发服务器:3个问题

    1 子线程能否关闭监听文件描述符 2 主线程能否关闭通信文件描述符 3 多个子线程共享cfd 会有什么问题发生 解答1 不能 父子线程共享文件描述符 若子进程关闭监听文件描述符之后 第二个子线程Accept时就会出错 Accept的第一个参

随机推荐

  • V-rep学习笔记:Geometric Constraint Solver(几何约束求解)

    The geometric constraint solver is slower and less precise at solving kinematic problems but might be easier and more in
  • 【计算机视觉】LeNet方法实现手写体识别(MNIST数据集)

    目录 一 MNIST数据集的特点 二 LeNet模型原理 一 卷积神经网络 二 LeNet 5模型 三 实验结果 一 训练测试结果 二 匹配结果 四 相关代码 一 MNIST数据集的特点 部分数据 MNIST数据集是一个手写体数据集 数据集
  • 进程间通信(IPC)的方法:命名管道

    使用管道时 一个进程的输出可成为另外一个进程的输入 命名管道 Named pipe或FIFO 是一种类似于管道的特殊文件 但在文件系统上有一个名称 它允许以先进先出 FIFO first in first out 的方式存储有限数量的数据
  • CUDA常见函数(一)(小白入门)

    CUDA常见函数 小白入门 示例代码0 VS自带Kernel cu 初始定义 核函数 其他函数 示例代码1 传递参数 cudaMalloc malloc cudaFree cudaMemcpy Memcpy 示例代码2 查询设备 cudaG
  • 关于as遇到的Enable "Android Support" Plugin错误问题

    元旦休息了3天 17年第一天上班打开as就遇到了这个facets cannot be loaded you can mark them as ignored to suppress this error错误问题 蛋疼得很 当然既然遇到了 就
  • 树莓派Pico入手

    树莓派Pico入手 树莓派 Pico 中文站 一 介绍 1 1 价格 开发板 19 00 1 2 型号 目前主要有两个型号 Pico 基础版 Pico W 板载WIFI芯片 H的是指给你焊好排针 1 3 性能 核心 双核 Arm Corte
  • Fisco技术文档总结1---搭建第一个区块链网络

    前言 本文的记录与总结依照于FISCO BCOS 技术文档学习联盟链搭建的相关知识 详细搭建过程见文档 本文仅作参考 本文通过在单机上部署一条4节点的FISCO BCOS联盟链 掌握FISCO BCOS部署流程 搭建 需要使用已经封装好的脚
  • 简易数字式电阻、电容和电感测量仪设计报告

    写在前面 这是这次参加电子设计大赛我写的设计报告 但是我本人现在对硬件不是很熟悉 所以很对原理叙述不是很到位啊 不过整个作品用到知识点和原理都基本说清楚了 简易数字式电阻 电容和电感测量仪设计报告 摘要 本系统利用TI公司的16位超低功耗单
  • 创建最大堆,对指定位置元素进行删减

    在堆H上实现一种新的操作 DecreaseKey H P X 将堆H中 位于P的元素的值减去X 这个操作如何实现 当然 要求操作执行后 H仍然是个堆 堆中的元素允许移动 include
  • 设置多个班主任类似问题

    设置班主任或者是修改 我们一般住在代码中是设置成saveAndUpdtate 在遇到要设置多个的话这种方式是不太可行的 可以采取开启一个事务 先将旧数据拿到 将新数据插入 再用旧数据id去删除旧数据 定义一个全局flag为false 每个步
  • Hyperledger Fabric笔记2--运行fabric测试网络

    Hyperledger Fabric笔记2 运行fabric测试网络 1 获取fabric相关源代码 首先 需要在 opt gopath中新建目录 mkdir p opt gopath src github com hyperledger
  • R手册(Communicate)--R Markdown

    文章目录 Overview Rmd Structure YAML Header Parameters Set render options with YAML 初始文档信息 Text Embed code with knitr syntax
  • bfs打开转盘锁

    转盘锁有四位 每位10个数字 每次只能转一位 而且转的过程中不能出现deadends中的情况 求出最后转几步才能的出target 一串字符串往上往下拨一位会有8种情况 相当于一个节点有8个邻接节点 在这么一个图中 只有一个终点 而且有的节点
  • AcWing题解

    104 货仓选址 417 不高兴的津津 421 陶陶摘苹果 425 明明的随机数 429 奖学金 441 数字统计 445 数字反转 449 质因数分解 680 剪绳子 756 蛇形矩阵 1381 阶乘 3208 Z字形扫描 3375 成绩
  • 银河麒麟安装后,网速过慢,经常断网,网卡:RTL8111/8168/8411

    问题描述 银河麒麟是一款国产系统 我前端时间下载并安装官网提供的试用版本 安装完之后 发现网络时常出现问题 经常网速变慢或者断网 需要电脑休眠之后 重新激活才能连上网络 原因分析 在长达一个月的使用过程中 断断续续的排查中 终于发现了是网卡
  • PYTHON爬虫小工具

    文章目录 google headers格式转换 firefox headers格式转换 判断服务器检测哪些headers头 判断服务器检测哪些cookies值 google headers格式转换 def googleHeadersForm
  • electron-vue 的初步安装使用

    1 安装node 官网Node下载进行安装 2 安装vue cli install 可以缩写为 i npm i g vue cli 安装完成后可以通过输命令查看安装的版本 vue V 2 9 6 3 安装electron vue脚手架 vu
  • 奇安信可信浏览器下载地址

    下载奇安信可信浏览器国密开发者专版 https www qianxin com ctp gmbrowser html
  • 真题详解(UML图)-软件设计(四十七)

    真题详解 Flynn分类 软件设计 四十六 https blog csdn net ke1ying article details 130072198 某搜索引擎在使用过程中 若要增加接受语音输入的功能 使用户可以通过语音来进行搜索 此时对
  • 海岸线——模拟题

    题目链接 http icpc upc edu cn problem php cid 2230 pid 0 题目描述 一个王国分成n m个六边形区域 每个区域内是陆地或者是水 如果一条边两侧为陆地和水 则该条边成为海岸线 求这个王国海岸线的长