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 ...
随机推荐
- 流的概念(来自MSDN)
本文来源 定义 提供字节序列的一般视图.Provides a generic view of a sequence of bytes. 流涉及三个基本操作 Streams involve three ...
- RSA算法原理(一)
如果你问我,哪一种算法最重要? 我可能会回答"公钥加密算法". 因为它是计算机通信安全的基石,保证了加密数据不会被破解.你可以想象一下,信用卡交易被破解的后果. 进入正题之前,我先 ...
- Linux下查看CPU信息
在linux操作系统中,CPU的信息在启动的过程中被装载到虚拟目录/proc下的cpuinfo文件中,我们可以通过 cat /proc/cpuinfo 查看一下:
- Supporting Multiple Screens 翻译 支持各种屏幕(上)
Supporting Multiple Screens 支持各种各样的屏幕尺寸.屏幕密度 Android runs on a variety of devices that offer differe ...
- (转)ASP.NET MVC路由配置
一.命名参数规范+匿名对象 1 routes.MapRoute(name: "Default", 2 url: "{controller}/{action}/{id}&q ...
- poj 2484 A Funny Game(博弈)
A Funny Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4639 Accepted: 2855 Desc ...
- [LeetCode] Word Break 解题思路
Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separa ...
- SDH,WDM, OTN, MSTP,Ethernet, PTN, IP RAN
概要:对带宽的需求,加上IP化严重,光通信技术不断地进化.最早的技术就是SONET.SDH,后来的技术都是在此技术上不断地改进和发展,以太网技术是一种局域网技术. SDH带宽小,提高带宽出现了WDM波 ...
- Little Kings - SGU 223(状态压缩)
题目大意:在一个N*N的棋盘上放置M个国王,已知国王会攻击与它相邻的8个格子,要求放置的额国王不能相互攻击,求放置的方式有多少种. 分析:用dp[row][state][nOne],表示本行状态sta ...
- poj 1659 Frogs' Neighborhood (贪心 + 判断度数序列是否可图)
Frogs' Neighborhood Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 6076 Accepted: 26 ...