2018第九届蓝桥杯

1、 明码

#include<bits/stdc++.h>
using namespace std;
int const N=1e4+7;
void pan(int x,int t){
    if(t==7){
        if(x<0) cout << "*";
        else cout << " ";
        if(x&1) cout << "*";
        else cout << " ";
        return ;
    } 
    pan(x>>1,t+1);
    if(x&1) cout << "*";
    else cout << " ";
}
int main(){
    for(int i=1;i<=10;++i){
        for(int j=1;j<=32;++j){
            int x;cin >> x;
            pan(x,1);
            if(j%2==0) cout << "\n";
        }
    }
    return 0;
}

2、 乘积尾零

要产生0即10则需要2和5的因子,所以统计2和5因子的个数

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int const N=1e4+7;
ll cnt1,cnt2;
int main(){
    for(int i=1;i<=10;++i){
        for(int j=1;j<=10;++j){
            int x;cin >> x;
            while(x){
                if(x%2==0) cnt1++,x/=2;
                else if(x%5==0) cnt2++,x/=5;
                else break;
            }
        }
    }
    cout << min(cnt1,cnt2);
    return 0;
}

3、测试次数

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int const N=1e4+7;
ll f[1007][5];
int main(){    
    memset(f,0x3f,sizeof f);
    for(int i=1;i<=1000;++i) f[i][1]=i;
    f[0][1]=0;
    for(int k=2;k<=3;++k){
        f[0][k]=0;
        for(int i=1;i<=1000;++i){
            for(int j=1;j<=i;++j){  //枚举第一部第一次手机扔的楼层 
                f[i][k]=min(max(f[j-1][k-1],f[i-j][k])+1,f[i][k] );
            }
        }
    }
    cout << f[1000][3];
    return 0;
}

4、

蓝桥真题 文章被收录于专栏

蓝桥真题的题解

全部评论

相关推荐

点赞 评论 收藏
分享
10-10 11:38
已编辑
湖南理工大学 Java
小浪_Coding:多沟通叭, 公式简历+学历一般的话难找
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务