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

马肤
这是懒羊羊

目录

个人总结

C/C++ 组真题

握手问题

小球反弹

好数

R 格式

宝石组合

数字接龙

爬山

拔河

​编辑

再总结及后续规划


个人总结

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

C/C++ 组真题

握手问题

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

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

小球反弹

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

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

好数

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

#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 

文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复:表情:
评论列表 (暂无评论,0人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码