Benelux Algorithm Programming Contest 2019||3.21

B.Breaking Branches

逻辑思维题,n为2时分一次Alice必胜,n为3时,Alice分成1,2。Bob必胜。n为4的时候分成1,3,或者2,2。都是Alice赢。所以当n为偶数的时候,Alice赢。反之,Bob赢。

而Alice必操作的就是分成1。

#include <stdio.h>

int main(){
    int n;
    scanf("%d",&n);
    if(n%2==0){
        printf("Alice\n");
        printf("%d\n",n/2);
    }
    else{
        printf("Bob\n");
    }
    return 0;
}

J.Jazz it Up!

纯计算暴力可过,运用素数筛也可。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#define Max 1000
using namespace std;

int main(){
   
    int n;
    cin>>n;
    for(int i=2;i<n;i++){
        int x = n*i;
        int flag= 1;
        for(int j = 2;j<=sqrt(x);j++){
            if((n*i)%(j*j)==0){
                flag = 0;
            }
        }
        if(flag){
            cout<<i<<endl;
            break;
        }
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/aixiaodezsh/p/12560744.html