站点图标 陌路寒暄

克隆玩具

克隆玩具

时间: 1ms        内存:128M

描述:

你只有一个A类型玩具,现在有个有两种功能的机器:
1. 加工一个A类型的玩具能够再得到一个A类型的玩具和一个B类型的玩具。
2. 加工一个B类型的玩具,能得到两个B类型的玩具。
问经过多次加工之后,能否恰好得到n个B类型的玩具和m个A类型的玩具(不能扔掉任何玩具哦)。

输入:

两个整数n,m(0<=n,m<=1e9)加工之后B类型玩具的数量和A类型玩具的数量。

输出:

能恰好得到n个B类型的玩具和m个A类型的玩具的话输出:Yes 
不能的话输出:No

示例输入:

6 3

示例输出:

Yes

提示:

参考答案(内存最优[1120]):

#include<stdio.h>
long long A,B,a,b,flag=0;

//Problem F: 克隆玩具

/*void dfs(int x,int y){
    if(x>n||y>m){
        //printf("break;  %d %d\n",x,y);
        return ;
    }
    if(x==n&&y==m){
        printf("YES\n");
    flag=1;
    }
    //printf("%d %d\n",x,y);
    dfs(x+1,y+1);
    dfs(x,y+2);
    return ;
}
*/
int main()
{
    scanf("%lld %lld", &B,&A);
    b=A-1;
    if((B-b)%2==0&&B-b>=0&&A!=0)
        printf("Yes\n");
    else
        printf("No\n");
    return 0;
}

参考答案(时间最优[1]):

#include<iostream>
using namespace std;

int main()
{
    int x,y;
    cin>>x>>y;
    if(y-x>1||y<1)
    {
        cout<<"No"<<endl;
        return 0;
    }
    if(((x-y+1)%2==0 && y!=1)||(x==0 &&y==1))
        cout<<"Yes"<<endl;
    else
        cout<<"No"<<endl;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

退出移动版