HDU 1175 连连看

海康门禁二次开发实战:用Java实现员工考勤系统的人脸权限管理 本文详细介绍了如何利用Java技术栈进行海康威视门禁系统的二次开发,实现员工考勤系统的人脸权限管理。从开发环境准备、SDK集成到设备连接、人脸数据批量处理,再到权限管理与异常处理,全面解析了海康门禁对接开发的关键步骤和最佳实践,助力企业构建高效、安全的智能考勤系统。 阅读详情

最近做题都是上百ms的节奏。。。

bfs暴搜。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<vector>
#include<queue>

using namespace std;

const int maxN=1010;
const int inf=1010;

struct Point{
    int turn[5],val;
}p[maxN][maxN];

int x1,y1,x2,y2,dx[]={-1,1,0,0},dy[]={0,0,-1,1},n,m;

bool bfs(){
    queue<int> q;
    for(int i=0;i<4;++i){
        int nx=x1+dx[i],ny=y1+dy[i];
        if(nx==x2&&ny==y2) return true;
        if(nx>=0&&nx<n&&ny<m&&ny>=0&&p[nx][ny].val==0){
            q.push(nx*m+ny);
            p[nx][ny].turn[i]=0;
        }
    }
    while(!q.empty()){
        int u=q.front();q.pop();
        int x=u/m,y=u%m;
        if(x==x2&&y==y2) return true;
        for(int i=0;i<4;++i){
            int nx=x+dx[i],ny=y+dy[i];
            if(nx==x2&&y2==ny)
                for(int j=0;j<4;++j)
                    if(i==j){
                        if(p[x][y].turn[j]<=2) return true;
                    }
                    else{
                        if(p[x][y].turn[j]<2) return true;
                    }
            if(nx>=0&&nx<n&&ny<m&&ny>=0&&p[nx][ny].val==0){
                int kx=-1,ky=-1;
                for(int j=0;j<4;++j){
                    if(i==j){
                        if(p[nx][ny].turn[i]>p[x][y].turn[j]){
                            kx=nx;ky=ny;
                            p[nx][ny].turn[i]=p[x][y].turn[j];
                        }
                    }
                    else{
                        if(p[x][y].turn[j]<2&&p[nx][ny].turn[i]>p[x][y].turn[j]+1){
                            kx=nx;ky=ny;
                            p[nx][ny].turn[i]=p[x][y].turn[j]+1;
                        }
                    }
                }
                if(kx!=-1&&ky!=-1) q.push(kx*m+ky);
            }
        }
    }
    return false;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("a.in","r",stdin);
    //freopen("a.out","w",stdout);
#endif
    while(cin>>n>>m,n||m){
        for(int i=0;i<n;++i)
            for(int j=0;j<m;++j)
                cin>>p[i][j].val;
        int q;
        cin>>q;
        while(q--){
            cin>>x1>>y1>>x2>>y2;
            x1--;y1--;x2--;y2--;
            if(p[x1][y1].val!=p[x2][y2].val||(p[x1][y1].val==0&&p[x2][y2].val==0)){
                puts("NO");
                continue;
            }
            for(int i=0;i<n;++i)
                for(int j=0;j<m;++j)
                    for(int k=0;k<4;++k)
                        p[i][j].turn[k]=inf;
            if(bfs()) puts("YES");
            else puts("NO");
        }
    }
    return 0;
}


【100%通过率】2024华为OD机试真题E卷 C++语言 实现【流浪地球】 流浪地球计划在赤道上均匀部署了N个转向发动机,按位置顺序编号为0~N-1。 1) 初始状态下所有的发动机都是未启动状态; 2) 发动机起动的方式分为“手动启动”和“关联启动”两种方式; 3) 如果在时刻1一个发动机被启动,下一个时刻2与之相邻的两个发动机就会被“关联启动”; 4) 如果准备启动某个发动机时,它已经被启动了,则什么都不用做; 5) 发动机0与发动机N-1是相邻; 地球联合政府准备挑选某些发动机在某些时刻进行“手动启动”,当然最终所有的发动机都会被启动。 哪些发动机最晚被启动呢? 阅读详情

