久久未至的Codevs1024一塔湖图解题报告

一直想给这个题写个解题报告但是给忘了OTZ难产了这么久终于出来了
这个题当时坑了我一个星期整,所以一定要写一个解题报告纪念一下
1024 一塔湖图 

时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold

Pending

总耗时: 0 ms
0 / 0 数据通过测试.
题目描述 Description

       小松所在的PK大学校园又称作燕园,是一个十分美丽的校园。有博雅塔,未名湖,亚洲最大的高校图书馆,人称“一塔湖图”。但是由于燕园的历史比较悠久,所以很多的老房子都要不断地维修(就像故宫现在在维修一样),这导致了燕园中的一些路是禁止通行的。

       十分有趣的是,整个燕园的形状是南北朝向的一个四边形,而燕园的建筑格局也十分有规则。你可以假设他被n条横向的路和m条纵向的路分割成了大大小小的很多块区域。禁止通行的那些路正好在两个相邻的交叉路口之间。小松十分想知道,他要从他宿舍所在的A路口到达图书馆所在的B路口需要多少时间(他只能沿着能够通行的道路行走,并假设小松走1单位长度需要1单位的时间)?你能帮助他吗?(不要误会小松如此勤奋要去图书馆看书,小松去图书馆的主要原因是那里是全校PPMM最多的地方)。

       另外要说的是,燕园中还有很多的地方是湖。所以湖所占的区域也是不能通行的。

输入描述 Input Description

       输入文件的第一行包含4个整数n(1≤n≤10),m(1≤m≤10),t(1≤t≤100),k(1≤k≤10)。分别表示燕园中有n条纵向的路和m条横向的路,t条不能通行的路,还有k个湖。接下来的一行有n个整数a1..anai(0≤ai≤100)表示从西往东第i条纵向向路离燕园最西端的距离;再接下来的一行有m个整数b1..bmbi(0≤bi≤100)表示从南往北第i条横向路离燕园最南端的距离;再接下来k行,每行四个整数x1,x2,y1,y2表示由西向东的第x1条路到第x2条路和由南向北的第y1条路到第y2条路之间是一个湖。要注意的是湖的边缘是可以行走的,湖也可能有重叠,如果两个湖接壤的话,接壤的部分也是可以行走的;再接下来t行,每行4个整数x1,y1,x2,y2,表示路口(x1,y1)和(x2,y2)之间的路是静止通行的,你可以认定该两个路口一定是相邻的;最后一行包含4个整数x1,y1,x2,y2,表示小松所在的路口A(x1,y1)和图书馆所在的路口B(x2,y2)。

注:路口(xy)表示由西向东的第x条纵向路和由南向北的第y条横向路的交叉口。

输出描述 Output Description

输出包括一个整数,表示小松最少需要花费的时间。保证不会出现无解的情况。

样例输入 Sample Input

4 4 2 1

0 1 3 4

0 1 3 4

2 4 2 4

2 2 3 2

2 4 3 4

1 3 4 4

样例输出 Sample Output

11
没错就是这个看起来简单的破题坑了我一个星期
为什么
1.这题的建图实在太特么麻烦了!!!!!!!!!不给你点给你几条路,让你一个点一个点的编号然后建图,边权的运算还要用绝对值(╯‵□′)╯︵┻━┻这么逗比的题目简直不想再看
2.由于审题不够认真,整个程序大改动了三次OTZ在这里要提醒诸位,审题不仔细会毁了你的一生QAQ
3.。。。
帖代码

#include
#include
#include
#include
#include
using namespace std;
int n,m,t,k;
int dis[101][101];
int a[11],b[11];
int x[11],xx[11],yy[11],y[11];
int xxx[101],xxxx[101],yyy[101],yyyy[101];
int startx,starty,endx,endy;
int maxn;
int start,end;
bool bo[101][101];
int work(int q)
{
if (q>=n&&q%n==0) return n;
else return q%n;
}
int owo(int w)
{
if (w/n==0) return 1;
if (w==n) return 1;
if (work(w)"<"<


刚看到代码你是不是很激动的 提交了一遍
但是刚提交你就会发现 80 wronganswer
没错这就是 这个题的第三个逗比之处
最后一个输入数据有问题(╯‵□′)╯︵┻━┻
本来应当先建湖后封路,但这个逗比把路放在前面了(╯‵□′)╯︵┻━┻
知道这个秘密之后我简直想砸电脑!
费劲千辛万苦骗出输入数据发现了这个秘密
总之好歹是顺利结束了这个题了。 

你可能感兴趣的:(图论,最短路)