B Breaking Branches
1.题意
给定长度为n的线段,Alice和Bob轮流切割线段使之成为两个整数段,进行最后一次切割操作的人获胜,规定Alice先手。
2.题解
博弈题,但当时没想到。找规律发现当n为奇数时,先手输,即Bob胜,当n为偶数时,Alice先割去1,此时n-1为奇数,Bob为先手,即Alice胜。
3.代码
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 4 int main(){ 5 cin>>n; 6 if(n%2) 7 cout<<"Bob"<<endl; 8 else{ 9 cout<<"Alice"<<endl; 10 cout<<1<<endl; 11 } 12 13 return 0; 14 }
J Jazz it Up
1.题意
给定一个无平方因子的正整数n,判断是否存在一个正整数m满足n*m不含平方因子且1<m<n。
2.题解
有简单的方法,但是暴力也能过。
3.代码
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,sum; 4 bool f(int num){ 5 for(int i=2;i<=sqrt(num);i++) 6 if(num%(i*i)==0) 7 return true; 8 return false; 9 } 10 int main(){ 11 cin>>n; 12 for(int i=2;i<n;i++){ 13 sum=i*n; 14 if(f(i*n)==false){ 15 cout<<i<<endl; 16 break; 17 } 18 } 19 20 return 0; 21 }