相关推荐

MATLAB R2022b 安装教程

1. 下载安装先放资源链接,百度网盘太贵了不想续了,换了夸克网盘。1. 下载安装。

qq_51654158的博客 2万+

hdu 1175 连连看 [DFS]

题目链接:hdu 1175 连连看 [DFS] 转弯次数不超过两次。和前段时间做的cf那题几乎一样,我又贴一遍。。。最近好懈怠,不想写题。 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<string...

dhe56357的博客 178

用Python+PyTorch实现DQN无人机避障:从环境搭建到实战训练(附完整代码)

本文详细介绍了如何使用Python和PyTorch框架,基于深度强化学习中的DQN算法,实现一个无人机自主避障系统。内容涵盖从自定义环境搭建、DQN智能体核心算法实现,到完整的训练流程与超参数调优,并提供了可视化演示与进阶优化方向,为开发者提供了从理论到实践的完整指南。

kubernetes8ctl的博客 640

HDU1175 连连看【DFS+剪枝】

连连看 题意: 给定一个n*m的连连看的图,有q次操作,问点击(sx,sy)与(ex,ey)能否使方格消失(!!但是,就算可以消失,也不能改变原图,这q次操作相互之间没有联系)。消失的条件详见题目。 题解: 一开始还以为是判断给定的连连看图能否全部消失,但是只是针对两个方格的询问,并且前后没有联系的话,那只要通过DFS就能做,无非多一个记录路线方向以及拐弯次数。针对这个拐弯次数,可以有一个剪枝,有无这个剪枝,是109MS和6770MS的差距,不过题目给的时间足够长,所以没有剪枝也能过。 #i...

lllllan 301

基于Apache MINA SSHD配置及应用

Apache MINA SSHD是一个基于Java的开源SSH服务器/客户端实现,支持SSH2协议,提供文件传输、shell访问等功能。该代码实现了一个SftpClientService服务类,封装了SFTP文件操作,包括读取文件(readOnce/readLines)和写入文件(writeOnce)等核心功能。通过SftpProperties配置类管理连接参数,并采用Builder模式创建SSH会话。主要特点包括:支持大文件分块传输、自动创建目录、严格的异常处理和...

流沙QuickSand 945

CoppeliaSim学习笔记(1):建立Python脚本与CoppeliaSim的连接

CoppeliaSim学习笔记,建立python和CoppeliaSim的连接,实现联调。

qq_22487889的博客 1万+

hdu 1175 连连看

hdu  1175  连连看                    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1175 BFS水 题目大意:不能从外围通过的,转向限制为2的连连看,BFS就好了。 题目分析:二维数组存图,另有visit数组并每次查询前初始化,控turn也很重要。 code: #include #include #incl

slicer的技术交流栈 873

pytorch中的wheel文件

whl 文件是 Python 的一个软件包分发格式,用于在 Python 中安装软件包。它是 Python Wheel 的缩写,也被称为 wheel 文件。这种文件格式旨在简化 Python 软件包的安装和分发。对于 PyTorch 而言,它提供了预编译的 .whl 文件,您可以通过 pip 安装这些文件来快速方便地安装 PyTorch。这些 .whl 文件是已经编译好的二进制分发文件,可以直接安装在您的 Python 环境中,而无需再进行编译。

bj_zhb的博客 3127

【dfs】hdu 1175 连连看

【dfs】hdu 1175 连连看题目链接:hdu 1175 连连看题目大意连连看,问能否成功?题意很简单,就是我们平时玩的连连看的游戏规则,貌似dfs和bfs都能做,笔者就做了个dfs(好想),超时了好几次,原因是dfs(int d)与终点的d重载矛盾了,所以还是要小心。说一下思路 神器的剪枝:if(t==2&&x!=c&&y!=d) return;这一部剪枝妙笔回春,9000+MS优化到100+

Hacker_vision 795

IEC61850建模实战:从标准解读到ICD文件生成

