二分 曼哈頓距離 51Nod 1671 貨物運輸

2021-08-09 16:26:26 字數 777 閱讀 3902

題面在這裡

首先想到二分,設當前答案為

s ,傳送門的兩個端點為x,

y 則對於ti−

si>

s 的路徑,必須滿足: |x

−si|

+|y−

ti|≤

s 這個可以理解為曼哈頓距離

而到某個定點(s

i,ti

) 的曼哈頓距離相等的點構成的集合是乙個正方形

相當於判斷所有正方形是否有交

示例程式:

#include

#include

using

namespace

std;

inline

char nc()

inline

int red()

while ('0'

<=ch&&ch<='9') res=res*10+ch-48,ch=nc();

return res*f;

}const

int maxn=500005,inf=0x3f3f3f3f;

int n,q;

struct data

}a[maxn];

bool check(int s)

return

1; }

int main()

int l=0,r=n,ans=n;

while (l<=r)

printf("%d",ans);

return

0;}

51nod1213 二維曼哈頓距離最小生成樹

二維平面上有n個座標為整數的點,點x1 y1同點x2 y2之間的距離為 橫縱座標的差的絕對值之和,即 abs x1 x2 abs y1 y2 也稱曼哈頓距離 求這n個點所組成的完全圖的最小生成樹的邊權之和。input 第1行 1個數n,表示點的數量。2 n 50000 第2 n 1行 每行2個數,表...

51nod 1213 二維曼哈頓距離最小生成樹

1213 二維曼哈頓距離最小生成樹 基準時間限制 4 秒 空間限制 131072 kb 分值 160 難度 6級演算法題 收藏關注二維平面上有n個座標為整數的點,點x1 y1同點x2 y2之間的距離為 橫縱座標的差的絕對值之和,即 abs x1 x2 abs y1 y2 也稱曼哈頓距離 求這n個點所...

51Nod1799 二分答案

lyk最近在研究二分答案類的問題。對於乙個有n個互不相同的數且從小到大的正整數數列a 其中最大值不超過n 若要找乙個在a中出現過的數字m,乙個正確的二分程式是這樣子的 l 1 r n mid l r 2 while l r 最終a r 一定等於m。但是這個和諧的程式被熊孩子打亂了。熊孩子在一開始就將...