计蒜客-连连看(dfs)

计蒜客 T1595 迷宫(一)题解 计蒜客 T1595 迷宫(一)题解 hi,大家好,我是Loony lovegood.今天突发奇想写了一篇题解 先推荐个oj //不是做广告 计蒜客 最好的oj 洛谷 好了,废话不多说了.以下是正文. 没看题的小伙伴戳这里 T1595题目 题目主要描述 两个整数 n 和 m,表示这是一个 n×m 的迷宫。 在这个n 行 m\m 列的迷宫里,其中 ‘S’ 表示蒜头君的位置,’*‘表示墙,蒜头君无法通过,’.‘表示路,蒜头君可以通过’.'移动,'T’表示迷宫的出口(蒜头君每次只能移动到四个与他相邻的位置——上, 阅读详情

连连看

连连看是一款非常有意思的游戏。

我们可以把任意两个在图的在边界上的相同的方格一起消掉,比如把两个 444 消掉以后,

每次消掉两个方格的时候,都有会获得一个分数,第 iii 次消的分数为 i×i \timesi× 方格的值。比如上面的消法,是第一次消,获得的分数为 1×4=41 \times 4 = 41×4=4。

请你帮忙最优操作情况下,获得的分数最多为多少。

dfs搜索,参数两个,一个时当前步数一个是当前价值

选取点直接二重循环一个一个遍历找点

code:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 25;
int n;
int mp[maxn][maxn];
int vis[maxn][maxn];
int maxscore;
int dir[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};
//判断是否在地图内
int in(int x,int y){
    return (x >= 0 && x < n && y >= 0 && y < n);
}
int check(int x,int y){
    int i,tx,ty;
    //如果之前被标记过了,不行
    if(vis[x][y] == 1)return 0;
    for(i = 0; i < 4; i++){
        tx = x + dir[i][0];
        ty = y + dir[i][1];
        //如果当前点的上下左右四周在地图外或者
        //被标记过了,则说明该点是边界点
        if(!in(tx,ty) || vis[tx][ty] == 1)
           return 1;
    }
    return 0;
}
void dfs(int step,int cur){
    int i,j,k,l;
    //更新最高分
    if(cur > maxscore)
        maxscore = cur;
    //找一对不同的边界点(i,j),(k,l)
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            //若点(i,j)是地图的边界点
            if(check(i,j)){
                for(k = 0; k < n; k++){
                    for(l = 0; l < n; l++){
                        //同一个点的情形应该舍弃
                        if(k == i && l == j)
                            continue;
                    //如果(k,l)也是地图边界点,且对应值相同
                        if(check(k,l) && mp[i][j] == mp[k][l]){
                            vis[i][j] = vis[k][l] = 1;
                            dfs(step+1,cur+step*mp[i][j]);
                            vis[i][j] = vis[k][l] = 0;
                        }

                    }
                }
            }
        }
    }
}
int main(){
    int i,j;
    scanf("%d",&n);
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            scanf("%d",&mp[i][j]);
        }
    }
    maxscore = 0;
    dfs(1,0);
    printf("%d\n",maxscore);
    return 0;
}
/*
4
1 4 2 5
2 1 2 1
3 1 3 2
2 5 3 4
*/

