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;
}
 

原文地址:https://www.cnblogs.com/a-specter/p/12560612.html

时间: 2024-08-30 13:27:34

Benelux Algorithm Programming Contest 2019 (2020-3-21)的相关文章

2020-3-14 acm训练联盟周赛Preliminaries for Benelux Algorithm Programming Contest 2019 解题报告+补题报告

2020-3-15比赛解题报告+2020-3-8—2020-3-15的补题报告 2020-3-15比赛题解 训练联盟周赛Preliminaries for Benelux Algorithm Programming Contest 2019  A建筑(模拟) 耗时:3ms 244KB 建筑 你哥哥在最近的建筑问题突破大会上获得了一个奖项 并获得了千载难逢的重新设计城市中心的机会 他最喜欢的城市奈梅根.由于城市布局中最引人注目的部分是天际线, 你的兄弟已经开始为他想要北方和东方的天际线画一些想法

2020/3/14 Preliminaries for Benelux Algorithm Programming Contest 2019 部分补题报告和解题报告

A. Architecture 比较行列最大值相同则possible 不同则impossible #include<iostream> #include<algorithm> #include<cmath> #include<cstdio> using namespace std; int main(){ int r,c,x,y,i; int maxx=0,maxy=0; cin>>r>>c; for(i=1;i<=r;i++)

2020.3.21 Benelux Algorithm Programming Contest 2019 解题报告

B-Breaking Branches 大意就是两个人掰树枝子玩,是个典型的博弈题,判断能不能被2整除就可以了 #include<cstdio> using namespace std; int main(){ long long int n,m,t; scanf("%lld",&n); if(n%2==0){ printf("Alice\n"); printf("1\n"); }else{ printf("Bob\

Benelux Algorithm Programming Contest 2019

J. Jazz it Up!题目要求,n*m的因子中不能含有平方形式,且题目中已经说明n是一个无平方因子的数, 那么只要m是无平方因子的数,并且n和m没有共同的因子即可.要注意时间复杂度!代码:#include<iostream> #include<algorithm> #include<cmath> using namespace std; int main(){ int n,i,a,b; long long int m,p,j; cin>>n; for(

记账本开发记录——第四天(2020.1.21)

总结:今天学习完了javascript的第一部分基础知识(昨天没学完的)并尝试使用div+css编写了记账本的index.html.以下是具体: 首先,使用javascript完成了首页轮播图效果,使用了setInterval.下面是代码:(实现较为低级) 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>首页</title>

Benelux Algorithm Programming Contest 2014 Final ACM-ICPC Asia Training League 暑假第一阶段第二场 E. Excellent Engineers-单点更新、区间最值-线段树 G. Growling Gears I. Interesting Integers-类似斐波那契数列-递推思维题

先写这几道题,比赛的时候有事就只签了个到. E. Excellent Engineers 传送门: 这个题的意思就是如果一个人的r1,r2,r3中的某一个比已存在的人中的小,就把这个人添加到名单中. 因为是3个变量,所以按其中一个变量进行sort排序,然后,剩下的两个变量,一个当位置pos,一个当值val,通过线段树的单点更新和区间最值操作,就可以把名单确定. 代码: 1 //E-线段树 2 #include<iostream> 3 #include<cstdio> 4 #incl

Gym -102007 :Benelux Algorithm Programming Contest (BAPC 18) (寒假自训第5场)

A .A Prize No One Can Win 题意:给定N,S,你要从N个数中选最多是数,使得任意两个之和不大于S. 思路:排序,然后贪心的选即可. #include<bits/stdc++.h> #define ll long long #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; const int maxn=2000010; ll a[maxn]; int main() { int N,ans; l

[AtCoder] NIKKEI Programming Contest 2019 (暂缺F)

[AtCoder] NIKKEI Programming Contest 2019 ??本来看见这一场的排名的画风比较正常就来补一下题,但是完全没有发现后两题的AC人数远少于我补的上一份AtCoder. A - Subscribers ??首先始终 \(max = \min(A, B)\) ,\(min\) 的话如果 \(A + B \leq N\) ,那么就是 \(0\) ,否则就是 \(A + B - N\) . int n, a, b; int main() { read(n), read

AtCoder NIKKEI Programming Contest 2019 C. Different Strokes (贪心)

题目链接:https://nikkei2019-qual.contest.atcoder.jp/tasks/nikkei2019_qual_C 题意:给出 n 种食物,Takahashi 吃下获得 ai 快乐值,Aoki 吃下获得 bi 快乐值,两人轮流吃,他们的目标是最大化自己获得的快乐值减去她人获得的快乐值吗,问最后该值是多少. 题解:易知 Takahashi 要最大化答案而 Aoki 要最小化答案,考虑全部食物由 Aoki 吃下,则ans = -(b1 + b2 + .... + bn),