搜索题解

单词方阵 - 洛谷

思路:在字符方阵中找到y并将其坐标存入数组,再找其八个方向是否有目标字符,有的话就深搜一个方向,能搜完就将数组标记,最好标记的就输入字符,没标记的就输出*。

代码如下:

#include<stdio.h>
int next1[8][2]={{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};
char s[8]={'y','i','z','h','o','n','g'},s1[110][110];
int sx[1111111],sy[1111111],book[111][111];
int dfs(int x,int y,int n,int m)
{m++;if(m>=7){return 1;}int tx1,ty1;tx1=x+next1[n][0];ty1=y+next1[n][1];if(s1[tx1][ty1]==s[m]){book[tx1][ty1]+=dfs(tx1,ty1,n,m);return book[tx1][ty1];}return 0;
}
int main()
{int t,k=1;scanf("%d",&t);for(int i=1;i<=t;i++){scanf("%s",s1[i]);}for(int i=1;i<=t;i++){for(int j=0;j<t;j++){if(s1[i][j]==s[0]){sx[k]=i;sy[k]=j;k++;}}}for(int i=1;i<k;i++){for(int j=0;j<8;j++){int tx=sx[i]+next1[j][0];int ty=sy[i]+next1[j][1];if(s1[tx][ty]==s[1]){book[tx][ty]+=dfs(tx,ty,j,1);book[sx[i]][sy[i]]+=dfs(tx,ty,j,1);}}}for(int i=1;i<=t;i++){for(int j=0;j<t;j++){if(book[i][j]>=1)printf("%c",s1[i][j]);elseprintf("*");}printf("\n");}return 0;
}

[USACO08FEB] Meteor Shower S - 洛谷

思路:先初始化地图time数组为10000,然后输入坐标和爆炸时间,判断此点以及周围4个点的爆炸时间会不会小于原本的时间,小于则更新此点地图time数组,标记初始点,找点,如果有一个点数值为10000,那么这就是安全的,输出这一点时间即可,如果最后点都用完了还没找到就输出-1.

代码如下:

#include<stdio.h>
#include<queue>
using namespace std;
int next1[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
int time[305][305],book[305][305];
queue<int>q1,q2,time1;
int main()
{for(int i=0;i<=302;i++){for(int j=0;j<=302;j++){time[i][j]=10000;}}int n;scanf("%d",&n);for(int i=0;i<n;i++){int a,s,time3;scanf("%d%d%d",&a,&s,&time3);if(time[a][s]>time3)time[a][s]=time3;for(int j=0;j<4;j++){int x,y;x=a+next1[j][0];y=s+next1[j][1];if(x>=0&&y>=0&&time3<time[x][y]){time[x][y]=time3;}}}q1.push(0);q2.push(0);time1.push(0);book[0][0]=1;while(!q1.empty()){int nx=q1.front();int ny=q2.front();int st=time1.front()+1;if(time[nx][ny]==10000){printf("%d",st-1);return 0;}if(time[nx][ny]<=st-1){q1.pop();q2.pop();time1.pop();}for(int j=0;j<4;j++){int tx,ty;;tx=nx+next1[j][0];ty=ny+next1[j][1];if(tx>=0&&ty>=0&&book[tx][ty]==0&&time[tx][ty]>st){q1.push(tx);q2.push(ty);time1.push(st);book[tx][ty]=1;}}q1.pop();q2.pop();time1.pop();}printf("-1");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 拷贝文件到指定目录 命令

在 Linux 中&#xff0c;使用 cp 命令可以拷贝文件到指定目录。下面是 cp 命令的基本用法&#xff1a; bash cp [选项] 源文件 目标目录 - 选项&#xff1a;可以是一些附加的选项&#xff0c;例如 -r 表示递归拷贝&#xff08;用于复制目录&#xff09;。 - 源文件&#xff1a…

javascript中的class基础入门(1)

javascript中的class start 最近在学习&#xff1a;cocos &#xff0c;准备自己制作小游戏。过程中遇到不少疑问&#xff0c;我计划将这些疑问写成一个系列博客&#xff0c;用以记录。这篇文章来了解 class 1. 前言 1. 前言 本文对应版本 Cocos Creator 3.8。Cocos Creato…

【Sql server】假设有三个字段a,b,c 以a和b分组,如何查询a和b唯一,但是c不同的记录

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对…

2_SQL

文章目录 SQL数据完整性实体完整性域完整性参照完整性default&#xff08;默认值&#xff09;comment&#xff08;注释&#xff09; 多表设计一对一一对多多对多数据库三大范式第一范式&#xff1a;原子性第二范式&#xff1a;唯一性第三范式&#xff1a;数据的冗余 多表查询连…

JQMobile Loader Widget 遮罩层改造

最近在用jqmobile 做一个混合APP项目时候用到 jqmobile1.4.3提供的Loader Widget控件,但是这个控件本身是一个loading弹出层,这个弹出层弹出之后,用户还是可以去点击按钮,重复发送请求,为了防止重复提交,我想了两种办法, 1,在loading弹出层弹出之后,让按钮不可用.但是form表单…

记录SSM项目集成Spring Security 4.X版本 之 加密验证和记住我功能

目录 前言 一、用户登录密码加密认证 二、记住我功能 前言 本次笔记的记录是接SSM项目集成Spring Security 4.X版本 之 加入DWZ,J-UI框架实现登录和主页菜单显示-CSDN博客https://blog.csdn.net/u011529483/article/details/136255768?spm1001.2014.3001.5502 文章之后补…

Python列表的合并、重复、判断与切片操作你学会了吗

1.合并列表 通过 实现 list1 ["佛跳墙", "肠粉", "刀削面", "烤鸭"]list2 [32, 4, 5, 7.43, True]list3 list1 list2print(list3) # [佛跳墙, 肠粉, 刀削面, 烤鸭, 32, 4, 5, 7.43, True] 2.重复输出列表中的元素 通过 * 实…

fastadmin 前端日期字段的添加和编辑

引言 fastadmin 项目中如果需要用到datetime字段的维护&#xff0c;可做如下处理&#xff1a; 1. add.html <div class"form-group"><label class"control-label col-xs-12 col-sm-2">{:__(开始)}:</label><div class"col-x…

vue3 中 主题定制

vue3 中 主题定制 背景 做多主题定制&#xff0c;黑/白 &#xff0c;里面还要再分各种颜色&#xff0c;每次进来都要记住上次的主题设置 效果图 一、目录结构 ├── generated │ ├── theme │ │ └── dark-yellow.ts │ │ └── dark-orange.ts │ │…

C++考试成绩统计(类实现)

题目&#xff1a;有三名同学&#xff0c;在一次考试中三科成绩分别如下表&#xff0c;请输出三名同学的平均成绩&#xff1a; 语文数学英语张三100100100李四9050100王五607080 #include <iostream> #include <string> /*考试成绩统计*/ using namespace std;cla…

力扣:120. 三角形最小路径和

动态规划 1.先定义dp数组在下标i和下标j时的最小路径和 &#xff0c;之后初始化dp数组值dp【0】【0】triangle.get(0).get(0)。再用for循环来遍历数组dp【】的i&#xff0c;并赋值每行的下标为0的dp数组。之后再用for循环遍历dp【i】【】的j&#xff0c;递推公式来计算dp【i】…

「算法」常见位运算总结

位运算符 异或 按位异或可以实现无进位相加&#xff0c;所谓无进位相加&#xff0c;就是在不考虑进位的情况下将两个数相加&#xff08;后面有道题需要用到这种操作&#xff09; 异或的运算律 ①a ^ 0 a ②a ^ a 0 ③a ^ b ^ c a ^ ( b ^ c ) 有符号右移>> 将一个…

IDEA切换 Springboot初始化 URL

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

Android基础控件介绍

在Android应用程序开发中&#xff0c;使用基础控件是非常常见的。这些控件允许您在用户界面中显示文本、图像、按钮等元素&#xff0c;以及接收用户输入。本文将介绍几种常见的基础控件&#xff0c;并给出每个控件在示例XML中使用的属性的详细说明。 1. TextView TextView 是…

云计算 2月20号 (认识操作系统)

1、认识操作系统 计算机系统的组成 知识点1&#xff1a;没有软件系统的计算机称之为"裸机" 知识点2&#xff1a;裸机提供基本的可计算性资源 知识点3&#xff1a;操作系统是最靠近硬件的软件层&#xff0c;负责管理和控制计算机硬件。 计算机硬件组成五大部件 运算器…

Chat GPT:智能对话的下一步

Chat GPT&#xff1a;智能对话的下一步 介绍 Chat GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种基于Transformer架构的强大对话模型&#xff0c;可以产生自然流畅的回答&#xff0c;并实现人机对话的感觉。本文将探讨Chat GPT在智能对话领域的影响和…

代码随想录算法刷题训练营day29:LeetCode(491)递增子序列、LeetCode(46)全排列、LeetCode(47)全排列 II

代码随想录算法刷题训练营day29&#xff1a;LeetCode(491)递增子序列、LeetCode(46)全排列、LeetCode(47)全排列 II LeetCode(491)递增子序列 题目 代码 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; im…

2024年AI全景预测

欢迎来到 2024 年人工智能和技术的可能性之旅。 在这里&#xff0c;每一个预测都是一个潜在的窗口&#xff0c;通向充满创新、变革、更重要的是类似于 1950 年代工业革命的未来。 20 世纪 50 年代见证了数字计算的兴起&#xff0c;重塑了行业和社会规范。 如今&#xff0c;人工…

老卫带你学---leetcode刷题(242. 有效的字母异位词)

242. 有效的字母异位词 问题 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 示例 1: 输入: s “anagram”, t “nagaram” 输出: t…

力扣1143. 最长公共子序列(动态规划)

Problem: 1143. 最长公共子序列 文章目录 题目描述思路复杂度Code 题目描述 思路 我们统一标记&#xff1a;str1[i]代表text1表示的字符数组&#xff0c;str2[j]代表text2表示的字符数组&#xff1b;LCS代表最长的公共子序列&#xff1b;&#xff08;我们易得只有str1[i]和str…