【算法积累】计蒜客迷宫三问 (DFS & BFS) 计蒜客T1595 - 迷宫(一) 题目链接 一天蒜头君掉进了一个迷宫里面,蒜头君想逃出去,可怜的蒜头君连迷宫是否有能逃出去的路都不知道。 看在蒜头君这么可怜的份上,就请聪明的你告诉蒜头君是否有可以逃出去的路。 输入格式 第一行输入两个整数 nnn 和 mmm,表示这是一个 n×mn \times mn×m 的迷宫。 接下来的输入一个 nnn 行 mmm 列的迷宫。其中S表示蒜头君的位置,*表示墙,蒜头君无法通过,.表示路,蒜头君可以通过.移动,T表示迷宫的出口(蒜头君每次只能移动到四个与他相邻的位置——上, 阅读详情

相关推荐

迷宫(二)计蒜客-最短路

题目链接:https://nanti.jisuanke.com/t/T1596 题意: 求S到T的最小步数 DFS解法 // 迷宫(二)--计蒜客 #include<iostream> #include<cstdio> #include<cmath> #include<queue> #include<vector> #include&lt...

nine 965

【DFS】连连看

连连看 “连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能将错就错了,连线不能从外围绕过。 玩家鼠标先后点击两块棋子,试图将他们消去,然后游戏的后台判断这两个方格能不能消去。现在你的任务就是写这个后台程序。

木又可可的博客 359

迷宫(一)计蒜客

题目链接:https://nanti.jisuanke.com/t/T1595 给出起点求能否达到终点 // 迷宫(一)--计蒜客 #include<iostream> #include<cstdio> #include<cmath> #include<queue> #include<vector> #include<string&...

nine 634

连连看(DFS)

C++使用DFS构建连连看游戏

CXR_XC的博客 894

基于深度优先搜索的连连看游戏路径查找算法

针对目前连连看游戏路径查找算法不够精练的问题,基于深度优先搜索和栈的思想,设计了一个全新的路径查找算法。有别于其它查找路径与记录路径轨迹需要分两步进行的算法,本算法判断两个点之间如果存在路径,则同时会记录有效路径的轨迹。

用WorkBuddy搭建漫剧AI自动化制作流水线全攻略

在内容创作领域,AI智能体正逐渐从单一工具辅助走向全流程自动化调度。其核心原理是将剧本、分镜、绘图、配音、剪辑等环节拆解为可独立执行的任务单元,由总控系统统一协调,从而大幅降低人力与时间成本。这种模式尤其适用于动态漫画(漫剧)这类环节多、专业度要求高的视频形态。传统制作流程中,角色一致性、配音周期和剪辑返工是公认的效率瓶颈,而借助AI智能体工作台,创作者只需输入故事创意,即可驱动多个数字分身协同完成内容生产。本文以WorkBuddy为例,详细展示如何配置模型、安装技能包并串联五段式流水线,将单集制作成本从万

weixin_28224217的博客 251

HDU 1175(搜索题,BFS)

连连看<br />Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)<br />Total Submission(s): 2678    Accepted Submission(s): 608<br /><br />Problem Description“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条

-- bird -- 1158

从亚稳态到流片失败:SpyGlass CDC在5G芯片设计中的避坑指南

本文深入探讨了在复杂5G芯片设计中,如何利用SpyGlass CDC工具构建高效的时钟域交叉验证流程,以避免因亚稳态问题导致的流片失败。文章结合实战经验,详细解析了从约束编写、时钟复位完整性检查到层次化验证和特殊场景处理的全过程,并强调了精准的检查约束是确保验证有效性的基石,旨在帮助设计团队安全跨越异步时钟域的雷区。

weixin_29168153的博客 444

hdu1175 连连看 --DFS/BFS

原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=1175 直接上代码,不是很难。 #define _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_Cy1_OVERLOAD_STANDARD_NAMES 1 #include #include #include using namesp

半壶老酒 648

主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效

通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图:​ 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...

xiao_bai_0_0的博客 2万+

OpenHarness代码解读

Harness 是包裹在大模型之外、为其赋予完整执行能力的全套基础设施。模型负责提供智能与推理,Harness 则为模型提供感知、行动、记忆、工具与安全约束,使其从语言模型变成可自主完成复杂任务的实用智能体。我这里把向量数据库方案定义为:把对话片段、事件、偏好、工具结果等切成 memory chunks,做 embedding,存进向量库,查询时靠 ANN 相似度召回,再交给 LLM 读。AAAI 的综述类论文就明确指出,很多 LLM agent 的长期记忆就是这么做的。AAAI 期刊把文件系统方案。

qq_52053775的博客 187

