题目地址: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; }
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; }
还有另外一种方法:题目中说明,n是一个无平方因子的数,则只要m是无平方因子的数,并且,n,m没有共同的因子即可。
所有,m就直接可以是一个质数,并且该质数不是n的因子。