当前位置: 首页 > news >正文

总结3..

 #include<stdio.h>

int n,m;

int a[1002][1002];

int b[1002][1002];//判断该空的八连通图是否被走过 

int gg=0; 

int dd=0; 

int xz[8]={-1,-1,-1,0,0,1,1,1},yz[8]={-1,0,1,-1,1,-1,0,1};//八个方向 

void dfs(int x,int y)

{

 int dx,dy;

 for(int i=0;i<8;i++)

 {

   dx=x+xz[i];

   dy=y+yz[i];

  if(dx>=0&&dx<n&&dy>=0&&dy<m&&a[dx][dy]==0&&b[dx][dy]==0)

  {

   b[dx][dy]=1;

   dfs(dx,dy);

  }

 }

}

void ww(int x,int y)

{

 for(int i=0;i<8;i++)

 {

 int p=x+xz[i];

 int q=y+yz[i];

 if(p>=0&&p<n&&q>=0&&q<m&&a[p][q]!=-1)

 a[p][q]++; 

 }

}

int ff(int x,int y)

{

 for(int i=0;i<8;i++)

 {

  int xx=x+xz[i];

     int yy=y+yz[i];

   if(xx>=0&&xx<n&&yy>=0&&yy<m&&a[xx][yy]==0)

   return 0;

 } 

 return 1;

 

int main()

{

 int hh;

 scanf("%d %d",&n,&m);

 for(int i=0;i<n;i++)

 {

  for(int j=0;j<m;j++)

  {

   scanf("%d",&a[i][j]);

   if(a[i][j]==1)

   a[i][j]=-1;

  }

 }

 for(int i=0;i<n;i++)

 {

  for(int j=0;j<m;j++)

  {

  if(a[i][j]==-1)

  ww(i,j); 

  } 

 }

 for(int i=0;i<n;i++)

 {

  for(int j=0;j<m;j++)

  {

   if(a[i][j]!=0&&a[i][j]!=-1&&ff(i,j)) 

   dd++;

  } 

 } 

 for(int i=0;i<n;i++)

 {

  for(int j=0;j<m;j++)

  {

   if(a[i][j]==0&&b[i][j]==0)

   {

    gg++;

    dfs(i,j);

   }

  }

 }

 printf("%d",gg+dd);

 return 0;

}

 #include <stdio.h>

#include <string.h>

// 定义全局变量n和m,分别表示地图的行数和列数

// b数组用于标记每个位置是否已经被访问过,初始化为0表示未访问

// x1, y1, x2, y2 分别用于记录起点(Y)和终点(M)的坐标

int n, m, b[203][203] = {0}, x1, y1, x2, y2;

// 定义方向数组d,用于表示上下左右四个方向的偏移量

// 分别是向右(0, 1),向下(1, 0),向左(-1, 0),向上(0, -1)

int d[4][2] = { {0, 1}, {1, 0}, {-1, 0}, {0, -1}};

// 字符数组a用于存储地图信息

char a[203][203];

 

// 定义队列结构体,包含横坐标dx和纵坐标dy

struct queue {

    int dx;

    int dy;

} q[50000];

 

// 广度优先搜索函数,从坐标(x, y)开始进行搜索

// c数组用于记录从起点到各个位置的步数

void bfs(int x, int y, int c[][203]) {

    // 初始化队列的头指针f和尾指针r,f指向队列头部,r指向队列尾部的下一个位置

    int f = 0, r = 1;

    // 将起始点的坐标存入队列

    q[1].dx = x;

    q[1].dy = y;

    // 标记起始点已经被访问过

    b[x][y] = 1;

    // 当队列不为空时,进行循环

    while (f < r) {

        // 取出队列头部的点,头指针后移

        f++;

        // 计算当前位置下一步的步数,是当前位置的步数加1

        int s = c[q[f].dx][q[f].dy] + 1;

        // 尝试向四个方向进行扩展

        for (int i = 0; i < 4; i++) {

            // 计算扩展后的新坐标

            int nx = q[f].dx + d[i][0];

            int ny = q[f].dy + d[i][1];

            // 判断新坐标是否在地图范围内,且未被访问过,并且不是障碍物('#')

            if (nx >= 0 && nx < n && ny >= 0 && ny < m && b[nx][ny] == 0 && a[nx][ny] != '#') {

                // 将新点加入队列,尾指针后移

                r++;

                // 标记新点已经被访问过

                b[nx][ny] = 1;

                // 将新点的坐标存入队列

                q[r].dx = nx;

                q[r].dy = ny;

                // 记录新点到起点的步数

                c[nx][ny] = s;

            }

        }

    }

}

 

int main() {

    // 当成功读取到地图的行数n和列数m时,进入循环

    while (scanf("%d %d", &n, &m) == 2) {

        // 读取地图的每一行信息

        for (int i = 0; i < n; i++) {

            scanf("%s", a[i]);

        }

        // 遍历地图,找到起点(Y)和终点(M)的坐标

        for (int i = 0; i < n; i++) {

            for (int j = 0; j < m; j++) {

                // 如果当前位置是起点(Y),记录其坐标

                if (a[i][j] == 'Y') x1 = i, y1 = j;

                // 如果当前位置是终点(M),记录其坐标

                else if (a[i][j] == 'M') x2 = i, y2 = j;

            }

        }

        // 定义两个二维数组c1和c2,分别用于记录从起点和终点到各个位置的步数,初始化为0

        int c1[203][203] = {0}, c2[203][203] = {0};

        // 重置访问标记数组b,将所有位置标记为未访问

        memset(b, 0, sizeof(b));

        // 从起点开始进行广度优先搜索,记录起点到各个位置的步数

        bfs(x1, y1, c1);

        // 再次重置访问标记数组b

        memset(b, 0, sizeof(b));

        // 从终点开始进行广度优先搜索,记录终点到各个位置的步数

        bfs(x2, y2, c2);

        // 初始化最小步数为一个较大的值

        int min = 100000;

        // 遍历地图,找到所有目标点('@'),并计算从起点和终点到该点的步数之和

        for (int i = 0; i < n; i++) {

            for (int j = 0; j < m; j++) {

                // 如果当前位置是目标点('@'),并且当前步数之和小于最小步数,且步数之和不为0

                if (a[i][j] == '@' && (min > c1[i][j] + c2[i][j]) && (c1[i][j] + c2[i][j])) {//标记那处非常关键

                    // 更新最小步数

                    min = c1[i][j] + c2[i][j];

                }

            }

        }

        // 输出最小步数乘以11的结果

        printf("%d\n", min * 11);

    }

    return 0;

}

 

#include<stdio.h>

int n,k,a[25]={0},cnt=0;

int p(int num){

 int z=1;

 if(num<2)z=0;

 for(int i=2;i*i<=num;i++){

  if(num%i==0){

   z=0;

   break;

  }

 }

 return z;

}

void dfs(int f,int num,int sum){

 if(num==0){

  if(p(sum))cnt++;

  return ;

 }

 if(n-f+1<num)return;

 for(int i=f;i<=n;i++){

  dfs(i+1,num-1,sum+a[i]);

 }

}

int main()

{

 scanf("%d %d",&n,&k);

 for(int i=1;i<=n;i++){

  scanf("%d",&a[i]);

 }

 dfs(1,k,0);

 printf("%d\n",cnt);

 return 0;

}

今天在洛谷练了几道搜索题,无习巩固了队列和站的相关知识点,回顾了一下归并算法和快速排序法

 

相关文章:

总结3..

#include<stdio.h> int n,m; int a[1002][1002]; int b[1002][1002];//判断该空的八连通图是否被走过 int gg0; int dd0; int xz[8]{-1,-1,-1,0,0,1,1,1},yz[8]{-1,0,1,-1,1,-1,0,1};//八个方向 void dfs(int x,int y) { int dx,dy; for(int i0;i<8;i) { …...

信息奥赛一本通 1168:大整数加法

这道题是一道大整数加法&#xff0c;涉及到高精度的算法&#xff0c;比如说有两个数要进行相加&#xff0c;1111111111111111111111111111111111111112222222222222222222222222222222&#xff0c;那么如果这两个数很大的话我们常用的数据类型是不能进行计算的&#xff0c;那么…...

3.3 OpenAI GPT-4, GPT-3.5, GPT-3 模型调用:开发者指南

OpenAI GPT-4, GPT-3.5, GPT-3 模型调用:开发者指南 OpenAI 的 GPT 系列语言模型,包括 GPT-4、GPT-3.5 和 GPT-3,已经成为自然语言处理领域的标杆。无论是文本生成、对话系统,还是自动化任务,开发者都可以通过 API 调用这些强大的模型来增强他们的应用。本文将为您详细介…...

横盘出击的三种经典走势形态,买点以及需要注意的问题技术详解

龙头股在横盘整理过程中&#xff0c;也会出现几种不同的形态&#xff0c;比如矩形整理形态&#xff0c;或者在某一趋势线下方运行。 第一种形态&#xff1a;突破横盘趋势线 突破横盘趋势线时识别横盘龙头启动的关键点位。股价经过一段时间的横盘后&#xff0c;突然出现快速上…...

处理没有提示的字符串、计算相隔天数应用题

正常情况下&#xff0c;小云每天跑 1 千米。如果某天是周一或者月初&#xff08;1 日&#xff09;&#xff0c;为了激励自己&#xff0c;小云要跑 2 千米。如果同时是周一或月初&#xff0c;小云也是跑 2 千米。 小云跑步已经坚持了很长时间&#xff0c;从 1990 年 1 月 1 日周…...

【LeetCode】力扣刷题热题100道(31-35题)附源码 搜索二维矩阵 岛屿数量 腐烂的橙子 课程表 实现 Trie (前缀树)(C++)

一、搜索二维矩阵 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 可以使用 从右上角开始搜索 的方法来有效地找到目标值。 选择起始位置&#xff1a; 从矩…...

react使用react-redux状态管理

1、安装 npm install react-redux2、创建store.js import { createStore } from redux;// 定义初始状态 const initialState {counter: 888 };// 定义 reducer 函数&#xff0c;根据 action 类型更新状态 function reducer(state initialState, action) {switch (action.ty…...

04_角色创建窗口

将上文的登录窗口隐藏 创建空节点 作为创建角色窗口 命名为CreateWnd 创建输入的名字的输入框 再创建一个按钮用来随机角色名字 创建开始游戏按钮 End....

Dockerfile -> Docker image -> Docker container

1. Dockfile -> Docker image docker build -t shuai_image -f xxx/xxx/Dockerfile . (.不能少)出现&#xff1a; [] Building xxx(10/17) > [internal] load build definition from Dockerfile > > transferring dockerfile: … > > transferring context …...

LDN的蓝牙双模键盘帮助文档

文档索引 已支持的PCB列表(仅列出少部分)&#xff1a;键盘特性硬件软件键盘以及驱动蓝牙模式USB模式 驱动功能介绍主界面键盘列表页面键盘配置&#xff08;使用双模键盘的请务必细看本说明&#xff09;功能层配置(改键)触发层配置(改FN键等触发功能)功能选择&#xff08;重要&a…...

搭建一个基于Spring Boot的驾校管理系统

搭建一个基于Spring Boot的驾校管理系统可以涵盖多个功能模块&#xff0c;例如学员管理、教练管理、课程管理、考试管理、车辆管理等。以下是一个简化的步骤指南&#xff0c;帮助你快速搭建一个基础的系统。 1. 项目初始化 使用 Spring Initializr 生成一个Spring Boot项目&am…...

运动相机拍视频过程中摔了,导致录视频打不开怎么办

3-11 在使用运动相机拍摄激烈运动的时候&#xff0c;极大的震动会有一定概率使得保存在存储卡中的视频出现打不开的情况&#xff0c;原因是存储卡和相机在极端情况下&#xff0c;可能会出现接触不良的问题&#xff0c;如果遇到这种问题&#xff0c;就不得不进行视频修复了。 本…...

MongoDB vs Redis:相似与区别

前言 在当今的数据库领域&#xff0c;MongoDB 和 Redis 都是备受关注的非关系型数据库&#xff08;NoSQL&#xff09;&#xff0c;它们各自具有独特的优势和适用场景。本文将深入探讨 MongoDB 和 Redis 的特点&#xff0c;并详细对比它们之间的相似之处和区别&#xff0c;帮助…...

数字图像处理:实验二

任务一&#xff1a; 将不同像素&#xff08;32、64和256&#xff09;的原图像放大为像素大 小为1024*1024的图像&#xff08;图像自选&#xff09; 要求&#xff1a;1&#xff09;输出一幅图&#xff0c;该图包含六幅子图&#xff0c;第一排是原图&#xff0c;第 二排是对应放大…...

基于海思soc的智能产品开发(高、中、低soc、以及和fpga的搭配)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 市场上关于图像、音频的soc其实非常多&#xff0c;这里面有高、中、低档&#xff0c;开发方式也不相同。之所以会这样&#xff0c;有价格的因素&am…...

SSM旅游信息管理系统

&#x1f345;点赞收藏关注 → 添加文档最下方联系方式可咨询本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345; 项目视频 …...

FastADMIN实现网站启动时执行程序的方法

FastAdmin基于ThinkPHP框架&#xff1a;ThinkPHP框架中与 Application_Start 类似的功能可以在应用初始化钩子&#xff08;Hook&#xff09;中实现。在FastAdmin项目中&#xff0c;一般在应用的 common.php 文件中定义行为&#xff08;Behavior&#xff09;来实现类似功能。 定…...

【威联通】FTP服务提示:服务器回应不可路由的地址。被动模式失败。

FTP服务器提示&#xff1a;服务器回应不可路由的地址。被动模式失败。 问题原因网络结构安全管理配置服务器配置网关![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1500d9c0801247ec8c89db7a44907e4f.png) 问题 FTP服务器提示&#xff1a;服务器回应不可路由的地址…...

nginx常用配置 (含负载均衡、反向代理、限流、Gzip压缩、图片防盗链 等示例)

nginx的配置文件通常在 /etc/nginx/nginx.conf , /etc/nginx/conf.d/*.conf 中&#xff0c; 一般直接 改 conf.d目录下的 default.conf文件&#xff0c; 然后 先检测配置文件是否有错误 nginx -t 再重新加载配置文件 或 重启nginx&#xff0c;命令如下 nginx -s reload 或…...

21.1、网络设备安全概述

目录 网络设备安全概况——交换机、路由器安全威胁 网络设备安全概况——交换机、路由器安全威胁 第一个是MAC地址泛洪&#xff0c;MAC地址表记录着交换机拥有的MAC地址跟端口的对应关系 MAC地址表主要是三个字段&#xff0c;MAC地址对应的端口号&#xff0c;也就表示主机是连…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...