计蒜客 2018 蓝桥杯省赛 B 组模拟赛(五) C. 结果填空:连连看

【题目链接】:https://nanti.jisuanke.com/t/25086【题目描述】:连连看是一款非常有意思的游戏。我们可以把任意两个在图的在边界上的相同的方格一起消掉,比如把两个 4 消掉以后,每次消掉两个方格的时候,都有会获得一个分数,第 i 次消的分数为 i× 方格的值。比如上面的消法,是第一次消,获得的分数为 1×4=4。请你帮忙最优操作情况下,获得的分数最多为多少。【答案】:8...

mcp3128 1071

第八届传智杯WPS智能办公能力挑战赛练习题库

本文是关于WPS Office软件操作知识的选择题汇总,内容涵盖WPS文字、表格和演示三大组件的常用功能。主要包括:云文档协同编辑、文本框插入、幻灯片打印设置、数据排序与筛选、函数应用(如SUMIF、COUNT)、动画效果设置、格式刷使用、页眉页脚设置、单元格引用类型等基础操作要点。同时涉及计算机基础概念如二进制、ROM存储器等。题目以单选和多选形式呈现,附带详细答案解析,全面检验用户对WPS办公软件的功能掌握程度和实际操作能力,适用于办公软件技能培训和水平测试。

qq_73044452的博客 1424

计蒜客 蓝桥模拟赛 连连看 (dfs)

传送门答案:89思路:    这个直接暴搜就好了,图这么小》#include &lt;bits/stdc++.h&gt; using namespace std; int a[6][6] = { {0,0,0,0,0,0}, {0,1,4,2,5,0}, {0,2,1,2,1,0}, {0,3,1,3,2,0}, {0,2,5,3,4,0}, {0,0,0,0,0,0} }; int...

Marcus-Bao的个人主页 597

LeRobot 入门教程(十)LIBERO 机器人终身学习评估

LIBERO是一项专注于机器人终身学习(LLDM)的基准测试平台,包含130项任务,分为5大套件(空间推理、物体操作、目标约束等)。LeRobot框架已集成LIBERO,支持单/多套件评估,并兼容SmolVLA模型。训练需使用预处理数据集(HuggingFaceVLA/libero),观测数据需符合规范(8维状态+双摄像头图像)。该平台采用MuJoCo模拟,支持无头服务器运行,旨在推动机器人持续学习算法的发展与标准化评估。

2506_90492529的博客 1662

Palantir 凭什么两年涨 20 倍?深度解析解决 AI 幻觉的 “本体论“ 核心原理

本文深度解析了Palantir本体(Ontology)的核心原理及其在企业AI应用中的革命性价值。本体通过构建结构化的语义层与动态执行层,将企业分散的数字资产(数据集、虚拟表、模型)映射为现实世界的数字孪生,使大模型能够在**严格的业务规则与数据边界内**进行推理与决策,从而从架构层面彻底解决AI幻觉问题。这一技术架构不仅帮助Palantir实现股价两年增长20倍、市值突破4000亿美金的商业成功,更成为SAP、Salesforce等ERP巨头争相模仿的下一代企业智能标准范式。通过航空业飞机故障应急处理等实

program哲学 218

深度优先算法(DFS)

根据访问节点的顺序与方式,可以分为广度优先算法(BFS)和深度优先算法(DFS),本文介绍深度优先算法: 深度优先算法 1、算法概述 深度优先搜索属于图算法的一种,英文缩写为DFS。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。 深度优先搜索是一种在开发爬虫早期使用较多的方法,它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。 它的...

qq_41896683的博客 3万+

【DDR3 控制器设计】(1)MIG IP 核的详解与配置

