取数游戏(dfs)

前言:

该题取自洛谷P1123,题主用的dfs(深度优先搜索)

题目描述:

 

数据范围:

思路: 

思路见代码,注释的很清晰嗷

AC代码:

#include <iostream>
#include <algorithm>
#include <string.h>   //memset所在头文件
//此处使用万能头也ok(题主用的VS2022,不能使用万能头qvq)
using namespace std;
int t;
int n, m;
int a[10][10];    //输入的矩阵的数
int vis[10][10] ;  //标记该数是否被使用过
int mx = 0;
void dfs(int i, int j, int sum) {//i是行,j是列,sum是总和//从第一个开始搜索,搜索完一行,进入下一行if (i == n + 1) {//i==n+1时,证明矩阵搜索完毕,进行比较mx = max(mx, sum);return;}int ii = i;  //ii,jj分别为下一个遍历的数的行和列int jj = j + 1;//当jj大于m时,该行搜索完毕,进入下一行if (jj > m) {ii++;jj = 1;}//当取该数时if (vis[i - 1][j] + vis[i-1][j + 1] + vis[i - 1][j - 1] + vis[i][j - 1] + vis[i][j] == 0) {//判断周围是否有已选择的数,因为是按顺序选择的,a[i][j]之后的数不需要判断vis[i][j] = 1;   //将该数标记为已选择的数dfs(ii, jj, sum + a[i][j]);  //递归vis[i][j] = 0;   //回溯}dfs(ii, jj, sum);  //未选择a[i][j]时,sum不需要加
}
int main() {std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> t;while (t--) {cin >> n >> m;//因为有多组数据,对mx,数组a,vis进行初始化mx = 0;   memset(a, '\0', sizeof(a));memset(vis, 0, sizeof(vis));for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cin >> a[i][j];}}dfs(1, 1, 0);  //从矩阵第一个数进行搜索cout << mx << endl;}
}

 

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

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

相关文章

Ubuntu系统使用Docker本地部署Android模拟器并实现公网访问

文章目录 1. 虚拟化环境检查2. Android 模拟器部署3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问小结 6. 固定Cpolar公网地址7. 固定地址访问 本文主要介绍如何在Ubuntu系统使用Docker部署docker-android安卓模拟器&#xff0c;并结合cpolar内网穿透工具实现公网远程访问本地…

【绩效管理】建立员工绩效考核机制,提升企业绩效管理水平

随着企业的迅猛发展&#xff0c;其内部管理问题日益突出&#xff0c;已经制约了企业的进一步发展。一方面&#xff0c;员工工作懒散、积极性不高&#xff0c;出错的次数也逐步上升&#xff0c;另一方面&#xff0c;管理者也无法有效评价员工的工作好坏。面对这些问题&#xff0…

Pillow教程11:九宫格切图的实现方法(安排!!!)

---------------Pillow教程集合--------------- Python项目18&#xff1a;使用Pillow模块&#xff0c;随机生成4位数的图片验证码 Python教程93&#xff1a;初识Pillow模块&#xff08;创建Image对象查看属性图片的保存与缩放&#xff09; Pillow教程02&#xff1a;图片的裁…

java混淆的重要性分析

Java代码混淆是一种常用的安全技术&#xff0c;它通过对Java代码进行变换和重命名&#xff0c;使得源代码变得难以理解和逆向工程&#xff0c;从而增强代码的安全性。以下是对Java混淆重要性的分析&#xff1a; 保护知识产权&#xff1a;Java混淆可以防止恶意用户或竞争对手轻易…

C++中const关键字的多种用法

在C中&#xff0c;const 是一个关键字&#xff0c;用于声明常量。它可以用于多种情况&#xff0c;包括声明常量变量、常量指针、以及成员函数中的常量性。 1.常量变量 通过在变量声明前加上 const 关键字&#xff0c;可以创建一个不可修改的常量。 例如&#xff1a; const i…

如何解决mysql死锁问题

为什么会产生死锁 Innodb 引擎为了解决「可重复读」隔离级别下的幻读问题&#xff0c;就引出了 next-key 锁。它是记录锁和间隙锁的组合。 Record Lock&#xff0c;记录锁&#xff0c;锁的是记录本身&#xff1b; Gap Lock&#xff0c;间隙锁&#xff0c;锁的就是两个值之间的…

Vue笔记 2

数据代理 数据代理&#xff1a;通过一个对象代理对另一个对象中属性的操作&#xff08;读/写&#xff09; let obj{x:100} let obj2{y:200} Object.defineProperty(obj2,x,{get(){return obj.x},set(value){obj.x value} })Vue中的数据代理 Vue中的数据代理&#xff1a; 通…

【算法】环形链表 - 遍历/双指针

题目 给定一个链表&#xff0c;判断链表中是否有环&#xff0c;并返回结果。 原理 遍历 声明一个Set&#xff0c;遍历链表放入Set&#xff0c;如果放入失败&#xff0c;说明有环。 双指针 声明一个快指针和一个慢指针&#xff0c;快指针每次移动两步&#xff0c;慢指针移…

MySQL学习笔记(三)

1、insert插入多条数据 语法&#xff1a;insert into t_user(字段名1,字段名2...) values(值1,值2...),(值1,值2...),(值1,值2...)...; 2、快速创建表 原理&#xff1a;将一个查询结果当做一张表创建&#xff0c;可以完成表的快速复制。表创建出来&#xff0c;同时表中的数据…

【计算机毕业设计】——农产品销售系统——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

✔ ★Java项目——设计一个消息队列(二)

Java项目——设计一个消息队列 四. 项⽬创建五. 创建核⼼类创建 Exchange&#xff08;名字、类型、持久化&#xff09;创建 MSGQueue&#xff08;名字、持久化、独占标识&#xff09;创建 Binding&#xff08;交换机名字、队列名字、bindingKey用于与routingKey匹配&#xff09…

LLMs之ToolAlpaca:ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略

LLMs之ToolAlpaca&#xff1a;ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略 目录 ToolAlpaca的简介 0、《ToolAlpaca: Generalized Tool Learning for Language Models with 3000 Simulated Cases》翻译与解读 1、数据集列表 2…

前端代码规范 - 图片相关

本文是前端代码规范系列文章&#xff0c;将涵盖前端领域各方面规范整理&#xff0c;其他完整文章可前往主页查阅~ 在前端项目中&#xff0c;图片资源是构成网站视觉效果的重要元素。合理的图片使用规范不仅可以提高页面加载速度&#xff0c;还可以增强用户体验。本文将详细介绍…

基于arcgis /envi PCA(主成分分析)实现过程

基于arcgis /envi PCA(主成分分析)实现过程 1 提取研究范围 2对研究范围进行重采样 &#xff08;根据数据情况进行选做&#xff0c;如数据较大建议进行该步骤操作&#xff09; 3 对研究范围内数据进行归一化处理 4 将空值替换为0 5 对同期不同要素数据进行波段合成 对波段…

易备数据备份软件案例:昆山某电子元器件制造企业灾备方案

昆山某电子有限公司专注于生产和销售高品质的电子元器件&#xff0c;包括各种电容器、电感线圈、电阻器、二极管、晶体管等。产品广泛应用于各种电子设备和行业&#xff0c;包括&#xff1a;消费电子、通信设备、工业控制、汽车电子、航空航天、医疗器械等。 随着公司生产经营…

Yii2 路由美化访问需要加s

不得不说yii真是反人类&#xff0c;怪不得现在都不维护了&#xff0c;今天解析下路由美化下的路由访问问题。 设置main.php配置文件 urlManager > [enablePrettyUrl > true, // 启用 URL美化showScriptName > false, // 隐藏入口文件index.phpenableStrictParsing…

MySql数据库从0-1学习-第三天多表设计学习

项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种: 一对多(多对一)多对多一对一 一对多 需求:根据需求,完成部门和员工表的设计 一对多,很多人会使用外键,…

如何分析 Java 开源项目源码?

准备深入分析一个 Java 开源项目的源码时&#xff0c;可以通过下面这些步骤和技巧&#xff0c;更系统地理解和分析项目源代码&#xff1a; 1. 确定分析目标和范围&#xff1a; 在开始分析之前&#xff0c;明确你的目标&#xff0c;确定你要深入了解的功能或模块。这有助于你有…

零基础转行网络安全,高薪梦想可以实现吗?

零基础转行网络安全&#xff0c;学会网络安全相关知识&#xff0c;可以从事以下岗位&#xff1a; 1、安全运维&#xff1a; 负责服务器及终端设备的维护 负责业务的安全风险评估和漏洞挖掘 负责安全事件的检查和实施 2、渗透测试 负责渗透测试、风险评估工作的实施 提供…

《web应用技术》第三次课后练习

实验目的&#xff1a; 1、springboot入门程序撰写并启动 2、使用postman练习参数的获取。 参考&#xff1a;Day04-10. Web入门-SpringBootWeb-快速入门_哔哩哔哩_bilibili