2024第十五届蓝桥杯 C/C++B组真题题解 您所在的位置:网站首页 蓝桥杯真题c语言c组 2024第十五届蓝桥杯 C/C++B组真题题解

2024第十五届蓝桥杯 C/C++B组真题题解

2024-07-01 17:45| 来源: 网络整理| 查看: 265

2024.4.17 今天看到C语言网题库里有了蓝桥杯真题,可惜好像还没出研究生组的,就顺着刷了一下B组的,写了这篇题解。 交题链接: C语言网-蓝桥杯2024真题

思路和代码仅通过C语言网评测,并不代表绝对正确。

C题 好数 问题描述

在这里插入图片描述

思路简述

简单模拟 枚举从 1 1 1到 n n n每一个数,对每一个数按位判断是否为好数

代码 #include using namespace std; typedef long long LL; const int maxn=1e5+5; const int inf=0x3f3f3f3f; int n,cnt; bool check(int x) //判断x是否为好数 { int tmp=0; while(x) { int now=x%10; x/=10; tmp++; if(tmp%2!=now%2) return 0; } return 1; } int main() { scanf("%d",&n); for(int i=1;i f[i]=f[i]+f[i]+flag; flag=(f[i]>=10); f[i]%=10; } if(flag) f[lenf++]=flag; } int main() { scanf("%d %s",&n,s); int len=strlen(s); for(int i=len-1;i>=0;i--)//将字符串s转换成高精度数组f if(s[i]!='.') f[lenf++]=s[i]-'0'; else fd=len-1-i;//代表有fd位小数 while(n--) add();//f=f*2或者说f=f+f; if(f[fd-1]>=5) //四舍五入 { int flag=1; for(int i=fd;i scanf("%d",&n); for(int i=1;i=1;i--)//枚举s { int cnt=0; for(int j=i;j0 , 1, 1, 1, 0,-1,-1,-1}; bool check(int x,int y) { if(xn||vis[x][y]) return 0; return 1; } void biaoji(int x,int y,int fx,int v) { if(fx==1) f[x][y+1][7]+=v,f[x-1][y][3]+=v; if(fx==3) f[x][y+1][5]+=v,f[x+1][y][1]+=v; if(fx==5) f[x][y-1][3]+=v,f[x+1][y][7]+=v; if(fx==7) f[x][y-1][1]+=v,f[x-1][y][5]+=v; } void dfs(int x,int y,int cnt) { if(x==n&&y==n&&cnt==n*n) { flag=1; for(int i=1;i res[cnt]=i; biaoji(x,y,i,1); vis[nx][ny]=1; dfs(nx,ny,cnt+1); biaoji(x,y,i,-1); vis[nx][ny]=0; } } } int main() { scanf("%d %d",&n,&k); if(n==1) return 0*printf("-1\n");//特判n=1的情况 for(int i=1;i}; node(int xx,int yy,int zz) { x=xx; y=yy; z=zz;} friend bool operator if(mida1==0&&mida2==1) return 1; if(midb1==0&&midb2==1) return 0; if(mida1==midb1) { if(mida2==midb2) return a.xmidb2; } return mida1 scanf("%d%d%d",&n,&ycnt1,&ycnt2); for(int i=1,x;i node qq=q.top(); q.pop(); int now=qq.x; int mid1=qq.y; int mid2=qq.z; if(cnt2==ycnt2) ps(mid1),cnt1++; else if(cnt1==ycnt1) ps(mid2),cnt2++; else//两种魔法都可以使用 { if(mid1>mid2) ps(mid2),cnt2++; else if(mid1 scanf("%lld",&n); for(LL i=1;i u=uu; v=vv;w=ww;} }; bool cmp(node a,node b){ return a.w>b.w; } vectorg; int pp(int x,int y,int st) { int cnt=0,mx=0; for(int i=1;i if(x==f[x]) return x; return f[x]=find(f[x]); } int main() { scanf("%d%d",&n,&m); for(int i=1;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有