2:1 比例的用户接口数据总线宽度是 MIG 内存接口宽度的 4 倍,比如 MIG 中配置的数据位宽是 16 位,而 DDR 双边采样,所以用户接口是 MIG 内存接口的 4 倍即数据位宽为 64 位,同理可以得到如果设置为 4:1 则是 8 倍的数据位宽即数据位宽为 128 位。这里选择不使用OFF。以下为 MIG 和 DDR 之间的连接框图,可以看到框图的左边是用户接口,中间是 MIG 核,右边是需要控制的 DDR 接口,用户只需要去配置使用 MIG 核,就可以对 DDR 进行控制读写等操作。

记录学习历程 5358

【算法笔记】深度优先算法DFS(保姆级教学,一篇让你搞懂DFS的精髓)

本文章介绍了搜索算法中常用的DFS深度优先算法,它的核心思想是从一个起点开始,沿着一个方向尽可能深地搜索,直到无法继续为止,然后回溯到上一个节点,继续沿着其他方向搜索。DFS可以使用递归或栈(非递归)来实现。

weixin_74297512的博客 6516

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[计蒜客][dfs]踏青

题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 深度优先搜索 题目描述 思路 摆明了计算连通块 我们只需要遇到合适得草地,把联通的草地全部标记走过即可 然后ans++,倒下一块草地再来一遍 AC代码 #include<iostream> using namespace std; const int N=110; char g[N][N]; bool st[N][N];...

代码中枢:软件工程理论与实践的桥梁 563

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

[计蒜客][dfs]引爆炸弹

题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 深度优先搜索 题目描述 提示 思路 如果一个炸弹可以被手动引爆,检查他横竖位置有没有炸弹,一起递归引爆 这样相当于适当范围被填充完,开始找下一个未使用炸弹继续使用,直到没有炸弹没被引爆 AC代码 #include<iostream> using namespace std; const int N=510; char ...

代码中枢:软件工程理论与实践的桥梁 697

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

计蒜客A1139 引爆炸弹【DFS】

传送门:计蒜客A1139 引爆炸弹 题目描述 测试样例 Sample Input 5 5 00010 00010 01001 10001 01000 Sample Output 2 解题思路   对有炸弹的位置的行和列进行dfs,并将爆炸过的行和列标记。 AC代码 #include<cstdio> const int MAXN=1e3+5; char g[MAXN][MAXN]; int r[MAXN],c[MAXN]; int ans=0; int n,m; void dfs(int

Lucas9的博客 442

计蒜客-迷宫(一)

题目: 计蒜客-迷宫(一) 简单dfs code #include <bits/stdc++.h> using namespace std; char s[11][11]; int n, m; bool FIND = false; bool vis[11][11]; int dx[] = {-1, 0, 1, 0}; int dy[] = {0, -1, 0, 1}; voi...

92377 505

[计蒜客][搜索枚举]文具店

题目来源 计蒜客程序设计竞赛基础课(蓝桥杯省赛) 算法标签 深度优先搜索 题目描述 思路 意思就是将字符串分割成k串,累加答案尽可能的小 dfs枚举 AC代码 #include<iostream> #include<string> using namespace std; string s; int k,sum,re,ans=0x3f3f3f;//ans设置为最大值 ...

代码中枢:软件工程理论与实践的桥梁 1011

计蒜客-dfs(深搜)-红与黑

蒜厂有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。 你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。 请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 输入格式第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量。 W和 H 都不超过 202020。在接下来的 H行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色, 规则如下: 1)’.’:黑色的瓷砖; 2)’#’:白色的瓷砖; 3)’@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。 输

qq_45973802的博客 777

计蒜客 T1408 矩形嵌套

计蒜客 T1408 矩形嵌套 题目链接 有 n 个矩形,每个矩形可以用 a,b 来描述,表示长和宽。矩形 X(a,b) 可以嵌套在矩形 Y(c,d) 中当且仅当 a<c,b<d 或者 b<c,a<d(相当于旋转 9090 度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。 输入格式 第一行是一个正数 N(0<N<10),表示测试数据组数。 每组测试数据的第一行是

旺崽的博客 2781
上一篇: 合并数字
下一篇: 计蒜客-藏宝图(bfs+状压)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值