HDU 1175 连连看

贝塞尔曲线基础 贝塞尔曲线于1962年由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由Paul de Casteljau于1959年运用de Casteljau演算法开发,以稳定数值的方法求出贝兹曲线。 阅读详情

最近做题都是上百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;
}


低功耗设计:如何计算power switch的数量? power switch加多了漏电高,加少了ir drop会有问题,具体加多少合适要如何计算呢?这里可以给一个参考方式。 第一步,先选switch cell的类型 通常选用HVT类型的switch cell,优点是漏电更低,缺点也很明显,电阻大,压降也大,switch cell的大小选择,可以选择(开启电阻x面积)最小的switch cell,即单位面积提供最小并联电阻的cell类型。 第二步,计算数量 选好类型,确定了开启电阻,可以按照如下公式计算数量: Ron/Xnum • W/V = V•P 阅读详情

相关推荐

TortoiseGit提示No supported authentication methods available错误

一、问题 在使用TortoiseGit与远程仓库进行同步代码的时候提示如下错误,即:没有支持认证的方法可用。而GitBash却可以正常使用,不受影响。 通过调查,发现应该是TortoiseGit远程仓库的公匙无法和本地的密匙进行匹配认证造成的(主要是TortoiseGit缺少本地密匙)。由于TortoiseGit的默认网络SSH client是TortoiseGitPlink.exe,如下图所示。因此主要有两种方式来解决该问题: 不修改TortoiseGit的默认网络SSH client,此时需要为To

Jeffxu_lib的博客 2万+

hdu 1175 连连看 [DFS]

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

dhe56357的博客 178

发那科机器人抓手与物料搬运阀的配置与优化实践

本文详细介绍了发那科机器人抓手与物料搬运阀的配置与优化实践,包括基础配置指南、阀岛与输入模块的详细设置、测试程序编写与验证技巧,以及常见问题排查与性能优化建议。通过实际案例和经验分享,帮助技术人员快速掌握关键配置步骤,提升物料搬运系统的稳定性和效率。

weixin_33738555的博客 385

HDU1175 连连看【DFS+剪枝】

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

lllllan 301

Android开发者必看:5分钟搞定MQTT客户端连接EMQX服务器(附完整代码)

本文为Android开发者提供了一份快速实现MQTT客户端连接EMQX服务器的实战指南。通过引入Eclipse Paho SDK,详细讲解了从项目配置、权限申请到核心连接、主题订阅与消息发布的完整流程,并附有即拿即用的Kotlin代码,帮助开发者在物联网应用中高效集成轻量级实时通信功能。

weixin_29228781的博客 271

STM32F407+HAL库+W5500实现TCP通讯 个人项目总结

推荐阅读此博客 cv即可成功首先需要一个可以进行串口调试的工程,方便进行调试。1.在W5500官网移植库文件重点是Ethernet这个文件夹将里面的 socket.c,socket.h,wizchip_conf.c,wizchip_conf.h,还有根据W5500文件夹里的w5500.c和w5500.h移植到自己的工程里面。然后再创建一个.c和.h文件 我的叫w5500_port_hal.c 和w5500_port_hal.h 记得将.h文件链接到工程里。

a234abr的博客 2248

hdu 1175 连连看

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

slicer的技术交流栈 873

基于STM32、HAL库的ADE7880ACPZ-RL电能计量芯片驱动程序设计

@retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)* @retval 状态 (ADE7880_OK或ADE7880_ERROR)PA6 (MISO) <--> SDO (SPI数据输出)PB0 (CS) <--> /CS (片选,低有效)

corlin6688的博客 668

【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

uni-app - 修改默认端口,H5 项目控制台运行出来的 IP 地址的默认端口号(H5 项目运行后控制台,修改项目运行到内置浏览器默认 8080 端口号)

uni-app运行到H5修改默认端口号,uni-app如何修改默认端口,uni-app修改默认端口,uni-app本地运行修改调试已上线微信H5项目,请问在UNIAPP的H5运行调试时候的IP是否可以自己设置固定,uni-app开发环境,如何设置h5服务器的端口,uni-app如何修改默认端,uni-app修改默认端口,uni-app指定端口号,uni-app-修改H5项目控制台运行出来的IP地址的默认端口号(H5项目运行后控制台,修改项目运行到内置浏览器默认8080端口号)

🏆 前端领域优质创作者 9887

财务数字化——解读美的战略规划之财务组织体系建设【附全文阅读】

本文提出适用于集团企业的财务管控方案,面向财务负责人、HR及战略规划人员。方案整合四种管控模式,结合500强案例,构建"职能定位-架构设计-权责划分-人才发展"体系,涵盖财务五大模块。通过明确总部与事业部权责边界,提供组织架构等实操框架,旨在平衡财务管控与业务支持,提升效率与风控能力,满足集团财务体系规范化建设需求。

cdfunlove的博客 663

HDU-1175 连连看

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

你呢的博客 1036

【AIZ智能体】Codex 全能AI助手从部署到使用实战操作详解

Codex 全能AI助手从部署到使用实战操作详解

congge 2983

HDU1175 连连看 DFS

HDU1175 连连看 DFS

qq_44919369的博客 206

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HDU - 1175 连连看(dfs)

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

GYH0730的博客 387

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

hdu1175 连连看dfs

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

WA是一笔财富 900

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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、付费专栏及课程。

余额充值