棋子遊戲 51Nod 1534 思維題

2022-01-10 18:16:29 字數 819 閱讀 1083

還有一些其它的限制,他們不能把棋子移動到x或y為負的座標,或者移動到已經被對手佔據的座標。最先到達(0,0)的人獲勝。

現在給定他們棋子的座標,判斷一下誰會獲勝。

單組測試資料。 第一行包含四個整數xp,yp,xv,yv (0≤xp,yp,xv,yv≤10^5) ,表示波雷卡普和瓦西里棋子的座標。 輸入保證他們的棋子在不同位置,而且沒有棋子在(0,0)。

如果波雷卡普獲勝,輸出polycarp,否則輸出vasiliy。

sample input

樣例輸入1

2 1 2 2

sample output

樣例輸出1

polycarp

對於先手來說,每次只能向左或者向下移動乙個格

對於後手來說,他還可以一次移動乙個對角線,相當於先手走兩次,這也是後手的唯一優勢

先手為了讓自己先到終點,肯定會限制後手對角線移動的次數

那麼他只需要把棋子移動到後手的對角線上就可以了

這樣後手就只能乙個乙個格仔的走,先手必定會獲勝

如果先手的橫縱座標都小於等於後手,那麼先手肯定能把後手限制住

否則,後手可以一直沿著對角線走到最下面或者最左面,先手就限制不住後手

這時,只需要比較\(xp+yp\)和\(max(xv,yv)\)或者\(xv+yv-min(xv,yv)\)的大小就可以了

#include#include#includeusing namespace std;

int main() else

return 0;

}

51nod1534 棋子遊戲

1534 棋子遊戲 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 還有一些其它的限制,他們不能把棋子移動到x或y為負的座標,或者移動到已經被對手佔據的座標。最先到達 0,0 的人獲勝。現在給定他們棋子的座標,判斷一下誰會獲勝。input 單組測試資料。第一行包含...

51nod1534 棋子遊戲

思路分析 我們先考慮,vasiliy是比polycarp有優勢的,他可以在沒有阻攔且在未到邊界的情況下一次走出polycarp兩次的路,所以我們的polycarp想要獲勝就有了兩種方法,第一種是在vasiliy盡可能多的走斜邊的情況下polycarp步數仍然較少,此時由於polycarp走的相對較慢...

51Nod1534 棋子遊戲

原題位址 簡單博弈論。簡單情況下,即假設不發生乙個棋子阻擋另乙個棋子的去路,那麼情況非常簡單,兩人都必須走完 x y 的路程,先手一次可以走一步,所以時間也為 x y 後手可以先一直讓 x,y 都減一,乙個消耗完後再讓另乙個參量一步減一。這一部分的 int sum1 x1 y1,sum2 min x...