Benelux Algorithm Programming Contest 2019(2020.03.21)

题目地址:https://www.jisuanke.com/contest/7191?view=challenges

B. Breaking Branches

题意:N为偶数先手胜,N为奇数后手胜。

AC代码:

#include<bits/stdc++.h>
#include<iostream>
#include<vector>
#include<queue>
#include<string>
#include<list>
#include<set>
#include<stack>
using namespace std;
typedef long long ll;
const int maxn = 1e2+10;
const ll mod = 1e9+7;

int main()
{
    int n;
    cin>>n;
    if(n%2==0)
    {
        puts("Alice");
        cout<<"1"<<endl;
    }
    else
    puts("Bob");
    return 0;
}
View Code

J. Jazz it Up!

题意:给定n ,让你找到m(n>m>=2) 使得n*m不能被k^2整除,k>1

思路:模拟,从2到n遍历找m,并且不存在k^2的因子。

AC代码:

#include<bits/stdc++.h>
#include<iostream>
#include<vector>
#include<queue>
#include<string>
#include<list>
#include<set>
#include<stack>
using namespace std;
typedef long long ll;
const int maxn = 1e5+10;
const ll mod = 1e9+7;
ll flag[maxn];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        flag[i]=i*i;
    }
    int i,j;
    ll ans = 0;
    for(i=2;i<n;i++)
    {
        ll t = n*i;
        for(j=2;flag[j]<=t;j++)
        {
            if(t%flag[j]==0)
            {
                break;
            }
        }
        if(flag[j]>t)
        {
            ans = i;
            break;
        }
    }
    cout<<ans<<endl;
    return 0;
}
View Code

还有另外一种方法:题目中说明,n是一个无平方因子的数,则只要m是无平方因子的数,并且,n,m没有共同的因子即可。

所有,m就直接可以是一个质数,并且该质数不是n的因子。

 

 
posted @ 2020-03-30 21:15  精神小伙儿  阅读(106)  评论(0编辑  收藏  举报