以下内容来自ShallWe’s Blog
题目
题目链接
Description
一个10^6行10^6列的网格图,上面有一些牛、花和一些矩形围栏,围栏在格子的边界上,牛和花在格子里,牛只能向下或向右走,牛也不能穿过围栏和地图边界,求每头牛它能到达的花的数量。注意栅栏不会相交
Input
第一行一个数f表示矩形围栏的数量。
接下来f行,每行四个数
x1,y1,x2,y2
,表示
(x1,y1)
在围栏内部矩形的左上角,
(x2,y2)
在右下角。
接下来一行一个数m表示花的数量。
接下来m行每行两个数x,y,表示在(x,y)处有一朵花。
接下来一行一个数n表示牛的数量。
接下来n行每行两个数x,y,表示在(x,y)处有一头牛。
Output
总共n行,每行一个数ans,第i个数表示第i头牛能到ans个花。
解题报告
考试的时候连暴力都没有打出来,真是十分的失败。 介绍一点部分分的做法:
- 如果 x,y 比较小的话,那么很显然可以直接暴力
dfs
- 如果 n 比较小的话,可以离散化,然后暴力
O(n3) - 同样如果要做到 O(n2