本文详细介绍了IEC61850建模的实战过程,从标准解读到ICD文件生成,涵盖了变电站自动化系统的结构化数据模型设计。通过分层结构、标准服务映射和XML文件解析,帮助读者掌握电力系统智能电子设备的标准化建模方法,提升工程实施效率。

weixin_30823001的博客 417

C++新手也能搞定!Windows下Cesium-Native编译全流程(附依赖下载技巧)

本文为C++新手详细介绍了在Windows系统下编译Cesium-Native库的全流程。重点针对网络环境不佳的情况,提供了手动下载依赖库的实用技巧,并指导用户使用CMake配置、生成解决方案,最终完成编译与测试验证,帮助开发者成功构建这一处理3D地理空间数据的C++运行时库。

weixin_28839549的博客 381

HDU-1175 连连看

HDU 1175 连连看 “连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这...

你呢的博客 1036

YOLOv8改进策略【Neck】| CGA Fusion:内容引导的注意力融合模块,空间权重引导的多模态特征自适应融合

本文记录的是利用CGA Fusion 模块改进 YOLOv8 的多模态融合部分。(Content-Guided Attention Fusion)通过内容引导注意力生成空间权重,引导高低层特征的自适应融合。本文利用模块,通过内容引导注意力生成空间权重,自适应地融合两个模态的特征,在特征融合阶段实现跨模态语义对齐与噪声抑制,增强对不同模态互补特征的利用能力,从而提升模型在多模态场景下的检测鲁棒性与准确性。DEA-Net: Single image dehazing based on detail-enhanc

Limiiiing的博客 283

HDU1175 连连看 DFS

HDU1175 连连看 DFS

qq_44919369的博客 206

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

HDU - 1175 连连看(dfs)

HDU - 1175 连连看(dfs)    连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能...

GYH0730的博客 387

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

hdu1175 连连看dfs

传送门:hdu1175 其实这个题深搜广搜都可以,但是广搜本来就用的不熟练,再加上还只能转两次弯,根本就不知道该怎么写入队条件,于是果断选择了深搜。。这里有一个重要剪枝是当转弯次数为2的时候先不要进行下一次dfs,直接判断目标点在不在前进方向中就行了,不剪的话铁定超时。。 #include #include #include int n,m,x1,x2,y1,y2,flag=0; int

WA是一笔财富 900

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

hdu1175- 连连看BFS

Hdu 1175  连连看 Problem Description “连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但

程序员的冷浪漫 853

HDU 1175 连连看+ HDU 1728 逃离迷宫

HDU 1016连连看 链接:

笙箫默 1054

HDU 1175 连连看(BFS)

HDU1175 连连看(BFS) http://acm.hdu.edu.cn/showproblem.php?pid=1175 Problem Description “连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋

code 1442

hdu1175 连连看

题意:找到两个相同的数字 拐弯个数不能超过2 还有一些限制条件在这里就不在赘述了 思路: 开始我用DFS 结果超时 下次想问题时一定要确定用什么方法去解决问题 总体方针没有正确后面再好也会错 用BFS找 过程中要注意用visited[][]标记每个点的拐弯数 如果遍历到它时 本身拐弯数小于等于该点的 则可以遍历该 点;其他方法都比较基本不在赘述

dashuxiaoai52613的专栏 2172

HDU - 1175 连连看(BFS 扩展顺序不同导致WA ???)

HDU - 1175 连连看 题目 给一个迷宫,起点和终点,问是否能从起点走到终点,且转向次数不超过 2 次。 分析 题目并不难,很容易想到 bfs,不过要有很多细节要注意。 定义 bfs 的每次的状态包括当前位置,当前已转向次数,来时的方向。 可以先将终点位置值设为 0 ,即通路,便于写代码。但是 bfs之后要改回去。 后面判断转向就用要去的方向与来时的方向一样不一样。 注意细节。 代码 #in...

Stormjing的博客 259

hdu 1175 连连看

连连看 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17604    Accepted Submission(s): 4571 Problem Description “连连看”相信很多人都玩过。没玩过也没关系,下

小小码农 763
上一篇: HDU 1142 A Walk Through the Forest
下一篇: HDU 1173 采矿
E_Windrunner
博客等级 码龄15年 7粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值