第六届蓝桥杯b组省赛--备战蓝桥杯版h

张开发
2026/4/8 8:55:17 15 分钟阅读

分享文章

第六届蓝桥杯b组省赛--备战蓝桥杯版h
0奖券数目 - 蓝桥云课简单模拟一下统计出里面不带4的数字#includeiostream #includecstring #includealgorithm using namespace std; int cnt0; bool check(int x) { while(x) { if(x%104)return false; x/10; } return true; } int main() { for(int i10000;i99999;i) { if(check(i)) { cnt; } } coutcntendl; return 0; }0星系炸弹 - 蓝桥云课日期问题--》日期模板解决#includeiostream #includecstring #includealgorithm using namespace std; int main() { bool beganfalse; int cnt0; for(int y2014;y2018;y) { for(int m1;m12;m) { for(int d1;d31;d) { if(m1||m3||m5||m7||m8||m10||m12) { } else if(m2) { if((y%40y%100!0)||(y%4000)) { if(d29)continue; } else { if(d28)continue; } } else { if(d30)continue; } if(y2014m11d9) { begantrue; continue; } if(began) { cnt; if(cnt1000) { printf(%04d-%02d-%02d,y,m,d); return 0; } } } } } return 0; }0三羊献瑞 - 蓝桥云课暴力多个循环-》但是要注意的是去重#includeiostream #includecstring #includealgorithm using namespace std; int main() { for(int a0;a9;a) for(int b0;b9;b) for(int c0;c9;c) for(int d0;d9;d) for(int e0;e9;e) for(int f0;f9;f) for(int g0;g9;g) for(int h0;h9;h) { // 判断数字互不相同 if(ab||ac||ad||ae||af||ag||ah) continue; if(bc||bd||be||bf||bg||bh) continue; if(cd||ce||cf||cg||ch) continue; if(de||df||dg||dh) continue; if(ef||eg||eh) continue; if(fg||fh) continue; if(gh) continue; // 首位不能为 0 if(a0 || e0) continue; int x a*1000 b*100 c*10 d; int y e*1000 f*100 g*10 b; int z e*10000 f*1000 c*100 b*10 h; if(x y z) { cout e f g b endl; // 输出三羊献瑞 return 0; } } return 0; }0移动距离 - 蓝桥云课bfs--》求出最短距离#includeiostream #includecstring #includealgorithm #includequeue using namespace std; const int N1000; int w,s,e; int dist[N][N]; int sx,sy,ex,ey; int n; int dx[4]{1,-1,0,0}; int dy[4]{0,0,-1,1}; int bfs() { memset(dist,-1,sizeof dist); queuepairint,int q; q.push({sx,sy}); dist[sx][sy]0; while(!q.empty()) { auto tq.front();q.pop(); int xt.first; int yt.second; for(int k0;k4;k) { int nxxdx[k]; int nyydy[k]; if(nx1nxnny1nywdist[nx][ny]-1) { dist[nx][ny]dist[x][y]1; q.push({nx,ny}); } } } return dist[ex][ey]; } int g[N][N]; int main() { cinwse; int k1; n10000/w1; for(int i1;in;i)//hang { if(i%2!0) { for(int j1;jw;j) { g[i][j]k; } } else { for(int jw;j1;j--) { g[i][j]k; } } } for(int i1;in;i) { for(int j1;jw;j) { if(g[i][j]s) { sxi; syj; } if(g[i][j]e) { exi; eyj; } } } int resbfs(); coutresendl; return 0; }0垒骰子 - 蓝桥云课dfs注意骰子的相对面可以用数组来反映并且可以用二维数组表示是否冲突#includeiostream #includecstring #includealgorithm using namespace std; const int MOD10e97; typedef long long ll; int n,m; bool conflict[7][7]; int op[7]{0,4,5,6,1,2,3}; ll ans0; int side[7]{0,4,4,4,4,4,4}; void dfs(int depth,int last) { if(depthn) { ll ways1; for(int i0;in;i) { ways(ways*4)%MOD; } ans(answays)%MOD; return; } for(int top1;top6;top) { if(depth0) { dfs(depth1,top); } else { int lastbottomop[last]; if(!conflict[lastbottom][top]) { dfs(depth1,top); } } } } int main() { cinnm; memset(conflict,false,sizeof conflict); for(int i0;im;i) { int a,b; cinab; conflict[a][b]true; conflict[b][a]true; } dfs(0,0); coutans%MODendl; return 0; }0生命之树 - 蓝桥云课#includeiostream #includecstring #includealgorithm using namespace std; const int N100010,M2*N; typedef long long ll; int n; ll a[N]; ll dp[N]; ll ans-1e18; int h[N],e[M],ne[M],idx; void add(int a,int b) { e[idx]b; ne[idx]h[a]; h[a]idx; } void dfs(int x,int fa) { dp[x]a[x]; for(int ih[x];i!-1;ine[i]) { int ve[i]; if(vfa)continue; dfs(v,x); if(dp[v]0) { dp[x]dp[v]; } } ansmax(ans,dp[x]); } int main() { cinn; for(int i1;in;i) { cina[i]; } memset(h,-1,sizeof h); for(int i1;in;i) { int a,b; cinab; add(a,b); add(b,a); } dfs(1,0); coutansendl; return 0; }

更多文章