兔八哥躲藏在樹林旁邊的果園裡。果園有m × n棵樹,組成乙個m行n列的矩陣,水平或垂直相鄰的兩棵樹的距離為1。兔八哥在一棵果樹下。
獵人揹著獵槍走進了果園,他爬上一棵果樹,準備殺死兔八哥。
如果獵人與兔八哥之間沒有其它的果樹,獵人就可以看到兔八哥。
現己知獵人和兔八哥的位置,編寫程式判斷兔子所在的位置是否安全.
第一行為n,表示有n(n ≤ 100,000)組資料,每組資料的第一行為兩個正整數ax和ay,表示獵人的位置,第二行為兩個正整數bx和by,表示兔八哥的位置(1 ≤ ax, ay, bx, by ≤ 100,000,000)。
共有n行,每行為「yes」或「no」表示兔八哥的位置是否安全。
11 11 2
no第一眼看這道題時,估計很多人與我也一樣認為只應判斷兔八哥周圍八個格(如下圖a與b,a與c的關係)是否存在獵人,然而事實並非如此!!!(你們想太少了)
如圖,我們可以很直觀的看出其實若獵人在e、f,可憐的兔八哥a可謂在劫難逃,所以我們發現獵人的合理站位不侷限於兔八哥周圍八個格。
如圖,我們還能知道若獵人在d、g兩點兔八哥是安全的,所以我們便要拿這兩個點開刀(並與c、e做對比)。
我們假設兔八哥的座標是(0,0),則d為(2,2),c為(1,1);g為(-2,-4),e為(-1,-2)。
我們可以發現兔八哥要想成功躲避獵人,它與獵人橫座標之差的絕對值肯定和它與擋住他(它)們的那棵樹橫座標之差的絕對值呈倍數關係,縱座標亦然(句子有點長,請自行理解)。所以兔八哥要想躲避獵人的攻擊,它與獵人橫縱座標之差的絕對值必須同時是乙個大於1的整數的倍數,所以它們的最大公約數非1,意思是它們不互質(輸出yes)。所以獵人要想殺死兔八哥,自然要將它們互質(輸出no)。
完畢!——————分割不完全的分割線——————
以下是pascal**:
varn,m,i,j,k,x1,y1,x2,y2:longint;
function go(x,y:longint):longint;//求最大公約數(輾轉相除法)
begin
if y=0
then
exit(x)
else
go:=go(y,x mod
y);end
;begin
readln(n);//讀入資料組數
for m:=1
to n do
begin
readln(x1,y1);//讀入獵人的座標
readln(x2,y2);//讀入兔八哥的座標
if go(abs(x1-x2),abs(y1-y2))=1
then//判斷是否互質(最大公約數為1)
writeln('no
')else
writeln(
'yes');
end;end.
寒假1 17號總結
有好幾天沒寫總結了,原因主要是題改不完想著明天寫總結,然而到了明天又忘了寫,只能退到後天。明日復明日,明日何其多!以後寫總結必須當天寫完,今日事今日畢。我先總結一下前幾天吧。前幾天做題完全不在狀態,總是開小差,每天的題有時連暴力分都拿不齊,改題也比較拖拉,一點都不認真,晚上一看到後面的人在腐敗我的心...
11 7多校聯考
t1 為了避免晚上種種事情導致寫不成題解就先把t1寫了,畢竟也是很值得寫的。我這道題憑著乙個半感性半理性的想法意外的水到了80分 真的是很考人品啊 學競賽啊,墜重要的就是人品!先看正解 我們可以這樣化 t s bk1 i1 a b k2 i 2 a bk3 i3 a b k4 再化簡一下 t s b...
11 7學習心得
今天上午主要學習了css居中對齊的方式和css3的邊框與動畫製作。最後的實踐階段,我們還稍微引入了一點js的內容。css的劇種對齊主要講了margin,position,float,padding,line height和 絕對定位與transform調整水平居中 這幾種垂直居中與水平居中都有各自的...