NKOJ P3721 雷公蟲 模擬

2021-08-26 12:43:53 字數 2591 閱讀 8055

題目by

nodg

d byn

odgd

問題描述

雷公蟲,學名蜈蚣。雷公蟲與蛇、蠍、壁虎、蟾蜍並稱「五毒」,且位居五毒之首。 眾所周知,蜂窩往往由很多等大密鋪的正六邊形組成,這每乙個正六邊形是 乙個房間。其實雷公蟲的巢穴也是這樣的構造,不同的地方在於,相鄰的房間並 不是完全的牆壁間隔,而是有通路的。準確的說,如果兩個房間有一條公共邊,那麼就可以從其中乙個房間走

1 1

步到達另乙個房間。為了方便描述,我們給每個房間規定座標。如下圖,最中間三條座標軸相交 的房間座標是(0

,0,0

)' role="presentation">(0,

0,0)

(0,0

,0)。從

(0,0

,0) (0,

0,0)

先向xx

軸正方向走

a' role="presentation">a

a步,再向

y y

軸正方向走

b' role="presentation">b

b步,再向

z z

軸正方向走

c' role="presentation">c

c步,到達的房間座標(a

,b,c

) (a,

b,c)

。例如圖中紅色的房間,可以從(0

,0,0

) (0,

0,0)

先向xx

軸正方向走

5' role="presentation">5

5步,再向

y y

軸正方向走

4' role="presentation">4

4步,再向

z z

軸正方向走

1' role="presentation">1

1步到達, 所以座標是(5

,4,1

) (5,

4,1)

。乙個房間可以有很多個座標,例如(0

,0,0

) (0,

0,0)

可以是(2,

2,2)(2

,2,2

),紅 色房間的(5

,4,1

) (5,

4,1)

也可以是(−

短路。例如從紫色房間到橙色房間的最短路是

5 5

(一種路徑是,先向

y' role="presentation">y

y軸負方 向走

4 4

步,再向

x' role="presentation">x

x軸正方向走

1 1

步)。 那麼問題來了,任給兩個房間的座標, (1

)' role="presentation">(1)

(1)請你計算它們的最短路的長度; (2

) (2)

隨便輸出一條最短路的方案。

由於題目已經明確提示乙個點的座標有多種不同的表示方法,所以我們很容易去思考這些座標的共同點。

不難發現,任意座標表示中,x−

y x−y

,x−z x−z

,y−z y−z

是乙個定值。

也就是說,三個座標進行相同的加減變換,所表示的點是同乙個點。即:(

a,b,

c)=(

a−d,

b−d,

c−d)

=(0,

b−a,

c−a)

( a,

b,c)

=(a−

d,b−

d,c−

d)=(

0,b−

a,c−

a)。我們又發現,我們似乎可以控制起點與終點的某乙個座標相同且為

0 0

,而這兩點的距離也就與剩下的兩個座標有關。

但是這樣得到的距離並不一定最短,那怎麼辦?

模擬列舉一下控制哪個座標為

0' role="presentation">0

0即可。

我的**顯得比較累贅:

int a[4],b[4];

struct nodeans,try[4];

/*move12->x,y

move23->y,z

move13->x,z

*/#define abs(x) (abs(try[x].move1)+abs(try[x].move2)+abs(try[x].move3))

int main()

if(abs(2)<=abs(1)&&abs(2)<=abs(3))

if(abs(3)<=abs(1)&&abs(3)<=abs(2))

return

0;}

3721智慧型搜尋

簡要介紹 3721公司從1998年成立至今,一直專注於中文上網服務,是中文上網服務的開創者和行業領導者。作為乙個擁有數千萬使用者的網際網路基礎服務提供商,3721公司正在全力推動中國網際網路的中文化和本地化。3721公司提供的中文上網服務 3721 網路實名 使使用者無須記憶複雜的 直接輸入中文名稱...

怎樣對付煩人的3721!?

今天早上一來上班,有人在qq裡告訴說,將c winnt downloaded program files 設為唯讀,3721就沒招了 呵。試了一下,好象沒用,這個東西實在煩。刪了來,再刪有來,真是是莫名其妙,招誰惹誰了啊!不過,發現,只要訪問過帶3721外掛程式的 它回提示是否安裝的時候,一定點選 ...

NKOJ P1377 火燒赤壁

一道從初學以來一直沒有a掉的題 果然還是我太菜了 kono題面噠!曹操平定北方以後,公元208年,率領大軍南下,進攻劉表。他的人馬還沒有到荊州,劉表已經病死。他的兒子劉琮聽軍聲勢浩大,嚇破了膽,先派人求降了。孫權任命周瑜為都督,撥給他三萬水軍,叫他同劉備協力抵抗曹操。隆冬的十一月,天氣突然回暖,颳起...