J Jack与Pony的战斗
时间限制内存限制出题人
1 Second 512 Mb 凡凯
题目描述
Jack和Pony分别是两股势力的头目,一直以来他们之间总是冲突不断。最近他们又开始了T轮
新的竞争,在每轮竞争中他们会进行多次的PK。在每轮竞争前他们的起始积分都为0,在每
次PK中,赢的一方会加2x积分,输的一方会加x积分(注:x为一个任意正整数)。然后针对
每轮竞争GM会给出两个值m; n,判断经过这轮的多次PK他们两个的积分是否能得到这两个值。
若能得到则输出“Yes”,若不能得到则输出“No”。
输入
输入包含T轮竞争(1 T 100)。每轮竞争输入两个整数m; n(1 m; n 10000000)。
输出
对于每轮竞争,若经过数次PK他们两人的积分能得到GM给出的值,则输出“Yes”,否则输出
“No”。
输入样例
3
10 5
121 123
12 100000
输出样例
Yes
No
No
注意:题意中一轮右多次PK,x为一个任意正整数但对每一轮x为一个固定值
做题思路:本题只是简单的单纯的小数学题,不涉及算法和逻辑。设Jack赢了k1场,输了k2场,则有Jack得了2k1+k2分,Pony得了k1+2k2分,即2k1+k2=m, k1+2k2=n,解出k1,k2存在且为正整数或者0,即Yes,否则No
代码;
#include <stdio.h>
int main()
{
int t,m,n,k1,k2;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&m,&n);
k1=2*m-n;//实际上取余3才为k1
k2=2*n-m;
if(k1%3==0&&k2%3==0&&k1>=0&&k2>=0)//容易漏掉让k1,k2>0,否则通不过
printf("Yes\n");
else printf("No\n");
}
return 0;
}