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 ... 
随机推荐
- python时间处理
			1.获取当前时间的两种方法: import datetime,time now = time.strftime("%Y-%m-%d %H:%M:%S") print now now ... 
- jQuery设置按钮被点击状态
			js和jquery如何使按钮失效,很简单,只要设置disabled属性为true即为不可用状态即可 1.JS方法一: document.getElementByIdx("btn") ... 
- jquery deferred
			http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html http:// ... 
- Andoid 学习笔记 AppCompatEditText
			android.support.v7.widget.AppCompatEditText 只有浮动标签 style中添加 <style name="txt_lab" paren ... 
- 全表扫描出现db file sequential read
			SESSION 1执行 SQL> update test1 set id=1000; SESSION 2 : select * from test1 如果表上面有大量的行迁链接,会是单块读等待事 ... 
- 利用ROWID快速执行关联更新
			一.构造相关表P1,P2 create table p1(id int,name char(10)); create table p2(id int,name char(10)); 二.批量插入数据 ... 
- ping详解
			Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”.不能打开网页时会说“你先ping网关地址192.168.1.1试试”. ... 
- Ubuntu 桌面歌词
			Ubuntu 有个用来显示歌词软件叫 osd-lyrics. 这个软件的强大之处在于他可以和各种播放器配合, 并且可以自动下载歌词. 自从升级到14.04后不能用了,便以为该软件被废弃了. 无意中发现 ... 
- 字符串(后缀自动机):Ahoi2013 差异
			Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Output 54 HINT 2<=N< ... 
- app.config应该放哪?
			一:做了一个简单的三层构架的小例子,在主项目里调用工具类的方法实现在数据库里添加一条信息.先看下错误的提示信息是什么样的,如下图一,图二是调用工具类.直接在工具类里写上连接字符串就没问题,如果写到ap ... 
