第十四届蓝桥杯三月真题刷题训练——第 10 天(3.13)打卡

WPPRPIPO WPPRPIPO 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

No.1 裁纸刀

分别计算两种方法取最小值即可

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
  cout<<min(19*22+21+4,21*20+19+4);
  return 0;
}

No.2 刷题统计

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e8+10;
int main()
{ 
    ll a,b,n;cin>>a>>b>>n;
    ll ans=n/(a*5+b*2);
    n-=ans*(a*5+b*2);
    ans*=7;
    if(n>=a*5){
        ans+=5;n-=a*5;
        ans+=(n+b-1)/b;
        cout<<ans;
    }
    else{
        ans+=(n+a-1)/a;
        cout<<ans;
    }
    return 0;
}

No.3 修建灌木

#include <iostream>
using namespace std;
int main(){
    int n;cin>>n;
    for(int i=1;i<=n;i++){
        cout<<max(i-1,n-i)*2<<endl;
    }
    return 0;
}

No.4 k倍区间(朴素版)k倍区间(恐怖版本)

前缀和过了朴素两个样例,28.6%

#include <iostream>
#define ll long long
using namespace std;
int main(){
    int n,k;cin>>n>>k;
    int a[n+1]={0},b[n+1]={0};
    for(int i=1;i<=n;i++){
        cin>>a[i];
        b[i]=b[i-1]+a[i];
    }
    ll ans=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            if((b[i]-b[j-1])%k==0)
                ans++;
        }
    }
    cout<<ans;
    return 0;
}
...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部