小工具知识网

当前位置: 首页 > 行业知识 > 【第15届蓝桥杯C/C++B组】试题&参赛经历&经验&个人题解

行业知识

【第15届蓝桥杯C/C++B组】试题&参赛经历&经验&个人题解

2026-11-09 20:57:43 来源:互联网转载

文章目录

    • 试题 A: 握手问题
    • 试题 B: 小球反弹
    • 试题 C: 好数
    • 试题 D:R 格式
    • 试题 E:宝石组合
    • 试题F:数字接龙
    • 试题G:爬山
    • 试题H:拔河
    • 我的感想

      试题 A: 握手问题

      分试题 A: 握手问题 本题总分:5 分
      问题描述小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。
      在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手(且仅有一次)。但有 7 个人,这 7 人彼此之间没有进行握手(但这 7 人与除这 7 人以外的所有人进行了握手)。

      请问这些人之间一共进行了多少次握手?注意 A 和 B 握手的同时也意味着 B 和 A 握手了,所以算作是一次握手。
      答案提交这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

      我的答案

      #include#includeusing namespace std;int Solution(){int ans=0;for(int i=49;i>=7;--i){ans+=i;coutcoutlong double length=343720.0,width=233333.0;long double dx=15.0,dy=17.0;long double step=411764.1176470588;//411764int t=0;long double dist=0;while(true){t++;dist+=step;while(distlength+3){dist-=length;}if(abs(dist-length)coutint n;cinn;int ans=0;for(int i=1;iint dont=0;int t=i;bool add=true;while(t0){int wei=t%10;wei%=2;if(wei==dont){add=false;break;}dont=wei;t/=10;}if(add)ans++;}return ans;}int main(){cout    const int MOD = 1e9 + 7;    // 初始化 dp 数组    vector        dp[1][j] = 1;    }    // 动态规划计算好数的数量    for (int i = 2; i         for (int j = 1; j             if (i % 2 == 1) { // 当前位数为奇数位                // 前一位是偶数位的好数数量                for (int k = 0; k                     dp[i][j] = (dp[i][j] + dp[i - 1][k]) % MOD;                }            } else { // 当前位数为偶数位                // 前一位是奇数位的好数数量                for (int k = 1; k                     dp[i][j] = (dp[i][j] + dp[i - 1][k]) % MOD;                }            }        }    }    // 计算好数的总数量    long long ans = 0;    for (int i = 1; i         for (int j = 1; j             ans = (ans + dp[i][j]) % MOD;        }    }    return ans;}int main() {    int N;    cin  N;    cout int n;long double d;cinnd;long double val=pow(2,n);long long result=d*val+0.5f;coutSolution();return 0;}if(!b)return a;return gcd(b,a%b);}int lcm(int a,int b){return a/gcd(a,b)*b;}void Solution(){int n;cinn;vectorfor(int j=0;jif(j!=i){for(int k=0;kif(k!=j&&k!=i){int q,w,e,r;q=lcm(g[i],g[j]);w=lcm(g[i],g[k]);e=lcm(g[j],g[k]);r=lcm(q,g[k]);int tem=g[i]*g[j]*g[k]*r/q/w/e;if(temmaxx){maxx=tem;a=g[i];b=g[j];c=g[k];}}}}}}coutSolution();return 0;}vector{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0}};int n,k;cinnk;int totalsize=n*n-1;vectorif(s.size()==totalsize){if(i==n-1&&j==n-1){if(ans==""||!lexicographical_compare(ans.begin(),ans.end(),s.begin(),s.end()))ans=s;}return;}int nxt=(g[i][j]+1)%k;for(int u=0;uint x=i+move[u][0];int y=j+move[u][1];if(x=0&&xif(u%2==1){double rx=i+move[u-1][0];double ry=j+move[u-1][1];double lx=i+move[u+1][0];double ly=j+move[u+1][1];double tx=(rx+lx)/2.0;double ty=(ry+ly)/2.0;pairst.insert(insp);vis[x][y]=true;//与下面重复了 char fr='0'+u;string tem=s+fr;dfs(x,y,tem);st.erase(insp);vis[x][y]=false;}}else{vis[x][y]=true;char fr='0'+u;string tem=s+fr;dfs(x,y,tem);vis[x][y]=false;}}}};if(n==1)return "";vis[0][0]=true;dfs(0,0,"");return ans==""?"-1":ans;}//F/*3 30 2 01 1 12 0 2*/int main(){cout1, 1, 0, -1, -1, -1, 0, 1};const int dy[] = {0, 1, 1, 1, 0, -1, -1, -1};// 检查移动是否在边界内bool isValid(int x, int y, int N) {    return x = 0 && x 

上一篇:揭秘智能自动投注源码,掌握高效下注策略的秘密武器!

下一篇:前端展示 PDF 预览的几种方法