http://codevs.cn/problem/1024/

floyd 走起

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std; #define inf 0x7ffffff
#define gc getchar() int x[], y[], n, m, t, k, x1, y1, x2, y2, a, b, f[][]; inline int read(){
int x = ; char c = gc;
while(c < '' || c > '') c = gc;
while(c >= '' && c <= '') x = x * + c - '', c = gc;
return x;
} int main()
{
n = read(); m = read(); t = read(); k = read();
for(int i = ; i <= n; i ++) x[i] = read();
for(int i = ; i <= m; i ++) y[i] = read();
for(int i = ; i <= n * m; i ++)
for(int j = ; j <= n * m; j ++)
if(i == j) f[i][j] = ; else f[i][j] = inf;
for(int i = ; i <= n; i ++)
for(int j = ; j <= m; j ++){
if(i > ) {a = i - ; b = j; f[(j - ) * n + i][(b - ) * n + a] = x[i] - x[i - ];}
if(j > ) {a = i; b = j - ; f[(j - ) * n + i][(b - ) * n + a] = y[j] - y[j - ];}
if(i < n) {a = i + ; b = j; f[(j - ) * n + i][(b - ) * n + a] = x[i + ] - x[i];}
if(j < m) {a = i; b = j + ; f[(j - ) * n + i][(b - ) * n + a] = y[j + ] - y[j];}
}
for(int i = ; i <= t; i ++){
x1 = read(); y1 = read(); x2 = read(); y2 = read();
f[(y1 - ) * n + x1][(y2 - ) * n + x2] = inf;
f[(y2 - ) * n + x2][(y1 - ) * n + x1] = inf;
}
for(int i = ; i <= k; i ++) {
x1 = read(); x2 = read(); y1 = read(); y2 = read();
for(a = x1; a <= x2 - ; a ++)
for(b = y1 + ; b <= y2 - ; b ++) {
f[(b - ) * n + a][(b - ) * n + a + ] = inf;
f[(b - ) * n + a + ][(b - ) * n + a] = inf;
}
for(b = y1; b <= y2 - ; b ++)
for( a = x1 + ; a <= x2 -; a ++) {
f[(b - ) * n + a][b * n + a] = inf;
f[b * n + a][(b - ) * n + a] = inf;
}
}
for(int k = ; k <= n * m; k ++)
for(int i = ; i <= n * m; i ++)
for(int j = ; j <= n * m; j ++)
f[i][j] = min(f[i][k] + f[k][j], f[i][j]);
x1 = read(); y1 = read(); x2 = read(); y2 = read();
printf("%d", f[(y1 - ) * n + x1][(y2 - ) * n + x2]);
return ;
}

[Codevs] 一塔湖图的更多相关文章

  1. 一塔湖图(codevs 1024)

    题目描述 Description 小松所在的PK大学校园又称作燕园,是一个十分美丽的校园.有博雅塔,未名湖,亚洲最大的高校图书馆,人称“一塔湖图”.但是由于燕园的历史比较悠久,所以很多的老房子都要不断 ...

  2. codevs1024一塔湖图(丧心病狂的建图)

    /* 丧心病狂的最短路 关键是建图 根据题目中给的路 拆出节点来 建图 (i,j) -->(j-1)*n+i 然后根据障碍 把死路 湖覆盖的dis改变成极大值 然后Floyd 然后 然后就没有然 ...

  3. C++基础知识-Day5

    今天主要讲的是类的扩展 1.类成员函数的存储方式 首先我们介绍类成员函数的存储方式,C++引入面向对象的概念之后,C语言中的一些比如static/const等原有语义,作一些升级,此时既要保持兼容,还 ...

  4. 2017“编程之美”终章:AI之战勇者为王

    编者按:8月15日,第六届微软“编程之美”挑战赛在选手的火热比拼中圆满落下帷幕.“编程之美”挑战赛是由微软主办,面向高校学生开展的大型编程比赛.自2012年起,微软每年都在革新比赛命题.紧跟时代潮流, ...

  5. 程序员PS技能(四):程序员创建PSD文件、展示简单PSD设计流程,上传PSD至蓝湖,并下载Demo切图

    前言   本篇是程序员仿照ui设计创建psd且切图五个按钮效果上传至蓝湖,本篇篇幅较长,整体完成一个目标,没有分篇幅了.   前提条件   已经安装了PS,已经在PS上安装了蓝湖插件,并且曾经已经上传 ...

  6. codevs 1080 线段树点修改

    先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...

  7. codevs 1228 苹果树 树链剖分讲解

    题目:codevs 1228 苹果树 链接:http://codevs.cn/problem/1228/ 看了这么多树链剖分的解释,几个小时后总算把树链剖分弄懂了. 树链剖分的功能:快速修改,查询树上 ...

  8. hihoCoder 1425 : What a Beautiful Lake(美丽滴湖)

    hihoCoder #1425 : What a Beautiful Lake(美丽滴湖) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 ...

  9. 习题:codevs 2822 爱在心中 解题报告

    这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...

随机推荐

  1. Python完成迪杰斯特拉算法并生成最短路径

    def Dijkstra(network,s,d):#迪杰斯特拉算法算s-d的最短路径,并返回该路径和代价 print("Start Dijstra Path……") path=[ ...

  2. idea的项目结构

    idea项目结构: 一般是创建一个empty project,然后再创建一个个的Module.

  3. High load average analyze

    https://www.tummy.com/articles/isolating-heavy-load/ https://www.tecmint.com/understand-linux-load-a ...

  4. linux学习之路(二)--centos7安装Redis(单点)

    一.安装redis 1.进入/usr/local/,新建services目录,进入该目录,下载redis wget http://download.redis.io/releases/redis-4. ...

  5. 在论坛中出现的比较难的sql问题:30(row_number函数 物料组合问题)

    原文:在论坛中出现的比较难的sql问题:30(row_number函数 物料组合问题) 在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所 ...

  6. Springmvc的@ResponseBody方法返回Model时404:跳转jsp视图

    我有一个控制器方法,添加了@ResponseBody注解 @GetMapping(value = "/users") @ResponseBody public Map<Str ...

  7. Detection综述

    4月中旬开始,尝试对目标检测领域做一个了解,看了差不多6-7篇paper,在这里记录一下: 一.Detection简介 人脸检测的目标是找出图像中所有的人脸对应的位置,算法的输出是人脸外接矩形在图像中 ...

  8. 【SpringMVC】拦截器

    一.概述 1.1 拦截器的异常场合 1.2 拦截器中的方法 二.示例 2.1 定义两个拦截器 2.2 配置拦截器 2.3 执行顺序 三.拦截器应用 3.1 需求 3.2 用户登陆及退出功能开发 3.3 ...

  9. django2以后的版本Foreignkey的变动

    目录 class User(AbstractUser): """用户表""" job = models.ManyToManyField(to ...

  10. Android小经验:启动Eclipse,出现提示“......发现了以元素'd:skin'开头的无效内容。此处不应含有子元素...”

    如图所示: 解决办法: 进入sdk目录下,把D:\android-sdks\system-images\android-22\android-wear\armeabi-v7a\devices.xml和 ...