Benelux Algorithm Programming Contest 2019 (2020-3-21)

B. Breaking Branches

解题思路:

  看了半天才看懂什么意思QWQ,就判断一下奇数还是偶数就行了。

AC代码:

 
 
#include<math.h>
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include <string.h>
using namespace std;
int main()
{

    int n;
    cin>>n;
    if(n%2==0){
        cout<<"Alice\n1\n";//输出1 就完事
    }else{
        
        cout<<"Bob\n";
          }
    return 0;
}
 
  
 

E. Efficient Exchange

解题思路:

  (不会dp的废物QWQ)

  从最后一位开始算,

  大于5,进1,sum=10-这位,,

  小于5,sum直接加,,,

  等于5,判断它的前一位,大于5还是小于5,大于进1,小于直接加

AC代码:

 
 
#include<math.h>
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include <string.h>
using namespace std;
int main(){
    string s1,s;
    s="00";
    cin>>s1;
    s=s+s1;
    int i,j,n,k=0,sum=0,len;
    len =s.length();

    for(i=len-1;i>=0;i--){
        if(s.at(i)<'5'){    //小于五
            sum+=s.at(i)-'0';
        }else if(s.at(i)>'5'){  //大于五
            sum+=10-(s.at(i)-'0');
            if(i==0){
                sum++;
                break;
            }
            n=i-1;
            while(1){
                if(n==0){
                    k=1;
                     break;
                }
                s.at(n)++;
                if(s.at(n)>'9'){
                    s.at(n)='0';
                    n--;
                }else{
                    break;
                }
            }
        }else{        //等于5
                sum=sum+5;
            n=i-1;
            if(s.at(n)>='5'){
              while(1){
                if(n==0){
                    k=1;
                     break;
                }
                s.at(n)++;
                if(s.at(n)>'9'){
                    s.at(n)='0';
                    n--;
                }else{
                    break;
                }
            }
            }
        }
    }
    cout<<sum<<endl;
    return 0;
}
 
  
 
J. Jazz it Up!
解题思路:
  给定一个数n,求一个比它小的数m,使m*n不含k^2这种因子

AC代码:
#include<math.h>
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include <string.h>
using namespace std;
int main()
{

    int n,i,j,m,k;
    cin>>n;
for(i=2;i<n;i++){
        for(j=2;j<=sqrt(n*i);j++){
            k=(n*i)/(j*j);  
            if(k*j*j == n*i){//判断能不能整除
                break;
            }
        }
        if(j>sqrt(n*i)){
            cout<<i;
            return 0;
        }
    }
    return 0;
}
 

猜你喜欢

转载自www.cnblogs.com/a-specter/p/12560612.html