【ZOJ - 4020 】Traffic Light (bfs,分层图)

题干:

n*m矩阵a.若a[i][j]==1则可以往左右走,若a[i][j]==0 则可以往上下走.
每一秒可以按上述规则移动,并且每秒钟矩阵所有的值翻转。
n*m<=1e5.问从(sx,sy)到(tx,ty)的最短时间.

解题报告:

  这题因为不带权值所以不需要考虑Dijkstra,可以根据时间直接判断状态是0还是1。如果状态的变换很复杂的话就考虑分层图就好了。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
const int MAX = 3e5 + 5;
int n,m;
bool vis[MAX][2];
int nx[4] = {-1,1,0,0};//上,下,左,右
int ny[4] = {0,0,-1,1}; int sta[MAX];
struct Node {int x,y;int pos,t;Node(){}Node(int x,int y,int pos,int t):x(x),y(y),pos(pos),t(t){}
};
inline int getp(int x,int y) {return (x-1) * m + y;
}
int bfs(int a,int b,int c,int d,int st,int ed) {queue<Node > q;q.push(Node(a,b,st,0));vis[st][sta[st]]=1;while(!q.empty()) {Node cur = q.front();q.pop();if(cur.pos == ed) return cur.t;int nowsta = (cur.t%2==0) ? sta[cur.pos] : 1-sta[cur.pos];if(nowsta == 0) {for(int k = 0; k<2; k++) {int tx = cur.x + nx[k];int ty = cur.y + ny[k];if(tx <1 || tx >n || ty < 1 || ty > m) continue;if(vis[getp(tx,ty)][nowsta]) continue;vis[getp(tx,ty)][nowsta] = 1 ;q.push(Node(tx,ty,getp(tx,ty),cur.t+1));}}else {for(int k = 2; k<4; k++) {int tx = cur.x + nx[k];int ty = cur.y + ny[k];if(tx <1 || tx >n || ty < 1 || ty > m) continue;if(vis[getp(tx,ty)][nowsta]) continue;vis[getp(tx,ty)][nowsta] = 1 ;q.push(Node(tx,ty,getp(tx,ty),cur.t+1));}}}return -1;
}
int main()
{int t;cin>>t;while(t--) {scanf("%d%d",&n,&m);for(int i = 1; i<=n; i++) {for(int j = 1; j<=m; j++) {vis[(i-1)*m+j][0]=0;vis[(i-1)*m+j][1]=0;}}for(int i = 1; i<=n; i++) {for(int j = 1; j<=m; j++) {scanf("%d",&sta[(i-1)*m + j]);}}int stx,sty,edx,edy,st,ed;scanf("%d%d",&stx,&sty);scanf("%d%d",&edx,&edy);st = (stx-1) * m + sty;ed = (edx-1) * m + edy;int ans = bfs(stx,sty,edx,edy,st,ed);printf("%d\n",ans);}return 0 ;
}

 

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

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

相关文章

在计算机应用中mis,在计算机的应用中,“MIS”表示

阅读下列材料&#xff0c;回答有关问题&#xff1a;地理信息系统(GIS)&#xff0c;也称作地理资讯系统&#xff0c;是一门综合性学科&#xff0c;已经广泛地应用在不同的领域&#xff0c;是用于输入、存储、查询、分析和显示地理数据的计算机系统。GIS属于信息系统的一类&#…

【牛客 - 369C】小A与欧拉路(bfs树的直径)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/369/C 来源&#xff1a;牛客网 小A给你了一棵树&#xff0c;对于这棵树上的每一条边&#xff0c;你都可以将它复制任意&#xff08;可以为0&#xff09;次&#xff08;即在这条边连接的两个点之间再…

html loader的作用,webpack认识loader的作用

举例&#xff1a;如果希望在.html文件中使用style.css样式&#xff0c;我们以前只学习过一种方式&#xff1a;直接在.html中通过link的方式来引入 &#xff0c;这是传统的做法&#xff0c;在webpack语境下&#xff0c;我们将选择一条不同的道路&#xff1a;在js文件中引入了css…

【牛客 - 188C】水图(bfs树的直径,思维)

题干&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/188/C 来源&#xff1a;牛客网 小w不会离散数学&#xff0c;所以她van的图论游戏是送分的 小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度 小w现在在点x上 她想知道从点x出…

5可视化数据大屏模板_可视化大屏模板分享

3个月前的一天&#xff0c;老板找到我&#xff1a;“小王&#xff0c;数据怎么才能产生让人惊艳的感觉呢&#xff1f;”我说&#xff1a;“肯定是用代码让程序员操作一下&#xff0c;再让设计师做一下配色&#xff0c;最好还能是数据实时变化的那种&#xff0c;简直就和电影里一…

delphi webbrowser 显示 html,delphi webbrowser

delphi 怎么判断webbrowser打开网页成功?unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw; type TForm1 class(TForm) WebBrowser1: TWebBrowser; Button1: TButton; Edit1: …

【蓝桥杯官网训练 - 历届试题】对局匹配(dp,思维,取模)

题干&#xff1a; 问题描述 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分&#xff0c;代表他的围棋水平。   小明发现网站的自动对局系统在匹配对手时&#xff0c;只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K&#…

c#12星座速配代码_白羊座今日运势|2020/12/11

