ZB loves watching RunningMan! There's a game in RunningMan called 100 vs 100.
There are two teams, each of many people. There are 3 rounds of fighting, in each round the two teams send some people to fight. In each round, whichever team sends more people wins, and if the two teams send the same amount of people, RunningMan team wins. Each person can be sent out to only one round. The team wins 2 rounds win the whole game. Note, the arrangement of the fighter in three rounds must be decided before the whole game starts.
We know that there are N people on the RunningMan team, and that there are M people on the opposite team. Now zb wants to know whether there exists an arrangement of people for the RunningMan team so that they can always win, no matter how the opposite team arrange their people.
InputThe first line contains an integer T, meaning the number of the cases. 1 <= T <= 50.
For each test case, there's one line consists of two integers N and M. (1 <= N, M <= 10^9).
OutputFor each test case, Output "Yes" if there exists an arrangement of people so that the RunningMan team can always win. "No" if there isn't such an arrangement. (Without the quotation marks.)
Sample Input2100 100200 100Sample OutputNoYesHintIn the second example, the RunningMan team can arrange 60, 60, 80 people for the three rounds. No matter how the opposite team arrange their 100 people, they cannot win.
題意:跑男隊伍和對方隊伍,n,m代表兩方人數,3回合3局2勝,每回合兩方各派出一些人數(可為0),人數多的一方勝。
跑男隊伍有無必勝方案
思路:參考田忌賽馬策略,考慮跑男隊伍在最壞情況下獲勝的人數最小的方案。
一.對方隊伍為奇數人:
對方人數分配: m/2+1 m/2 0
跑男人數分配:L3>=L1>=L2
并且贏2局就可以,前2回合可以贏一場輸一場,分別為m/2和m/2,結果為3*(m/2)
一.對方隊伍為偶數人:
對方人數分配:m/2 m/2 0
跑男人數分配:L3>=L1>=L2
結果為m/2 m/2-1 ,結果我3*(m/2)-1
#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<vector>#include<algorithm>#define inf 0x3f3f3f3f#define ll long longusing namespace std;int main(){ int T; cin>>T; while(T--) { int n,m; cin>>n>>m; int ans; if(m%2) ans=3*(m/2); else ans=3*(m/2)-1; if(n>=ans) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0;}
新聞熱點
疑難解答