
第十一届蓝桥杯b组省赛第二场c++(填空部分)
发布日期:2021-05-07 16:49:02
浏览次数:13
分类:技术文章
本文共 2717 字,大约阅读时间需要 9 分钟。
A
直接拆,计数。
#includeusing namespace std;int main(){ int ans=0; for(int i=2;i<=2020;i++){ int n=i; while(n){ if(n%10==2) ans++; n/=10; } } cout<
B
gcd(i,j)==1表示i和j互质,也就是题目所说的既约分数,把i当成分子,j当成分母,暴力计数即可。
#includeusing namespace std;int gcd(int x,int y){ int a=max(x,y); int b=min(x,y); int temp; while(a%b){ temp=a; a=b; b=temp%b; } return b;}bool judge(int x,int y){ if(gcd(x,y)==1) return 1; return 0;} int main(){ int ans=0; for(int i=1;i<=2020;i++){ for(int j=1;j<=2020;j++){ if(judge(i,j)) ans++; } } cout<
C
蛇形填数,模拟题。
#includeusing namespace std;int a[100][100];int dir[4][2]={ { -1,1},{ 0,1},{ 1,-1},{ 1,0}};bool judge(int x,int y){ if(x>=1&&y>=1) return 1; return 0;}int main(){ int cnt=1; int p=1; int i=1,j=1; a[i][j]=cnt++; while(p<=40){ //a[i][j]=cnt++; //cout< <<" "< <
D
我做麻烦了,反正是离线,就多造了些判断,处理二月份天数的时候比较墨迹。也是一道模拟题。
用一个变量记录天数,一个变量记录周几,然后判段更新。#includeusing namespace std;int m[13]={ 0,31,28,31,30,31,30,31,31,30,31,30,31};int ml[13]={ 0,31,29,31,30,31,30,31,31,30,31,30,31};int main(){ long long ans=0; int d=1; int mm=1; int ye=2000; int f=6; int temp=0; while(!(ye==2020&&mm==10&&d==2)){ ans++; if(d==1||f==1) ans++; d++; f++; if(f>7) f=1; if(temp){ if(d>ml[mm]){ d=1; mm++; } }else{ if(d>m[mm]){ d=1; mm++; } } if(mm>12){ mm=1; ye++; } if(ye==2000||ye==2004||ye==2008||ye==2012||ye==2016||ye==2020){ temp=1; }else{ temp=0; } //cout< <<" "< <<" "< <
E
有点难受。(看了大佬的代码)
为什么要dfs,因为题目说发光的二极管是要连续的。 怎么构建连续,观察那个8,我们发现a与f,b相连,f与g,e相连,等等。 然后用数组存,会发现一个问题,即b可以到c,g也可以到c,如果直接搜怎么存合适,我们用一个#补充这个位置,代表这是一个没有字母但是可以通过的路,在搜素时可以判断一下#,然后拼接。 其它的没啥了,枚举每一个位置,然后搜素,先排序,然后用set去重一下。

#includeusing namespace std;char str[8][8]={ { 'a','b','#'},{ 'f','g','c'},{ '#','e','d'}};int dir[4][2]={ { -1,0},{ 0,-1},{ 1,0},{ 0,1}};int vis[8][8];set se;string qsort(string s){ char p[10]; memset(p,'#',sizeof(p)); int n=0; int len=s.size(); for(int i=0;i =0&&y>=0&&x<3&&y<3&&!vis[x][y]) return 1; return 0;}void dfs(int x,int y,string t){ vis[x][y]=1; for(int i=0;i<4;i++){ int xx=x+dir[i][0]; int yy=y+dir[i][1]; if(judge(xx,yy)){ string tem=qsort(t+str[xx][yy]); se.insert(tem); vis[xx][yy]=1; dfs(xx,yy,tem); vis[xx][yy]=0; } } return ;}int main(){ for(int i=0;i<3;i++){ for(int j=0;j<3;j++){ if(str[i][j]!='#'){ string s; s+=str[i][j]; string q=qsort(s); se.insert(q); memset(vis,0,sizeof(vis)); dfs(i,j,q); } } } cout<
答案:
(1)624 (2)2481215 (3)761 (4)8879 (5)80程序题后面再补。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年03月21日 04时14分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
redis 单线程为什么快
2019-03-05
Java 源代码到运行的过程
2019-03-05
Java 中哪些对象可以获取类对象
2019-03-05
linux 的 cp 命令如何复制不提示覆盖
2019-03-05
缓存穿透 / 缓存击穿 / 缓存雪崩 / 缓存一致性
2019-03-05
linux 的 pwd 命令
2019-03-05
linux 的 sleep 命令
2019-03-05
js 的 let var const 区别
2019-03-05
无线掌上B超USONIX-R6线阵B模图像初步
2019-03-05
无线掌上B超USONIX-R6凸阵B模图像初步
2019-03-05
react路由使用以及封装
2019-03-05
vue计算属性和监听器区别
2019-03-05
前端常用知识随手记
2019-03-05
react-redux使用hooks替代connect
2019-03-05
使用 FileUpload 实现文件上传
2019-03-05
11.2.6 时间值的小数秒
2019-03-05
11.2.7 日期和时间类型之间的转换
2019-03-05
附录 B 错误信息和常见问题
2019-03-05
第4章 MySQL 程序
2019-03-05
设置柱形图的柱的宽度
2019-03-05