zoukankan      html  css  js  c++  java
  • zoj1003 Crashing Balloon

    《题解》上的题,重点是分析清楚输赢的规则。

    用两个bool变量表示两人是否说了实话。dfs。假设b说了实话且a没说实话则b赢,其余都是a赢。


    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    int n,m,f1,f2;
    void dfs(int a,int b,int num)
    {
        if(a==1&&b==1)//有一种解是两人都说了实话 仅仅有两者同一时候成立才干确定a说了实话
        {
            f1=f2=1;
            return ;
        }
        if(b==1) f2=1;//b说了实话
        while(num>1)
        {
            if(a%num==0) dfs(a/num,b,num-1);
            if(b%num==0) dfs(a,b/num,num-1);
            num--;
        }
    }
    
    int main()
    {
        while(~scanf("%d%d",&n,&m))
        {
            if(m>n) swap(m,n);
            f1=f2=0;
            dfs(n,m,100);
            if(!f1&&f2) printf("%d
    ",m);
            else printf("%d
    ",n);
        }
        return 0;
    }
    


  • 相关阅读:
    方法
    成员变量和局部变量
    带参数的方法
    包名规范
    String
    导包
    java基础(十二章)
    java基础(十一章)
    java基础(九章)
    java基础(八章)
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6917823.html
Copyright © 2011-2022 走看看