有三隻球隊,每只球隊編號分別為球隊1,球隊2,球隊3,這三隻球隊一共需要進行 n 場比賽。現在已經踢完了k場比賽,每場比賽不能打平,踢贏一場比賽得一分,輸了不得分不減分。已知球隊1和球隊2的比分相差d1分,球隊2和球隊3的比分相差d2分,每場比賽可以任意選擇兩隻隊伍進行。求如果打完最後的 (n-k) 場比賽,有沒有可能三隻球隊的分數打平。第一行包含乙個數字 t (1 <= t <= 10)接下來的t行每行包括四個數字 n, k, d1, d2(1 <= n <= 10^12; 0 <= k <= n, 0 <= d1, d2 <= k)
每行的比分資料,最終三隻球隊若能夠打平,則輸出「yes」,否則輸出「no」示例123 3 0 0
3 3 3 3
yesno
case1: 球隊1和球隊2 差0分,球隊2 和球隊3也差0分,所以可能的賽得分是三隻球隊各得1分case2: 球隊1和球隊2差3分,球隊2和球隊3差3分,所以可能的得分是 球隊1得0分,球隊2得3分, 球隊3 得0分,比賽已經全部結束因此最終不能打平。
題意: 給四個數n,k,d1,d2,n是比賽的總場數,k是目前已經比賽的場數,d1,d2分別是球隊一(下面用a表示)球隊二(下面用b表示)的比分差和球隊二球隊三(下面用c表示)的比分差,求經過n-k場比賽後是否有可能三個隊打平。分析:這個題還是挺不錯的,先來分析一下總共有四種情況:
case1:a比b多d1並且b比c多d2。要有滿足題意的可能性,得滿足一下要求:
t = int(input())
for i in range(t):
[n, k, d1, d2] = [int(x) for x in input().split(' ')]
r = n - k # 剩餘的比賽場數
if d1>d2:
x = 2*d1-d2
y = d1
else:
x = 2*d2-d1
y = d2
if (r-(2*d1+d2))>=0 and (r-(2*d1+d2))%3==0 and (n-3*(d1+d2))>=0 and (n-3*(d1+d2))%3==0:
print('yes')
elif (r-x)>=0 and (r-x)%3==0 and (n-3*y)>=0 and (n-3*y)%3==0:
print('yes')
elif (r-(d1+d2))>=0 and (r-(d1+d2))%3==0 and (n-3*y)>=0 and (n-3*y)%3==0:
print('yes')
elif (r-(d1+2*d2))>=0 and (r-(d1+2*d2))%3==0 and (n-3*(d1+d2))>=0 and (n-3*(d1+d2))%3==0:
print('yes')
else:
print('no')
位元組跳動校招 附加題(Python)
存在n 1個房間,每個房間依次為房間1 2 3.i,每個房間都存在乙個傳送門,i房間的傳送門可以把人傳送到房間pi 1 pi i 現在路人甲從房間1開始出發 當前房間1即第一次訪問 每次移動他有兩種移動策略 a.如果訪問過當前房間 i 偶數次,那麼下一次移動到房間i 1 b.如果訪問過當前房間 i ...
位元組跳動2019校招前端筆試
題目描述 開心消消樂 給定乙個一維的正整數陣列,逐次選擇其中乙個數做消除,消除所獲得的分數為當前數字和左右相鄰數字的乘積 當左邊或者右邊沒有數字可以認為是1 e.g.輸入陣列 3,1,5,8 step1 消除1 獲得分數 15 3x1x5,陣列變為 3,5,8 step2 消除5,獲得分數 120 ...
位元組跳動2019校招前端筆試
題目描述 給一些駝峰式的變數名,將它們轉換為下劃線式的,要求及說明如下 輸入資料一定為合法的 駝峰式 變數名,變數名由若干單詞組成,單詞應當為首字母大寫,或全大寫,或全小寫。如 variable onevariable onehttprequest 如 variable one variable o...