Educational Codeforces Round 116

2021/11/23 6:10:48

本文主要是介绍Educational Codeforces Round 116,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

A. AB Balance
分析:只要第一个和最后一个相同,均满足

#include "bits/stdc++.h"
using namespace std;
const int maxn=1000+1;
string s[maxn];
int main()
{
    //freopen("in.txt","r",stdin);
    int n;
    ios::sync_with_stdio(false);
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>s[i];
        int len=s[i].length();
        if(s[i][0]==s[i][len-1]) cout<<s[i]<<endl;
        else{
            s[i][len-1]=s[i][0];
            cout<<s[i]<<endl;
        }
    }
    return 0;
}

B. Update Files

#include "bits/stdc++.h"
using namespace std;
typedef long long LL;
int main()
{
    //freopen("in.txt","r",stdin);
    int T;
    ios::sync_with_stdio(false);
    cin>>T;
    while(T--){
        LL n,k;
        cin>>n>>k;
        LL ans=0,cur=1;
        while(cur<k){
            cur<<=1;
            ans++;
        }
        if(cur<n) ans+=(n-cur+k-1)/k;
        cout<<ans<<endl;
    }
    return 0;
}

C. Banknotes
分析:贪心,尽可能装小的,第 i i i种最多可以装 a [ i + 1 ] a [ i ] − 1 \frac {a[i+1]}{a[i]} -1 a[i]a[i+1]​−1个

#include "bits/stdc++.h"
using namespace std;
typedef long long LL;
const int maxn=10+1;
int T,n,k;
LL a[maxn];
LL quick_mul(LL a,LL b){
    LL res = 1;
    while(b){
        if(b&1) res*=a;
        a*=a;
        b>>=1;
    }
    return res;
}
int main()
{
    //freopen("in.txt","r",stdin);
    ios::sync_with_stdio(false);
    cin>>T;
    while(T--){
        cin>>n>>k;
        k++;
        for(int i=0;i<n;i++){
            LL x;
            cin>>x;
            a[i] = quick_mul(10LL,x);
        }
        LL ans = 0;
        for(int i=0;i<n;i++){
            int cnt = k;
            if(i!=n-1) cnt=min(cnt,(int)(a[i+1]/a[i]-1));
            ans+=1LL*(LL)cnt*a[i];
            k-=cnt;
        }
        cout<<ans<<endl;
    }
    return 0;
}


这篇关于Educational Codeforces Round 116的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程