【大连民族大学C语言CG题库练习题】——判断一个矩阵是另一个矩阵的子矩阵
【问题描述】
从标准输入中输入一个N(N<=9)阶矩阵和一个M(M<=N)阶矩阵,判断矩阵M是否是N的子矩阵,若是则输出M在N中的起始位置,若不是则输出-1。若矩阵M能与N中某一区域完全相等,则称M是N的子矩阵。
【输入形式】
从标准输入读取矩阵。
第一行只有一个整数N,代表第一个矩阵的阶数。后续有N行输入,每行有N个以若干空格分隔的整数,代表该矩阵在该行上的所有元素。
输入完N阶矩阵后,再在下一行输入一个整数M,代表第二个矩阵的阶数。后续有M行输入,每行有M个以若干空格分隔的整数,代表该矩阵在该行上的所有元素。
【输出形式】
输出M在N中的起始位置,即N中的第几行第几列,两个数字用逗号“,”分隔(从第1行第1列开始计数,即:矩阵第一个元素的位置为:1,1。
若N有多个子矩阵与M矩阵完全相同,则输出首先找到的起始位置,即行最小的位置,若行相同,则为列最小的位置。
若M不是N的子矩阵,则输出-1。
【样例输入】
6
3 9 15 25 -9 0
36 102 2 5 67 89
8 12 58 6 53 456
67 7 895 -12 65 -83
-56 812 25 0 72 61
4 71 69 -4 341 970
3
6 53 456
-12 65 -83
0 72 61
【样例输出】
3,4
【样例说明】
第一个矩阵为6阶矩阵,第二个矩阵为3阶矩阵,第二个矩阵与第一个矩阵的某个子矩阵(起始位置为第3行第4列的3阶矩阵)完全相同,故输出3,4,行列数用逗号隔开。
【评分标准】
该题要求输出M矩阵在N矩阵的起始位置。上传C语言文件名为example2b.c。
#include <stdio.h>
int main()
{int n;scanf("%d",&n);int a[n][n];int i,j;for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);}}int m;scanf("%d",&m);int b[m][m];for(i=0;i<m;i++){for(j=0;j<m;j++){scanf("%d",&b[i][j]);}}int p,q;int res=0;int flag=m*m;int len=0;int mark[100][2];for(p=0;p<n-m+1;p++){for(q=0;q<n-m+1;q++){len=0;for(i=p;i<p+m;i++){for(j=q;j<q+m;j++){if(a[i][j]==b[i-p][j-q]){len++;
// printf("%d %d=%d %d\n",i,j,i-p,j-p);}}}
// printf("%d\n",len);if(len==flag){mark[res][0]=p;mark[res][1]=q;res++;}}}if(res==0){printf("-1");return 0;}int temp;for(i=1;i<res;i++){for(j=0;j<res-i;j++){if(mark[j][0]<mark[j+1][0]){temp=mark[j][0];mark[j][0]=mark[j+1][0];mark[j+1][0]=temp;}}}for(i=1;i<res;i++){for(j=0;j<res-i;j++){if(mark[j][1]<mark[j+1][1]){temp=mark[j][1];mark[j][1]=mark[j+1][1];mark[j+1][1]=temp;}}}printf("%d,%d",mark[0][0]+1,mark[0][1]+1);return 0;
}
但是我的代码存在边界的问题,以下样例无法通过,欢迎大佬改正指教
期望输入
2
5 5
6 6
1
6
期望输出
2,1
我的输出
2,2
相关文章:
【大连民族大学C语言CG题库练习题】——判断一个矩阵是另一个矩阵的子矩阵
【问题描述】 从标准输入中输入一个N(N<9)阶矩阵和一个M(M<N)阶矩阵,判断矩阵M是否是N的子矩阵,若是则输出M在N中的起始位置,若不是则输出-1。若矩阵M能与N中某一区域完全相等࿰…...
C#WPF控制模板实例
一、控制模板 ControlTemplate(控件模板)不仅是用于来定义控件的外观、样式, 还可通过控件模板的触发器(ControlTemplate.Triggers)修改控件的行为、响应动画等。 控件模板定义控件的视觉外观,所有的 UI 元素都具有某种外观和行为,例如,Button 具有外观和行为。单击事件或…...
MATLAB Simulink和S7-1200PLC MOBUSTCP通信
MATLAB Simulink和SMART PLC OPC通信详细配置请查看下面文章链接: MATLAB和西门子SMART PLC OPC通信-CSDN博客文章浏览阅读749次,点赞26次,收藏2次。西门子S7-200SMART PLC OPC软件的下载和使用,请查看下面文章Smart 200PLC PC Access SMART OPC通信_基于pc access smart的…...
五、函数的介绍
1、为什么需要函数 (1)当程序足够简单时,一个main函数就可以实现所有功能。随着程序功能的增加、复杂化,超出人的大脑的承受范围,这时一个main函数可能就逻辑不清了。这是就需要把一个大程序分成许多小的模块来组织,于是乎出现了…...
【广州华锐互动VRAR】VR元宇宙技术在气象卫星知识科普中的应用
随着科技的不断发展,虚拟现实(VR)和元宇宙等技术正逐渐走进我们的生活。这些技术为我们提供了一个全新的互动平台,使我们能够以更加直观和生动的方式了解和学习各种知识。在气象天文领域,VR元宇宙技术的应用也日益显现…...
F. Alex‘s whims Codeforces Round 909 (Div. 3) 1899F
Problem - F - Codeforces 题目大意:有q次询问,每次询问给出一个数x,要求构造一棵n个点的树,使得对于每次询问,树上都有一条简单路径的长度等于x,同时每次询问前可以对树进行一次操作,即将一个…...
面试题-5
1.用递归的时候有没有遇到什么问题? 如果一个函数内可以调用函数本身,那么这个就是递归函数 函数内部调用自己 特别注意:写递归必须要有退出条件return 2.如何实现一个深拷贝 深拷贝就是完全拷贝一份新的对象,会在堆内存中开辟新的空间,拷贝的对象被修改后&…...
车载以太网-ARP
文章目录 车载以太网ARP协议ARP协议帧格式ARP报文示例ARP报文完整流程ARP流程报文示例ARP协议测试 车载以太网ARP协议 车载以太网ARP协议是指在车载以太网中使用的ARP协议。ARP(Address Resolution Protocol)是一种用于将IP地址解析为MAC地址的协议。在…...
Kafka学习笔记(三)
目录 第5章 Kafka监控(Kafka Eagle)5.2 修改kafka启动命令5.2 上传压缩包5.3 解压到本地5.4 进入刚才解压的目录5.5 将kafka-eagle-web-1.3.7-bin.tar.gz解压至/opt/module5.6 修改名称5.7 给启动文件执行权限5.8 修改配置文件5.9 添加环境变量5.10 启动…...
JVM-HotSpot虚拟机对象探秘
目录 一、对象的实例化 (一)创建对象的方式 (二)创建对象的步骤 二、对象的内存布局 (一)对象头 (二)实例数据 (三)对齐填充 三、 对象的访问定位 &…...
大模型技术的发展:开源和闭源,究竟谁强谁弱又该何去何从?
一、开源和闭源的优劣势比较 开源和闭源软件都有各自的优劣势,具体比较如下: 安全性:闭源软件的安全性相对较高,因为其源代码不公开,攻击者难以找到漏洞进行攻击。而开源软件由于源代码公开,容易被攻击者发…...
Python学习笔记--自定义元类
四、自定义元类 到现在,我们已经知道元类是什么鬼东西了。 那么,从始至终我们还不知道元类到底有啥用。 只是了解了一下元类。 在了解它有啥用的时候,我们先来了解下怎么自定义元类。 因为只有了解了怎么自定义才能更好的理解它的作用。…...
软件测试 —— 常见的自动化测试架构!
一个自动化测试架构就是一个集成体系,其中定义了一个特殊软件产品的自动化测试规则。这一体系中包含测试功能函数库、测试数据源、测试对象识别标准,以及各种可重用的模块。这些组件作为小的构建模块,被组合起来代表某种商业流程。自动化测试…...
Python 的 @lru_cache() 装饰器
在 Python 标准库的 functools 模块中,有个 lru_cache 装饰器,用于为一个函数添加缓存系统: 存储函数的输入和对应的输出当函数被调用,并且给出了已经缓存过的输入,那么函数不会再运行,而是直接从缓存中获…...
Swift制作打包framework
新建framework项目 设置生成fat包,包括模拟器x86_64和arm64 Buliding Settings -> Architectures -> Build Active Architecture Only 设置为NO 设置打包环境,选择release edit Scheme -> run -> Build configuration 设置为 Release 设置…...
无线WiFi安全渗透与攻防(N.2)WPA渗透-使用airolib-ng创建彩虹表加速
WPA渗透-使用airolib-ng创建彩虹表加速 WPA渗透-使用airolib-ng创建彩虹表加速1.什么是彩虹表?2.渗透wifi1.创建数据库名2.将字典导入数据库3.生成渗透wifi密码的PMK4.生成需要渗透wifi的彩虹表5.渗透wifiWPA渗透-使用airolib-ng创建彩虹表加速 1.什么是彩虹表? 彩虹表是一…...
整形数据和浮点型数据在内存中的存储差别
愿所有美好如期而遇 我们先来看代码,猜猜结果是什么呢? int main() {//以整型数据的方式存储int n 10;float* m (float*)&n;//以整型数据的方式读取printf("%d\n", n);//以浮点型数据的方式2读取printf("%f\n", *m);printf(&…...
【Python基础篇】运算符
博主:👍不许代码码上红 欢迎:🐋点赞、收藏、关注、评论。 格言: 大鹏一日同风起,扶摇直上九万里。 文章目录 一 Python中的运算符二 算术运算符1 Python所有算术运算符的说明2 Python算术运算符的所有操作…...
开启数据库审计 db,extended级别或os级别)并将审计文件存放到/opt/oracle/audit/下
文章目录 1、登录到数据库2、查看审计状态3、创建审计目录4、启用审计5、设置审计文件路径6、再次查看结果 1、登录到数据库 使用SQL*Plus或者其他Oracle数据库客户端登录到数据库。 sqlplus / as sysdba;2、查看审计状态 show parameter audit;目前是DB状态,并且…...
02.webpack中多文件打包
1.module,chunk,bundle的区别 moudle - 各个源码文件,webpack中一切皆是模块chunk - 多模块合并成的,如entry, import(), splitChunkbundle - 最终的输出文件 2.多文件打包配置 2.1 webpack.common.js const path require(path) const HtmlWebpackPl…...
pybind11进阶指南:如何高效封装C++类供Python调用(附常见问题解决方案)
pybind11进阶指南:如何高效封装C类供Python调用(附常见问题解决方案) 在当今高性能计算和科学计算领域,C与Python的结合已成为开发者工具箱中不可或缺的组合。C提供底层性能优势,而Python则以其简洁语法和丰富生态著称…...
抖音音乐高效解决方案:douyin-downloader批量下载与智能管理指南
抖音音乐高效解决方案:douyin-downloader批量下载与智能管理指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...
Qwen3-TTS快速部署教程:一键启动Web服务,3分钟开始声音克隆
Qwen3-TTS快速部署教程:一键启动Web服务,3分钟开始声音克隆 1. 为什么选择Qwen3-TTS进行语音克隆 想象一下这样的场景:你需要为海外客户录制多语言产品介绍,但雇佣专业配音演员成本高昂;或者想为自己的视频内容添加个…...
石油勘探中的地震波“翻译官”:如何读懂时距曲线图里的地下秘密?
石油勘探中的地震波“翻译官”:如何读懂时距曲线图里的地下秘密? 站在戈壁滩的勘探营地,望着屏幕上那些看似杂乱的波形曲线,刚入行的地质工程师小李皱起了眉头。"这些弯弯曲曲的线条,到底在诉说什么样的地下故事&…...
5分钟成为效率大师!NoteGen快捷键可视化配置终极指南
5分钟成为效率大师!NoteGen快捷键可视化配置终极指南 【免费下载链接】note-gen 一款专注于记录和写作的跨端 AI 笔记应用。 项目地址: https://gitcode.com/GitHub_Trending/no/note-gen NoteGen是一款专注于记录和写作的跨端AI笔记应用,通过快捷…...
5个关键步骤:使用SMUDebugTool解决AMD Ryzen硬件调试难题
5个关键步骤:使用SMUDebugTool解决AMD Ryzen硬件调试难题 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…...
基于 SpringBoot 的自助图书借阅管理系统源码讲解
以下是一个基于 SpringBoot 的自助图书借阅管理系统的 核心源码讲解,涵盖用户管理、图书管理、借阅管理、设备对接等关键模块,代码结构清晰,可直接用于学习或二次开发。一、项目结构src/main/java/com/library/ ├── config/ # 配…...
Sunshine开源游戏串流:打造你的专属云游戏服务器终极指南
Sunshine开源游戏串流:打造你的专属云游戏服务器终极指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在任何设备上畅玩PC游戏?厌倦了被商业云游戏平…...
Hi3559平台ISP调试实战:从参数配置到画质优化
1. Hi3559平台ISP基础概念与工作原理 第一次接触Hi3559平台的ISP模块时,我完全被各种专业术语搞晕了。后来在调试车载摄像头项目时才发现,理解ISP的工作原理对画质优化有多重要。简单来说,ISP就像是我们手机里的美颜功能,只不过它…...
相场法模拟枝晶生长的karma模型研究:基于Matlab的实现
相场法模拟枝晶生长,karma模型,matlab咱们今天来玩点好玩的——用Matlab搞个金属凝固过程的枝晶生长模拟。相场法这玩意儿真是材料模拟界的万金油,特别是Karma模型,处理枝晶分岔那叫一个丝滑。先整点基础配置: % 基础参…...
