导航菜单
首页 >  蓝桥杯省赛真题  > 第十五届蓝桥杯省赛C/C++大学B组真题及赛后总结

第十五届蓝桥杯省赛C/C++大学B组真题及赛后总结

目录

 

个人总结

C/C++ 组真题

握手问题

小球反弹

好数

R 格式

宝石组合

数字接龙

爬山

拔河

​编辑

再总结及后续规划、名次

 

个人总结

第一次参加蓝桥杯,大二,以前都在在学技术,没有系统的学过算法。所以,还是花了挺多时间去备战的,因为暑假想找实习,就想拿个奖写简历上。备战了大概一个多月,学了一些基础的算法(dfs bfs 动态规划为主),刷了快200道题吧,但还是因为缺少经验,比赛时有点茫然了,然后大概率是寄了。

C/C++ 组真题 握手问题

4d3bc142600e4bb7b9402fb420823553.png

这道第一题相对于去年还算是比较简单,排列 + 特殊情况处理即可

(50 * 49) / 2 - (6*7) / 2 = 1204,答案应该是正确的

小球反弹

e5ed0cbfb44d4fb1932d744da5073a50.png

这个应该是错了哈哈,答案是 1100325199.77,但和这个值挺像的,可惜只看答案。

前两道题都是数学问题,唉,后悔没有静下心来看第二题了。

好数

5f382e0ebe874c25951e365dfc373b00.png

e4c259f207d94a0eb9074eb5f56b0937.png

160bcbe483e84cc9b6575e89fb87622b.png

这道题直接暴力模拟即可,数据量没有很大。

#include using namespace std;int N;int main(){cin >> N;int Count = 0; // 记录总个数for (int i = 1; i 0){int end = n % 10;if (flag == 1){if (end % 2 == 0){ret = 0;break;}flag = 0;}else // flag = 0{if (end % 2 != 0){ret = 0;break;}flag = 1;}n /= 10;}if (ret == 1) Count++;}cout n >> d;cout > N;for (long long i = 1; i > nums[i];unordered_map hash;for (long long i = 2; i = 1; j--)hash[nums[i] * nums[j]] = { j, i };}long long ret[3] = {100010, 100010, 100010};long long S = 0;for (long long i = 1; i S){S = tmp;ret[0] = nums[i];ret[1] = nums[e.second.first];ret[2] = nums[e.second.second];}else if (tmp == S){if (ret[0] > nums[i]){ret[0] = nums[i];ret[1] = nums[e.second.first];ret[2] = nums[e.second.second];}else if (nums[i] == ret[0] && ret[1] > nums[e.second.first]){ret[0] = nums[i];ret[1] = nums[e.second.first];ret[2] = nums[e.second.second];}else if (nums[i] == ret[0] && ret[1] == nums[e.second.first] && ret[2] > nums[e.second.second]){ret[0] = nums[i];ret[1] = nums[e.second.first];ret[2] = nums[e.second.second];}}}}}cout

相关推荐: