2017 9 22 松鼠的聚會 失敗總結

2021-08-08 14:57:46 字數 819 閱讀 7975

首先切比雪夫距離是不支援離散的,所以想要排序on的演算法必須將其轉成可以離散的計算方法

。。這個題要求的是切比雪夫距離和、、而他竟然可以轉化成曼哈頓距離、

曼哈頓距離:  max(y-yy+x-xx,y-yy+xx-x,yy-y+x-xx,yy-y+xx-x )

切比雪夫距離:max(y-yy,xx-x,yy-y,x-xx)

然後觀察二式特點,設 x=x+y  y=x-y,,帶入曼哈頓距離中,就變成了和下面一樣的、、(這個姑且算套路吧,因為常人除了列舉很難推出來)

然後就直接字首和字尾和移動搞搞就好了、、

注意:這題竟然緊卡long long,mdzz調了乙個小時、,所以ans初值除非設的極大,不然就老老實實的賦值吧、

碼:

#include#include#includeusing namespace std;

#define n 100005

#define ll long long

struct la

a[n];

ll qsum[n],hsum[n],qsum2[n],hsum2[n],qgs[n],qgs2[n],hgs[n],hgs2[n],ans,n,i;

bool cmp(la a,la b)

sort(a+1,a+1+n,cmp2);

for(i=1;i<=n;i++)

for(i=n;i>=1;i--)

ans=qsum[1]+hsum[1]+qsum2[1]+hsum2[1];

for(i=2;i<=n;i++)

printf("%lld",ans/2);

}

松鼠的聚會

有若干只松鼠住在可視為笛卡爾座標系的草原上,它們想選定其中乙隻的家作為目的地去參加聚會,並且不希望走太長距離,請你求出最小距離.值得注意的是,乙個點到其周圍八個點距離均為 1 此題我們不難發現,任意兩點間的距離為兩點間橫縱座標差的絕對值的較大值,我們一般將這種距離叫做切比雪夫距離.其實,笛卡爾座標系...

TJOI2013 松鼠聚會

題目描述 草原上住著一群小松鼠,每個小松鼠都有乙個家。時間長了,大家覺得應該聚一聚。但是草原非常大,松鼠們都很頭疼應該在誰家聚會才最合理。每個小松鼠的家可以用乙個點x,y表示,兩個點的距離定義為點 x,y 和它周圍的8個點 x 1,y x 1,y x,y 1 x,y 1 x 1,y 1 x 1,y ...

洛谷3964 松鼠聚會

p3964 首先學習一下曼哈頓距離和切比雪夫距離即二者之間的轉換。那根據切比雪夫距離的定義,只要x,y這個點到它周圍八個點的距離都是一的話,就是使用的切比雪夫距離。對於給出的n個點,選擇其中乙個點並計算它到其他點的距離的話,由於切比雪夫距離定義為 d max x1 x2 y1 y2 計算所有點到當前...