蓝桥杯刷题挑战赛题解

明码

猴子分香蕉

日志统计

                                        激光样式

最大乘积

这个链接好像进不去题目我放下面了抱歉

明码:

题目是:

蓝桥杯刷题挑战赛题解_第1张图片

#include
#include
#include
#include
#include
#include
#include
using namespace std;
int main(){
    int n, m;
    while (cin >> n >> m) {
        bitset<8> b(n);
        string t=b.to_string();
        for(int i=0;i c(m);
        string s=c.to_string();
        for(int i=0;i

猴子分香蕉

蓝桥杯刷题挑战赛题解_第2张图片

#include
#include
#include
#include
#include
#include
#include//进制转换用的
#include//保留小数用的
using namespace std;
int main(){
    int x=1,key;
    while(1){
        key=x;
        if(x%5==1){
            x=x-(x/5)-1;
            if(x%5==2){
                x=x-(x/5)-2;
                if(x%5==3){
                    x=x-(x/5)-3;
                    if(x%5==4){
                        x=x-(x/5)-4;
                        if(x%5==0&&x!=0){
                            break;
                        }
                    }
                }
            }
        }
        x=key;
        x++;
    }
    cout<

日志统计 :

蓝桥杯刷题挑战赛题解_第3张图片

做日志统计这道题获得了很多东西

 pair 默认对first升序,当first相同时对second升序;

paira[100];

对pair型数组排序sort(a,a+5,cmp);//对这个数组的前五位排序

cmp是由你自己写的一个函数可以决定它是按照什么来排序的按照first还是second

//sort宝藏函数卧槽当你的first值相等时给你排second的值

#include
#include
#include
#include
#include
#include
#include//进制转换用的
#include//保留小数用的
using namespace std;
const int maxn=1e5+5;//10的5次方在加5
pairidts[maxn];
int N,D,K;
bool judge(int begin,int end){
    int start=begin,end1=begin;
    int count=0;
    while(start<=end1&&end1<=end)//尺取法
    {
        count++;
        if(count>=K){
            if(idts[end1].second-idts[start].second>N>>D>>K;
    int ts,id;//时刻和id
    for(int i=0;i>ts>>id;
        idts[i].first=id;//第一个存放id
        idts[i].second=ts;//第二个存放ts时刻
    }
    sort(idts,idts+N);//默认派列了下first升序排列并且当first相同时自动升序排second
    int i=0;
    while(i

激光样式:

蓝桥杯刷题挑战赛题解_第4张图片

 

很明显动态规划

a[n]=a[n-1]+a[n-2];(n>=2)

#include
#include
using namespace std;
int main(){
    int a[30];
    a[0]=2;a[1]=3;
    int i;
    for( i=2;i<30;i++){
        a[i]=a[i-1]+a[i-2];
    }
    cout<

 最大乘积

蓝桥杯刷题挑战赛题解_第5张图片

 

next_permutation()函数功能是输出所有比当前排列大的排列,顺序是从小到大。

而prev_permutation()函数功能是输出所有比当前排列小的排列,顺序是从大到小。

next_permutation函数将按字母表顺序生成给定序列的下一个较大的排列,直到整个序列为降序为止。

prev_permutation函数与之相反,是生成给定序列的上一个较小的排列。

//有这

#include 
#include 
#include
using namespace std;
bool judge(int a,int b){
    int s[11]={0};
    long long sum;
    sum=a*b;
    //cout<

个函数这道题就非常好实现了

 

你可能感兴趣的:(蓝桥杯刷题专栏,蓝桥杯,c语言,算法)