2020.3.21 Benelux Algorithm Programming Contest 2019 解题报告

B-Breaking Branches

大意就是两个人掰树枝子玩,是个典型的博弈题,判断能不能被2整除就可以了

#include<cstdio>

using namespace std;
int main(){
    long long int n,m,t;
    scanf("%lld",&n);
    if(n%2==0){
        printf("Alice\n");
        printf("1\n");
    }else{
        printf("Bob\n");
    }
}

J-Jazz it up

读题读的很懵,简单讲就是输入一个n,之后找一个m,m满足两个条件,一个是m需要小于n,再一个m不能被任何平方数整除,一开始一直在考虑暴力会不会超时,结果写出来一试竟然不会,,,难啊

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int main(){
    long long int m,n,sum,t,flag=0;
    scanf("%lld",&n);
    for(long long int i=2;i<=n-1;i++){
        sum=n*i;
        t=sqrt(sum);
        for(long long int j=2;j<=t;j++){
            if(sum%(j*j)==0){
                flag=1;
                break;
            }
        }
        if(flag==1){
            flag=0;
            continue;
        }else{
            printf("%lld",i);
            break;
        }
    }
}

未完待续(大概)

猜你喜欢

转载自www.cnblogs.com/CCCCrack/p/12550110.html