正题

题目链接:https://jzoj.net/senior/#main/show/1404


题目大意

给出一个菱形中有一些边,求有多少个中间没有边的平行四边形。


解题思路

我们将一个平行四边形拆成两个等腰三角形和一个平行于菱形中间对角线的平行四边形,我们可以判断上面那个等腰三角形在判断下面的。


codecodecode

#pragma GCC optimize("O2")
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int dx[8]={0,0,1,-1,1,-1,1,-1},dy[8]={1,-1,0,0,1,-1,-1,1};
const int N=1100;
queue<int> qx,qy;
int n,m,dis[N][N];
bool v[N][N];
char a[N][N];
void bfs()
{while(!qx.empty()){int x=qx.front(),y=qy.front();v[x][y]=0;qx.pop();qy.pop();for(int k=0;k<8;k++){int zx=x+dx[k],zy=y+dy[k];if(zx<1||zy<1||zx>n||zy>n) continue;int w=(a[zx][zy]=='0')*(a[x][y]=='1');if(dis[x][y]+w<dis[zx][zy]){dis[zx][zy]=dis[x][y]+w;if(!v[zx][zy]){qx.push(zx);qy.push(zy);v[zx][zy]=1;}}}}
}
void try_add(int x,int y)
{if(v[x][y]) return;v[x][y]=1;dis[x][y]=0;qx.push(x),qy.push(y);return;
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%s",a[i]+1);memset(dis,0x3f,sizeof(dis));for(int i=1;i<=n;i++)try_add(1,i),try_add(i,1),try_add(n,i),try_add(i,n); bfs();for(int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);printf("%d ",dis[x][y]);}
}

jzoj1404-菱形内的计数【模拟】相关推荐

  1. 2022年湖南省临床执业医师考试第一单元内医学免疫学模拟题

    本次我们将分享2022年湖南省临床执业医师考试第一单元内医学免疫学模拟题,根据近年来临床执业医师考试资格证专业知识真题,以及最新临床执业医师考试大纲,包含临床执业医师考试资格证专业知识重点题型以及知识 ...

  2. PTA 7-26 打印菱形图案 (15分)模拟

    本题要求编写程序,打印一个高度为n的.由"*"组成的正菱形图案. 输入格式: 输入在一行中给出一个正的奇数n. 输出格式: 输出由n行星号"*"组成的菱形,如样 ...

  3. 【有限元分析】医学领域-血管内血液流动模拟-ansys fluent

    三维模型与分析文件下载链接 CAE有限元仿真服务

  4. 三菱FX5U系列PLC内置模拟量使用方法和输入输出信号接线

    三菱FX5U系列PLC内置模拟量使用方法和输入输出信号接线 FX5U实物图如下图所示, 我们拆掉PLC的保护盖板,可以看到模拟量的输入输出端子,如下图所示,其中输入有2路,输出只有1路, 要注意的是: ...

  5. 用c语言编写实心菱形,C语言编写内置菱形的程序

    C语言编写内置菱形的程序 最近迷上了用C语言编写图形的输出程序,有矩形的.三角形.等腰三角形,平行四边形.菱形.沙漏形.今天尝试着将菱形内置到矩形中,结果成功了,下面将快乐分享给大家,也希望广大C程序 ...

  6. 交通模拟仿真平台指南(含数据说明)

    最后修改:2020/09/24 平台使用 平台地址 http://vsensor.openits.cn 登陆账号与密码 见<2020交通流理论课程分组名单>. 平台页面介绍 登入账户后,可 ...

  7. 学习自旋电子学的笔记01:微磁模拟软件OOMMF的教程(中文版)16章

    勉之期不止,多获由力耘.--欧阳修<送唐生 > 目录 16命令行实用程序 16.1位图文件格式转换:any2ppm. 16.2从矢量场生成数据表:avf2odt. 16.3矢量场文件格式转 ...

  8. 算法笔记-桶排序代码与原理、非比较排序、计数排序、基数排序、C#代码

    1. 计数排序 原理: 计数排序需要用到桶,其核心是不通过比较来获得数的大小,以桶的方式存数来计数 举例来说,一个数组是{3 2 2 1 3 5},共6个数,那么我们需要准备5个有序桶,即1号桶.2号 ...

  9. ansys fluent udf manual 下载_Fluent内置流固耦合01 使用流程

    本文介绍如何在Fluent中对单向和双向流固耦合(FSI)进行建模和仿真计算.由于所有的流体与结构计算都是由Fluent完成的,因此这种流固耦合又被称为"内置流固耦合".在ANSY ...

最新文章

  1. 织梦内容管理系统(DedeCMS)
  2. 2018蓝桥杯省赛---java---B---2(方格计数)
  3. 《你的灯亮着吗?》个人总结
  4. Android系统(2)---init.rc知识
  5. 2009年度工作安排计划
  6. centos lamp
  7. 网易云接口手机号验证码验证登录
  8. Eel初次使用示例(使用Scala读取Hive表)
  9. AI绘图网站 MJ(Midjourney) 基础讲解+注册教程
  10. 宏碁暗影骑士擎AN515-58原厂预装Windows11恢复镜像oem系统
  11. 20. [Python GUI] PyQt5中的模型与视图框架-实现一个简单的文件浏览器的例子
  12. 总离差平方和公式_excel公式怎么用:用EXCEL求离差平方和 和 相关系数
  13. 数据挖掘需要什么数学基础(一)
  14. NI Vision:二值图像连通域标记算法
  15. 英雄杀小程序微信区分服务器吗,小程序英雄杀挑战模式怎么玩
  16. matlab 实验四 数据处理与多项式计算
  17. zdm各命令的功能和作用_ZDM快捷键大全专业功能类
  18. 区块链之旅(二)以太坊、超级账本、公链、联盟链
  19. iOS中使用c函数快速获取一个目录所占的空间大小
  20. likou654最大二叉树

热门文章

  1. docker 修改阿里镜像源_Jetson Nano 修改源镜像
  2. 缓存机制 java_缓存机制:java中缓存的原理
  3. linux运维趋势 37期刊为啥没有,linux运维常见问题
  4. php网页连mysql_php - 如何在单个网页上连接多个MySQL数据库?
  5. Java JSON对象怎么遍历_Java遍历JsonObject对象
  6. 华科计算机课程设计,华中科大操作系统课程设计报告(附源码).doc
  7. php强制对齐,[强迫症福利] 使用 PHPStorm 对齐数组的键值对
  8. mysql 5.5 免安装_mysql 5.5.56免安装版配置方法
  9. [mybatis]映射文件_select_resultMap_关联查询_association分步查询延迟加载
  10. 高等数学上-赵立军-北京大学出版社-题解-练习5.3