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 ...
随机推荐
- nutch 1.7 修改代码后如何编译发布,并集群采集攻略
nutch 1.3之后,分布式的可执行文件与单机可执行文件进行了分离 接上篇,nutch 1.7 导入 eclipse 本篇所要解决的问题:nutch下载下来经过简单的配置即可进行采集,但有时候我们需 ...
- bzoj 2226: [Spoj 5971] LCMSum 数论
2226: [Spoj 5971] LCMSum Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 578 Solved: 259[Submit][St ...
- [BZOJ 1047] [HAOI2007] 理想的正方形 【单调队列】
题目链接:BZOJ - 1047 题目分析 使用单调队列在 O(n^2) 的时间内求出每个 n * n 正方形的最大值,最小值.然后就可以直接统计答案了. 横向有 a 个单调队列(代码中是 Q[1] ...
- Tomcat架构(三)
嵌套组件 这些组件是针对Tocmat做的特定实现,他们的主要目的是使各种Tomcat容器可以完成各自的工作. 1.阀(Valve) valve是处理元素,它可以被包含在每个Tomcat容器的处理路径中 ...
- php的ob实现页面静态化
php页面静态化的原理,用最少的代码解释页面静态化 如何应用:在插入或更新数据到数据库时,就执行一下代码是一种比较好的方法.比如:php执行add()方法时(就是插入数据时) //开启缓存 Ob_st ...
- [SQL Server]一次执行资料夹内的.sql 指令码
原文:[SQL Server]一次执行资料夹内的.sql 指令码 初始资料库时,我们Developers们会准备很多.sql指令码来建立资料表.检视甚至初始资料,那麽要怎麽一次执行资料夹内的*.sql ...
- Andoid 学习笔记 AppCompatEditText
android.support.v7.widget.AppCompatEditText 只有浮动标签 style中添加 <style name="txt_lab" paren ...
- cout输出字符串指针
先给出通过字符型指针输出字符串的示例代码,如下: #include <iostream>using std::cout;using std::endl; int main(){ const ...
- CONCATENATION 引发的性能问题
背景是在一台11gR2的机器上,开发反映一个批处理比以前慢了3倍.经过仔细查看该SQL的执行计划,发现由于SQL中使用了or,导致CBO走出了一个非常糟糕的CONCATENATION路径. no_ex ...
- [IoLanguage]Io Programming Guide[转]
Io Programming Guide Introduction Perspective Getting Started Downloading Installing Binaries Ru ...