首页 技术 正文
技术 2022年11月19日
0 收藏 628 点赞 3,656 浏览 1273 个字
/*
丧心病狂的最短路 关键是建图
根据题目中给的路 拆出节点来 建图 (i,j) -->(j-1)*n+i
然后根据障碍 把死路 湖覆盖的dis改变成极大值
然后Floyd
然后 然后就没有然后了....
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 99999999;
using namespace std;
int g[][],x[],y[],s,n,m,t,k;
void Input()
{
cin>>n>>m>>t>>k;
s=n*m;//图中节点个数
int i,j;
for(i=;i<=n;i++)
cin>>x[i];
for(i=;i<=m;i++)
cin>>y[i];
}
void Build()
{
int i,j;
memset(g,/,sizeof(g));//初始化
for(i=;i<=s;i++)
g[i][i]=;
for(i=;i<=n;i++)//先按给出的路建一遍
for(j=;j<=m;j++)//以(i,j)为基点 四个方向建图
{
if(i>)g[(j-)*n+i][(j-)*n+i-]=x[i]-x[i-];//向左
if(j>)g[(j-)*n+i][(j--)*n+i]=y[j]-y[j-];//向上
if(i<n)g[(j-)*n+i][(j-)*n+i+]=x[i+]-x[i];//向右
if(j<m)g[(j-)*n+i][(j-+)*n+i]=y[j+]-y[j];//向下
}
int x1,y1,x2,y2;
for(i=;i<=t;i++)//处理路
{
cin>>x1>>y1>>x2>>y2;
g[(y1-)*n+x1][(y2-)*n+x2]=maxn;
g[(y2-)*n+x2][(y1-)*n+x1]=maxn;
}
for(int l=;l<=k;l++)//处理湖 注意:边界可以走
{
cin>>x1>>x2>>y1>>y2;
for(i=x1;i<=x2-;i++)//处理x方向的 只向右延伸
for(j=y1+;j<=y2-;j++)
{
g[(j-)*n+i][(j-)*n+i+]=maxn;
g[(j-)*n+i+][(j-)*n+i]=maxn;
}
for(j=y1;j<=y2-;j++)//处理y方向的 只向下延伸
for(i=x1+;i<=x2-;i++)
{
g[(j-)*n+i][(j-+)*n+i]=maxn;
g[(j-+)*n+i][(j-)*n+i]=maxn;
}
}
}
void Floyd()
{
int i,j,k;
for(k=;k<=s;k++)
for(i=;i<=s;i++)
for(j=;j<=s;j++)
if(g[i][j]>g[i][k]+g[k][j])
g[i][j]=g[i][k]+g[k][j];}
void Printf()
{
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
cout<<g[(y1-)*n+x1][(y2-)*n+x2];
}
int main()
{
Input();
Build();
Floyd();
Printf();
return ;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,110
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,584
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,431
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,202
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,837
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,920