2020年十月蓝桥杯A组题目回忆&&口胡

更新:省一到手了,看来蓝桥杯虽然题目难,但是竞争还是不大的

一共五道填空和五道编程,前四道填空和前三道编程比较有把握,剩下的很虚,希望能进国赛orzzz

填空1

题意:输出1到2020之中,数字2出现了一共多少次。

题解:C语言及格就行;

填空2

题意:求分子和分母都在1到2020范围内的分数中,有多少个是既约分数(既约分数定义为分子分母的gcd为1)。

题解:C语言及格+会手写gcd就行;

填空3

题意:定义了这样一个蛇形走位的数阵,求第\(20\)\(20\)列的数字是多少。

题解:当做初高中那种数学填空题,手算一些等差数列就可以了。

填空4

题意:给出一个电梯那种数字8,如下图所示,在7个笔画(横或竖)之间选择一些点亮,要求点亮的笔画组成恰好一个连通块,求方案数。

题解:可以建图暴力枚举\(2^7\)种情况然后bfs或dfs判断,也可以直接用排列组合的方法计算。

填空5

题意\(20\)个圆和\(20\)条直线能把平面分成几部分。

题解:不会做,瞎写了个。

大题1

题意:给出\(n\)个学生的成绩,分别输出最高分、最低分、成绩均值(保留两位);

题解:C语言及格就行;

大题2

题意:首先介绍了八位数字表示日期,如2020年2月2日表示为\(20200202\),现在给出一个八位数字表示的日期,保证合法且年份在1000至8999之间,分别求该日期之后的第一个满足以下条件的日期的八位表示并输出(分别输出两个):

1、八位表示下是回文串的日期;
2、八位表示下是ABABBABA的日期。

题解:不整花活,老老实实写模拟,其实码量还行也不是很费时间,大概80+行?

大题3

题意:对于字符串\(s\),定义一个\(f(s)\)表示该串中出现恰好一次的字母的个数,现在给出一个字符串\(S\),串长\(10^5\),求其所有子串\(t\)\(\Sigma f(t)\)

样例\(ababc\)输出\(21\)

题解:感觉是CF上常见的题目,把问题由“一个串内出现一次的字母有多少个”转化为“某个字母在多少个串中出现一次”,然后统计一下每个字母出现的位置推一下公式就可以做了。

大题4

题意:给定平面内的一个椭圆(可能是斜的),并给出一个三角形,求三角形和椭圆的面积交,坐标绝对值在\(1000\)以内,结果允许\(0.01\)的绝对误差。

题解:据群友说正解应该是把椭圆先挪到原点再压成圆,把这样的变换矩阵也应用到三角形上,然后求三角形和圆的面积交(自适应辛普森?)就是答案,但我也不知道为啥这样可以保证面积不变。

我的瞎搞做法是,随便把三角形两条边当做一个斜坐标系的坐标轴,\(3000\)等分,因此可以得到\(3000^2\)个三角形里的点,然后求落在椭圆里的点的个数,除以\(3000^2\)在乘以三角形面积就当做答案。这么做在样例上精度似乎还不错,但考虑到坐标范围,感觉多半要凉呀。

大题5

题意:给定一个数字\(V(V\leq 10000)\),请你给出一个逆序数恰好为\(V\)的字符串,多个答案优先输出最短的,多个最短的优先输出字典序最小的。

题解:从样例可以猜出,答案字符串必须是非严格单调递减的,比如\(fedccba\)这样的,根据这个性质,只要枚举每个字符出现次数就可以唯一确定一个字符串。

这样对于\(50\%\)的数据\((V \leq 100)\) 可以发现串长不超过\(15\),所以就可以枚举各个字符出现次数,在\(C_{30}^{15}\)左右次运算得到答案,感觉有点慢,所以可以打个表。

\(100\%\)的做法不太会,但可以注意到\(100\%\)的串长也不超过\(200\),所以基于上面的性质想出一个科学可写的\(O(n^3)\)就可以过了(但我想不出来啊摔)。

posted @ 2020-10-17 14:39  炸鸡块君  阅读(405)  评论(0编辑  收藏  举报