整体运势&#xff1a;★★★☆☆爱情运势&#xff1a;★★☆☆☆事业运势&#xff1a;★★☆☆☆财富运势&#xff1a;★★★☆☆幸运数字&#xff1a;7速配星座&#xff1a;金牛座幸运颜色&#xff1a;橙色幸运时刻&#xff1a;12:00-14:00整体运势&#xff1a;接收的消息会比…

计算机网络基础端口号,1 计算机网络基础练习

Ch1 计算机网络基础1.以下网络结构当中哪一种的安全性和保密性较差A. mesh(网状)B. treeC. busD. star2.OSI 参考模型中的OSI 表示的是A. Organization Standard InstituteB. Organization Standard InterconnectionC. Open System InternetD. Open System Interconnection3.多…

【ZOJ - 2969】Easy Task (模拟,数学)

题干&#xff1a; Calculating the derivation of a polynomial is an easy task. Given a function f(x) , we use (f(x)) to denote its derivation. We use x^n to denote xn. To calculate the derivation of a polynomial, you should know 3 rules: (1) (C)0 where C is…

怎么去掉拼写检查的红线_发动机温度过高,水箱“开锅”,我们到底该怎么办?...

车子开久了&#xff0c;难免会出现一些小故障&#xff0c;今天我们就来说一下关于发动机水温过高的问题&#xff0c;这也是老司机常说的“开锅”。发动机水温正常情况是在80-90摄氏度之间&#xff0c;一旦超过这个温度&#xff0c;也就是水温表过了红线的时候&#xff0c;我们就…

北大计算机类学什么,状元们去清华北大选了什么专业?计算机可不是首选,首选你想不到...

状元们去清华北大选了什么专业&#xff1f;计算机可不是首选&#xff0c;首选你想不到。清华大学、北京大学基本上能代表我国国内的顶尖的教育水平&#xff0c;他的生源也是来自于各个地区的佼佼者&#xff0c;我想大家或多或少都会好奇这些状元的首选专业是哪一个专业吧。是近…

【ZOJ - 2972】Hurdles of 110m (dp)

题干&#xff1a; In the year 2008, the 29th Olympic Games will be held in Beijing. This will signify the prosperity of China and Beijing Olympics is to be a festival for people all over the world as well. Liu Xiang is one of the famous Olympic athletes i…

格式说明_ISO11784/85 FDX-B动物芯片格式写码说明

植入式生物芯片口蹄疫、疯牛病、禽流感、非洲猪瘟的蔓延严重危及人类生命安全&#xff0c;引发了人们对动物性食品生产全过程安全追溯管理的重视。因此&#xff0c;有效地利用非接触式无线射频技术(RFID)对其进行控制成为有效的重要手段。一、国际动物识别标准介绍ISO 11784&am…

html手机网站font-size:16em,px、em、rem

px、em、rempx 是固定的长度单位em 是父元素的font-size(字体大小)的值&#xff0c;常用来设置首行缩进2em(2字符)rem 是根节点(html&#xff0c;body)的font-size(字体大小)的值&#xff0c;可以用来做移动端的自适应。为什么要适配移动端px像素(pixel)相对长度单位。相对于显…

1至9填入九个方框内_防水涂料和施工堵漏的“五大技巧”和“九个细节”

防水涂料和施工堵漏的“五大技巧”和“九个细节”很多业主会在留言里问我家里水管堵了、房顶渗水怎么办&#xff0c;所以防水问题不可忽视。让您住的安心&#xff0c;您楼下的邻居也住的安心。对于防水问题&#xff0c;一定要在最初进行装修的时候就特别注意。下面这些是专业人…

限制 计算机中 某用户上网 win7,利用win7限制上网时间的方法

随着电脑的普及&#xff0c;很多家长为了让自己的孩子能有更广泛的知识&#xff0c;都给自己的孩子买了电脑&#xff0c;可现在很多孩子使用电脑却很少耗费在学习上&#xff0c;更多的时间是在娱乐&#xff0c;这样不仅影响学习而且还影响着视力&#xff0c;这样的问题相信困扰…

【ZOJ - 2976】Light Bulbs (枚举,暴力)

题干&#xff1a; Wildleopard had fallen in love with his girlfriend for 20 years. He wanted to end the long match for their love and get married this year. He bought a new house for his family and hired a company to decorate his house. Wildleopard and his…

dataframe去重复 python_python – 在DataFrame中组合重复的列

如果我的数据框具有包含相同名称的列,是否有办法将具有相同名称的列与某种功能(即总和)组合在一起&#xff1f;例如&#xff1a;In [186]:df["NY-WEB01"].head()Out[186]:NY-WEB01 NY-WEB01DateTime2012-10-18 16:00:00 5.6 2.82012-10-18 17:00:00 18.6 12.02012-10…

为什么计算机编程以英语为主,为什么做编程都用英文,中文不行吗?听程序员解释完,总算明白了...

今天我们科普的话题是&#xff1a;为什么做编程都用英文&#xff0c;中文不行吗&#xff1f;听程序员解释完&#xff0c;总算明白了不知道大家最近有没有追过一部电视剧&#xff0c;它是《亲爱的热爱的》&#xff0c;由李现和杨紫主演的。主要讲述了这对情侣发生的浪漫爱情故事…