problem b: 佔點遊戲
眾所周知的是,tmk特別容易遲到,終於在tmk某次又遲到了之後,maple怒了,maple大喊一聲:「我要跟你決一死戰!」然後maple就跟tmk玩起了乙個關於佔點的遊戲。
maple在乙個無限展開的只有整數點的二維平面上找到兩個點,由tmk和maple分別操控這兩個點,兩人輪流操作,每一次操作中tmk或maple可以把他的點移動一格到上、下、左、右四個方向,當tmk操作時,移動到的這個點會被染成紅色,而當maple操作時,移動到的這個點會被染成藍色,需要注意的是,兩個起始時的兩個點也都會被染上相應的顏色,而當任一人走到已經染了不同顏色的點,這個顏色會被覆蓋掉,當兩個點覆蓋在一起時,這個點會被後來的點染色。當遊戲結束時染著自己顏色的點就代表被自己占領了。
tmk一下就明白了,這個遊戲的目標是讓自己占領的點比對方占領的點多,而且要讓差值最大。
為了公平一些,maple決定讓tmk來選擇先手或後手和讓tmk來選擇點,相應的maple就會選擇另乙個點。
現在給出遊戲的總輪數n,maple選擇的兩個點的座標(x1,y1),(x2,y2),要tmk來選擇先後手和起始點,假設maple一定按最優策略來走,問tmk能不能選擇先後手和起始點使得自己占領的點比maple占領的多,如果能,那麼同時要求出占領的點數的最大差值。
這個地方坑的就是總輪數在這裡指的是走的總步數。。。
input
第一行乙個t,代表接下來有t組資料(1<=t<=2000)。
每組資料有五個整數n,x1,y1,x2,y2,代表了操作的總輪數n以及選擇的兩個起始點(x1,y1),(x2,y2),其中1<=n<=10^8,-10^8<=x1,y1,x2,y2<=10^8,資料保證兩個點不相同。
output
對於每一組資料,如果tmk占領的點不能比maple占領的多,那麼輸出-1,否則輸出兩個占領點數的最大差值。
令 d = abs(x1-x2)+abs(y1-y2)
首先判斷(n+1)/2 >= d,先手可不可以從乙個點走到另乙個點 :
如果不可以,則先手可以多得 n&1 分(因為劣勢者可以選擇逃離)如果可以,考慮 d 的奇偶性:
如果 d 為奇數(先手可以先踩到後手覆蓋過的點):
如果 n 為奇數,先手可以多得 2 分,否則平。否則(d 為偶數):
如果 n 為奇數,先手可以多得 1 分,否則後手可以多得 1 分。
#include
#include
using namespace std;
int main()
else ans = 1;
}else
if(n&1) ans = 1;
printf("%d\n", ans);
}return
0;}
廣工校賽覆盤AB題
題面 zsl 和hzy 來到了臭臭城堡,打算挑戰臭臭城堡的大魔王hyz,大魔王hyz設定了這樣的乙個挑戰 1.zsl 和hzy兩個人各自來到一間密室,期間兩人無法以任何形式交流 2.大魔王hyz會隨機在兩個人的腦海裡各傳送乙個數字,0或者是1 3.zsl 和 hzy 需要猜對這倆個數字才算通關,但是...
廣工校賽覆盤CD題
c題 3s 鴿子數字由以下過程定義 從任何正整數開始,將數字替換為其數字的十進位制數字的平方和,並重複該過程,直到該數字等於1。如果不能,則這個數字不是鴿子數。輸入 第一行q,代表詢問的個數 q 100000 接下來q行,每行給出乙個數k,問第k個鴿子數。k 150000 輸入示例 21 2輸出示例...
博弈論分析題 如何用博弈論來分析考研中的以下問題?
首先,我不懂博弈論。不過這是個好熟悉的詞語,哈哈,我大一學管理學的時候學過,不過都忘了,現在轉專業了也。題主是管理專業嗎?其實這東西不重要,不就是考研決策的問題嗎?還需要博弈論?花裡胡哨的沒啥用。我參加了2020考研,說一下我當初的選擇吧。1.考研與就業。問問家裡,問問學長學姐,問問老師,考研就你這...