其他分享
首页 > 其他分享> > Educational Codeforces Round 116

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

标签:std,Educational,int,LL,cin,long,Codeforces,116,cnt
来源: https://blog.csdn.net/weixin_42060154/article/details/121483681