P1519 穿越栅栏

2024-03-04 07:38
文章标签 栅栏 穿越 p1519

本文主要是介绍P1519 穿越栅栏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

usaco里的搜索其实还是不错的,这自然也不是一道水题(其实是我题目看错了
这类题目一般都是一题多解,既然如此垃圾的我自然用bfs

const z:array[1..4,1..2]of -1..1=((1,0),(0,1),(-1,0),(0,-1));
var i,j,k:longint;a,b:array[0..1000,0..1000]of boolean;p:array[0..1000,0..1000]of longint;x,y,u:array[0..1010101]of longint;m,n,x1,y1,x2,y2,h,t,max:longint;ch:char;
procedure bfs(x1,y1:longint);//一个裸的bfs
var h,t,i,j,k:longint;
beginh:=1;t:=1;x[1]:=x1;y[1]:=y1;b:=a;u[1]:=0;while h>=t dobeginfor i:=1 to 4 doif b[x[t]+z[i,1],y[t]+z[i,2]] thenbegininc(h);b[x[t]+z[i,1],y[t]+z[i,2]]:=false;x[h]:=x[t]+z[i,1];y[h]:=y[t]+z[i,2];u[h]:=u[t]+1;if u[h]<p[x[h],y[h]] then p[x[h],y[h]]:=u[h];//记录最优解,因为有两个出口end;inc(t);end;
end;
beginread(n,m);readln;//读入麻烦一点for i:=1 to m*2+1 dobeginfor j:=1 to n*2+1 dobeginread(ch);if ch=' ' thenbegina[i,j]:=true;endelsebegina[i,j]:=false;end;if (i=1) or (i=m*2+1) or (j=1) or (j=n*2+1) then//在边上if ch=' ' thenbeginif (x1=0) and (y1=0) thenbeginx1:=i;y1:=j;endelsebeginx2:=i;y2:=j;end;end;end;readln;end;p[x1,y1]:=1;p[x2,y2]:=1;for i:=1 to m*2+1 dofor j:=1 to n*2+1 dobeginp[i,j]:=maxlongint;//初值end;//两个出口bfs(x1,y1);bfs(x2,y2);for i:=2 to m*2 dofor j:=2 to n*2 do if (p[i,j]>max) and (p[i,j]<>maxlongint) and (i mod 2=0) and (j mod 2=0) then {找最大值}max:=p[i,j];write(max div 2+1);//因为记录的是格数不是字符数
end.

最后才发现这题难度其实是在读入和处理。还是蛮水的

这篇关于P1519 穿越栅栏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772475

相关文章

经验笔记:NAT穿越技术

NAT穿越技术经验笔记 随着互联网的普及和技术的发展,P2P(Peer to Peer,点对点)通信成为许多应用的核心功能之一。然而,网络地址转换(NAT)设备的存在常常成为实现P2P通信的一个障碍。本文旨在总结NAT穿越技术的基本原理及其配置方法,并探讨如何保障NAT穿越的安全性。 1. NAT穿越技术概述 NAT穿越技术是一种使位于不同NAT网络中的主机能够直接通信的技术。NAT(Net

FPV穿越机蜂群系统技术详解

FPV穿越机蜂群系统技术是一种结合了无人机集群控制、自主导航、通信技术和实时数据处理等先进技术的综合性系统。以下是对FPV穿越机蜂群系统技术的详细解析: 一、系统概述 FPV穿越机蜂群系统是指将多架FPV穿越机通过先进的通信和控制技术组织成一个高度协同的群体,以执行复杂多样的任务。该系统模仿了自然界中生物群体(如蜜蜂、蚂蚁)的行为模式,利用群体智能实现高效协同作业。 二、关键技术

2020年B题高穿越沙漠教社杯全国大学生数学建模竞赛题目与分析

↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑  ​ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

穿越Java世界的继承奇旅:从基类到子类的华丽蜕变

1.为什么要继承 2.什么是继承以及继承的方式 3.继承的一些语法 4.父类成员的访问 5.关键字super 6.关键字protected 7.关键字final 8.继承与组合 一:为什么要继承 ①代码重用:继承允许我们重用、扩展或修改父类的属性和方法,而无需重新编写相同的代码。这有助于减少代码冗余,提高代码的可维护性和可扩展性。 ②实现多态:多态是面向对象编程的三大特性之

【第51课】前后台功能点文件下载文件读取文件删除目录遍历目录穿越

免责声明 本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。 如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。 文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具

无人机之穿越机基础知识

一、用途与性能 主要用于竞赛、娱乐和极限飞行,特点是速度快、机动性强、反应灵敏,能够在短时间内做出迅速的加速、转向和翻滚动作,具有极高的飞行灵活性和第一视角飞行体验(FPV )。 穿越机通常体积小,续航时间较短,宜多采用DIY装配的方式,以便个性化定制和性能优化。 二、构造复杂性 结构紧凑,着重于减重和提升动力性能,通常采用轻量化材料,配备高速无刷电机、高性能电调和小型飞控系统。 三、操

ICE协议下NAT穿越的实现

前言: 之前写了篇关于WebRTC的文章:iOS下音视频通信-基于WebRTC ,由于它是基于点对点连接的,自然而然需要NAT穿越的技术,否则消息将无法传递。 在WebRTC使用了ICE协议框架,里面提到了STUN和TURN两个协议,而NAT穿越实现就是由这两个协议共同协调完成的。 正文: 一. 首先来简单讲讲什么是NAT? 原来这是因为IPV4引起的,我们上网很可能会处在一个NAT设备

穿越时光的经典:从LeNet到ResNet,机器学习中的CNN架构进化史

在机器学习的浩瀚星空中,卷积神经网络(Convolutional Neural Networks, CNNs)无疑是最为耀眼的星辰之一,它们以其卓越的图像处理能力,在计算机视觉领域书写了无数辉煌篇章。从最初的简单架构到如今复杂而高效的模型,经典CNN架构的演变不仅见证了人工智能技术的飞速进步,也深刻影响了我们对图像理解方式的认知。本文将带您踏上一场从LeNet到ResNet的经典CNN架构进化

2054. 骑马修栅栏

代码 #include<bits/stdc++.h>using namespace std;int mp[505][505];queue<int> ans;int du[505];int n=0,m,u,v;void dfs(int i){for(int j=1;j<=n;j++){if(mp[i][j]>=1){mp[i][j]--;mp[j][i]--;dfs(j);}}an

Vulkan教程 - 12 栅栏和信号量

这一章所有东西都会整合到一起了。我们将会写一个drawFrame方法,它会被主循环调用,将三角形呈现到屏幕上。创建drawFrame方法在mainLoop的while内处理事件后调用: void mainLoop() {while (!glfwWindowShouldClose(window)) {glfwPollEvents();drawFrame();}}