51nod1534 棋子遊戲

2022-02-01 19:19:21 字數 840 閱讀 7779

思路分析:我們先考慮,vasiliy是比polycarp有優勢的,他可以在沒有阻攔且在未到邊界的情況下一次走出polycarp兩次的路,所以我們的polycarp想要獲勝就有了兩種方法,第一種是在vasiliy盡可能多的走斜邊的情況下polycarp步數仍然較少,此時由於polycarp走的相對較慢,他一定更靠近終點,所以vasiliy是一定堵不著他的,於是他穩贏,再來考慮在vasiliy盡可能多的走斜邊的情況下polycarp步數較多的情況,此時雖然polycarp步數多,但他依然有可能比vasiliy更靠近終點,如果polycarp在vasiliy和兩邊界所形成的矩形之內,polycarp想要獲勝一定會去堵vasiliy,且一定可以成功,因為vasiliy一定會靠近終點,相對靠近了polycarp,此時可以polycarp就可以守株待兔了。

**:

1 #include2 #include3 #include4

using

namespace

std;

5const

int n=1e6+10;6

int count(int a,int

b)12 cnt+=a+b;

13return

cnt;14}

15int

main()

25else

if(x>a||y>b)

29 printf("

polycarp\n");

30return0;

31 }

view code

51nod1534 棋子遊戲

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

51Nod1534 棋子遊戲

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

51nod 1534棋子遊戲 分析

polycarp 題解 這種題應該可以想到是進行分析,簡化邏輯的一類題。需要的就是多舉出幾組樣例,從中找到某種潛在的規律,從而簡化題目邏輯。這道題的話,可以發現p獲勝有兩種情況 第一 我們定義v和p到達 0,0 需要的最短時間為tv,tp,那麼顯然有tv max xv,yv tp xp yp.所以第...