codevs1024一塔湖图(丧心病狂的建图)
/*
丧心病狂的最短路 关键是建图
根据题目中给的路 拆出节点来 建图 (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 ;
}
codevs1024一塔湖图(丧心病狂的建图)的更多相关文章
- 图论--网络流--最大流--POJ 3281 Dining (超级源汇+限流建图+拆点建图)
Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, an ...
- BZOJ-1305 dance跳舞 建图+最大流+二分判定
跟随YveH的脚步又做了道网络流...%%% 1305: [CQOI2009]dance跳舞 Time Limit: 5 Sec Memory Limit: 162 MB Submit: 2119 S ...
- Invitation Cards(邻接表+逆向建图+SPFA)
Time Limit: 8000MS Memory Limit: 262144K Total Submissions: 17538 Accepted: 5721 Description In ...
- hdu4560 不错的建图,二分最大流
题意: 我是歌手 Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Subm ...
- P5471- K-D tree优化建图-弹跳
P5471- K-D tree优化建图-弹跳 优化建图是一种思想. 题意 有\(n\)个城市分布在小鸟岛上,有\(m\)个弹弓分布在这些城市里.因为弹弓体积大,固定麻烦,所以每个弹弓只能把小鸟弹飞到一 ...
- 一塔湖图(codevs 1024)
题目描述 Description 小松所在的PK大学校园又称作燕园,是一个十分美丽的校园.有博雅塔,未名湖,亚洲最大的高校图书馆,人称“一塔湖图”.但是由于燕园的历史比较悠久,所以很多的老房子都要不断 ...
- 【BZOJ-1570】BlueMary的旅行 分层建图 + 最大流
1570: [JSOI2008]Blue Mary的旅行 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 388 Solved: 212[Submit ...
- 【BZOJ-4289】Tax 最短路 + 技巧建图
4289: PA2012 Tax Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 168 Solved: 69[Submit][Status][Dis ...
- CF467D Fedor and Essay 建图DFS
Codeforces Round #267 (Div. 2) CF#267D D - Fedor and Essay D. Fedor and Essay time limit per test ...
随机推荐
- php mysql PDO使用
<?php $dbh = new PDO('mysql:host=localhost;dbname=access_control', 'root', ''); $dbh->setAttri ...
- VS中无法加入断点进行调试解决方案
原文地址:http://blog.csdn.net/gukesdo/article/details/6535054 [ 1] 以前也遇到过同样的问题,但没有问个为什么,也没有探个毕竟.昨天调试一个DL ...
- 【POJ2417】baby step giant step
最近在学习数论,然而发现之前学的baby step giant step又忘了,于是去翻了翻以前的代码,又复习了一下. 觉得总是忘记是因为没有彻底理解啊. 注意baby step giant step ...
- 查看SQL Server数据库中各个表和视图的索引所占的空间大小
;with cte as ( (select t.name as TableName,i.name as IndexName, sum(row_count)as row_count, SUM (s.u ...
- Tomcat默认打开项目设置
Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下: 1.打开tomcat的安装根目录,找到Tom ...
- CONCATENATION 引发的性能问题
背景是在一台11gR2的机器上,开发反映一个批处理比以前慢了3倍.经过仔细查看该SQL的执行计划,发现由于SQL中使用了or,导致CBO走出了一个非常糟糕的CONCATENATION路径. no_ex ...
- bzoj1816
这道题不是很难,二分答案+判定即可 注意在一套牌中Joker只能用一次 ..] of longint; mid,l,r,n,m,i,ans:longint; function check(x: ...
- cheerio返回数据格式
通读cheerio API { options: { decodeEntities: false, withDomLvl1: true, normalizeWhitespace: false, xml ...
- 硬盘安装RedHat Enterprise Linux 6(转载)
准备条件: (1)RedHat Enterprise Linux 6安装镜像 下载见文章末尾 (2)grub文件(用于引导安装) ...
- (转载)php获取mysql版本的几种方法小结
(转载)http://www.jb51.net/article/13930.htm 查询当前连接的MYSQL数据库的版本,可以用下面SQL语句来实现 select VERSION(); 当前$res= ...