题意:
这天,SJY显得无聊。在家自己玩。在一个棋盘上,有N个黑色棋子。他每次要么放到棋盘上一个黑色棋子,要么放上一个白色棋子,如果是白色棋子,他会找出距离这个白色棋子最近的黑色棋子。此处的距离是 曼哈顿距离 即(|x1-x2|+|y1-y2|) 。现在给出N
思路:kdtree第一题。
kdtree是个什么东西呢?
比如现在有一些二维平面上的点,我们按照维度首先进行一次划分:
比如第一...
分类:
其他好文 时间:
2014-10-17 12:03:46
阅读次数:
157
题意:
N*N的矩阵中有M个点可以放稻草人,且给覆盖距离R
每个稻草人能覆曼哈顿距离R以内的点
问最少需要多少个稻草人
思路:
因为范围很小,直接可以暴力
注意稻草人所在的位置是不需要被覆盖的
代码:
#include"cstdlib"
#include"cstdio"
#include"cstring"
#include"cmath"
#include"queue"
#inclu...
分类:
其他好文 时间:
2014-10-15 21:54:41
阅读次数:
139
题目大意:初始给定平面上的一个点集,提供两种操作:
1.将一个点加入点集
2.查询距离一个点最小的曼哈顿距离
K-D树是啥。。。不会写。。。我只会CDQ分治
对于一个询问,查询的点与这个点的位置关系有四种,我们现在只讨论左下角,剩余三个象限同理
设询问的点为(x,y),查询的点为(x',y')
则dis=(x-x')+(y-y')=(x+y)-(x'+y')
于是我们要找到查询的点左...
分类:
其他好文 时间:
2014-10-11 20:20:06
阅读次数:
342
题目大意:一些农场由一些东西向或者南北向的路相互连接。在不断加边的过程中会询问两个农场的曼哈顿距离是多少,如果目前还不连通,那么输出-1。
思路:带权并查集,f[i]为点i到father[i]的距离,要维护两个值,一个是东西向的距离,一个是南北向的距离,因为以后更新的时候要用到。在合并的时候有些特殊。现在有一条边(x->y),设fx为x的根,fy为y的根,那么现在知道f到fx的距离,y到...
分类:
Web程序 时间:
2014-10-10 15:36:14
阅读次数:
281
题目大意:给定一些点之间的位置关系,求两个点之间的曼哈顿距离
此题土豪题,不过POJ也有一道同样的题,可以刷一下
别被题目坑到了,这题不强制在线,把询问离线处理即可
然后就是带权并查集的问题了。。。将权值设为方向向量,重载+和-,按照正常权值并查集做就行了
#include
#include
#include
#include
#define M 40400
using namespace...
分类:
Web程序 时间:
2014-10-09 23:28:21
阅读次数:
274
首先介绍一下曼哈顿,曼哈顿是一个极为繁华的街区,高楼林立,街道纵横,从A地点到达B地点没有直线路径,必须绕道,而且至少要经C地点,走AC和 CB才能到达,由于街道很规则,ACB就像一个直角3角形,AB是斜边,AC和CB是直角边,根据毕达格拉斯(勾股)定理,或者向量理论,都可以知道用AC和CB 可以表...
分类:
其他好文 时间:
2014-10-09 20:15:27
阅读次数:
322
今年上海网络赛的一道题目 , 跟 HDU 2295 如出一辙 , 就是距离的计算一个是欧几里得距离 , 一个是曼哈顿距离
学完DLX感觉这题好水 ,就是一个裸的重复覆盖
注意下别溢出就行了
#include
#include
#include
#include
#include
#include
using namespace s...
分类:
其他好文 时间:
2014-10-04 15:08:06
阅读次数:
195
题目大意:紧急疏散。有一张地图,‘.’表示人,‘D’表示门,人需要走曼哈顿距离的单位时间才1能到达门。一个门一个时刻只能通过一个人。求多长时间能疏散完毕。
思路:二分答案+最大流满流判定。先BFS处理出每个人与门的距离。二分最小时间,然后连边。S向每个人连流量为1的边,每个人向二分的时间之内能到达的门连流量为1的边。每个门向T连流量为t的边。然后最大流判定是否满流。
(数组大小我是瞎开...
分类:
其他好文 时间:
2014-10-02 19:42:43
阅读次数:
227
最小费用最大流.....
建图:
源点 到 每栋楼 连容量为B,花费为0 的边
每个避难所 到 汇点 连容量为C,花费为0 的边
楼 到 避难所 连容量INF,花费 曼哈顿距离+1 的边
跑费用流后比较.... POJ 2175时限只有一秒.....会超时
Evacuation Plan
Time Limit: 10000MS
...
分类:
其他好文 时间:
2014-09-26 15:05:48
阅读次数:
330
HDU 4862 Jump
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4862
题意:给定一个N*M的矩阵,矩阵里面为0~9的数字。现在规定从一个点可以跳到它正下方和正右方的点,花费的费用为曼哈顿距离 - 1。如果在跳的过程中,两个点的数字相同,那么将得到该点的数字。规定可以从任意点开始跳,每个点只能经过1次。最多可以选择K个点来作为起点...
分类:
其他好文 时间:
2014-09-23 00:25:53
阅读次数:
260