貝希被困在乙個三角形的迷宮之中。這個迷宮有n行(1 <= n <= 1000000)。比如下圖是乙個3行的迷宮。
迷宮的第i行有2*i-1個三角形,從左到右分別編號為(i,1)、(i,2)等等。貝希每次可以從乙個三角形走到任意乙個乙個跟當前的三角形有鄰邊的三角形。比如說,如果她目前處於三角形(3,3),那麼,她可以走到三角形(3,2)、(3,4)和(4,4)。貝希每次需要一分鐘的時間來移動到下乙個三角形。
農夫約翰發現貝希被困了!於是她跟蹤貝希的iphone手機(可憐的觸控螢幕~),得知貝希目前處於三角形(si,sj)。因為約翰對貝希有著無窮無盡的濃濃愛意,所以他希望貝希能盡可能快地回到他的身邊。
在迷宮的三角形之中,有m(1 <= m <= 10000)個是出口。在任何乙個出口都可以讓貝希逃離迷宮。一旦貝希進入乙個作為出口的三角形,她用多一分鐘就可以逃離這個迷宮。
找到乙個可以讓貝希逃離迷宮最小時間t,並輸出她應該從哪乙個出口逃離迷宮,這個出口記為(outi,outj)。如果有多個出口同時需要時間t,輸出那個行的編號小的出口,如果仍然有多個出口,輸出那個列的編號小的。
第一行:兩個由空格隔開的整數:n和m。
第二行:兩個由空格隔開的整數:si和sj。
第三到第m+2行:第i+2行有兩個由空格隔開的整數ei和ej,表示三角形(ei,ej)是出口。
第一行:兩個由空格隔開的整數:outi和outj。
第二行:乙個單獨的整數:t。
4 22 1
3 54 4
4 44
不要看題目給你的座標,我們換一種表示方法
把三角形按三個方向分層,座標為x,y,z
最後的答案是|x1-x|+|y1-y|+|z1-z|
x=x,y=(y+1)/2,z=x-y/2
#include#include#includeusing namespace std;
int ans=2147483647;
int n,m,px,py,sx,sy;
int abs(int x)
int main()
} printf("%d %d\n",sx,sy);
printf("%d",ans+1);
}
1320 拯救奶牛
1320.拯救奶牛 貝希被困在乙個三角形的迷宮之中。這個迷宮有n行 1 n 1000000 比如下圖是乙個3行的迷宮。迷宮的第i行有2 i 1個三角形,從左到右分別編號為 i,1 i,2 等等。貝希每次可以從乙個三角形走到任意乙個乙個跟當前的三角形有鄰邊的三角形。比如說,如果她目前處於三角形 3,3...
JZOJ A組 量子糾纏
第一行包含乙個正整數 m,代表運算元。接下來 m 行,每行可能有以下形式 1 s 代表將數字串 s 加入資訊集中 2 s 代表詢問數字串 s 是否在資訊集中 3 a b 代表使數字串 a 和 b 互相糾纏 對於每乙個 2 操作,如果詢問串不在集合中,請輸出一行乙個整數 0,否則輸出一行乙個整 數 1...
JZOJ A組 跳樓機
djl為了避免成為乙隻鹹魚,來找srwudi學習壓 的技巧。srwudi的家是一幢h層的摩天大樓。由於前來學習的蒟蒻越來越多,srwudi改造了乙個跳樓機,使得訪客可以更方便的上樓。經過改造,srwudi的跳樓機可以採用以下四種方式移動 1 向上移動x層 2 向上移動y層 3 向上移動z層 4 回到...