首页 > 编程语言 >2023第14届蓝桥杯C/C++A组参赛记录+部分题解

2023第14届蓝桥杯C/C++A组参赛记录+部分题解

时间:2023-04-09 20:33:22浏览次数:47  
标签:前缀 14 题解 复杂度 蓝桥 枚举 ...... 暴力

比赛记录

早上起得还算早,没吃早餐,我吃早餐会瞌睡,也会变蠢。
在门口还没来得及和队里其他同学聊几句就进场了......

键盘还是一样的难用,软件有codeblocks和dev,很舒服。
今年来参加蓝桥杯的人好多啊......女生也好多。
听说今年蓝桥杯有统一的正经培训,不过和我这个被踢出蓝桥杯群的废物有什么关系呢~

9点01分我才能从系统下载题目......不公平!不公平!重赛!重赛(

A题,看起来好像是中规中矩的编程计算题,之间写个代码,跑了几秒出答案了。
看到B题,一开始觉得是枚举在第几次答题之后结束,这7次答题一定是要必对的。前面的就可以任意选择了,答案就是2^24-1
C题,感觉是有规律,推式子的时候觉得只有2是不行的,于是特判然后跑路了。
D题,一开始在想线性算法,类似manacher,后来看到数据范围发现不用线性,直接区间dp就行了,写完调了一个bug,样例过了就跑了。
E题倒是把我难住了,这个东西我好像只会莫队,这样的话复杂度是带根号的,n是2e5的话,带根号是很冒险的行为。后来想想可以dsu on tree,借助一个map来维护,复杂度就是两个log,写完之后小调一个bug,dsu on tree我写得太少了,多少有点不熟练。
F题,一看就想到折半搜索,三进制枚举即可,写得很快。
G题,一眼最大生成树,询问就是在生成树上跑lca,倍增lca即可,两个算法都是我很熟练的,十分钟写完了。
H题,我还一度怀疑自己看错题了,为什么会放一个这么简单的题在这个位置啊?拆位前缀和直接切了,代码都不到20行。
I题和J题是一起看的,I题一开始没有特别好的想法,就先没写。
推了一下J题的结论,发现和莫比乌斯函数的绝对值有关,求绝对值的前缀和即可。
但是我好像不太会求这个函数的前缀和...打了个暴力跑了。
I题想到了一个做法,就是将矩阵切分成四块,分别暴力,有用的部分就是边缘的一行+一列,用状压压起来即可,合并之后有用的部分也不会超过n或者m个,同样可以状压。但是这样的话,代码会非常非常难写。于是先写了一个暴力,发现暴力跑得很快,再加了一点点剪枝,跑了。
此时时间是11点30分,开始写前面题目的对拍。重新看了一下B题,发现到100分就直接结束了,说明不能出现连续10个1,而且最后分数一定要是70,即七连对之前一定是要答错的。用这两个条件限制了一下,重新求了一个答案。
A、C和D没有拍,太简单了咋拍。
E写了个n^2暴力拍了一下,发现很对。再测了一下极限数据,发现n=3e5的时候直接超时了......后来发现数据范围只有2e5,我的代码里也是2e5,所以不是超时而是运行错误了......可能数组越界导致递归爆栈了,就没管了。
F题写了一个暴力枚举,拍了几组数据感觉挺对的,但是这题随机数据是很弱的,拍的正确性也很难说。测了一下极限,发现极限数据根本跑不出来,重新计算了复杂度,发现复杂度假了,3^(n/2)* (n/2)* log 这个复杂度根本跑不过。重新规划了一下写法,把中间的n/2给去掉了,但还是跑不出来。于是把原本的枚举方案改成dfs枚举,加入一点剪枝,随机数据居然只要0.1秒就跑出来了,真的可以的。
G题没拍,太经典了。
H题写了个n^2暴力拍,拍了一会,都是对的,就不管了。
I和J写的暴力,没法拍。
最后剩下40分钟,稍微休息了一下,省一肯定是有了......
在想该怎么给acm队的同学讲这次蓝桥杯的知识点了,知识点都有点难吖,很多都是差点讲到,可惜qwq

题解

image

A题直接暴力枚举每个数,然后判断就行了吖,代码要跑一会儿,挺快的!

image

B也是!枚举所有情况再判断即可!代码也要跑一会儿,但是不会很久!

image

找规律就行了qwq,我这题是错了的,呜呜呜痛失10分

image

区间DP,设f[i][j]表示反转[i,j]之后,新数与原数的大小关系,如果f[i][j]=1,则表示反转后新数更小,=0表示翻转后相等,=-1翻转后新数更大。这样的话,我们可以预先处理所有f[i][i],和所有f[i][i+1],接下来对于所有其他f[i][j],如果s[i]>s[j]或者s[i]<s[j],那么f[i][j]的值直接可以求出来。如果s[i]==s[j],那么f[i][j]=f[i+1][j-1]

image

考虑一个暴力,求出每个子树包含的颜色数,以及每种颜色出现次数的最大值,这个东西得用map存!
这样复杂度是O(n^2logn)的,但是我们可以dsu on tree,每个重儿子暴力之后不清空信息,直接让父亲继承。
这样复杂度就缩小到O(nlog^2n)了!

image

首先,劈开的瓜必须买!这样每个瓜只有三种状态,不被买,被买,被劈了再买。
小数不好处理,先整体乘2,避免小数出现。
暴力就是三进制枚举每个瓜的状态,复杂度就是O(3^n)
考虑一个折半搜索,即把瓜均分为两部分,两部分分别三进制枚举,一部分的结果存在map中,另一部分在map中查询。

image

发现,在原图上询问和在最大生成树上询问是一样的!
于是建最大生成树,在最大生成树上倍增LCA即可!

image

这题在这个位置真的没道理。
二进制每一位贡献独立,问题转化为01序列的问题。
区间里有奇数个1的时候才会有贡献,那么记录前缀和只需要记有多少个奇数前缀和和偶数前缀和即可。

image

切四块暴力。
但是本题有唯一解,所以剪剪枝,跑得很快。

image

这题并不会。

标签:前缀,14,题解,复杂度,蓝桥,枚举,......,暴力
From: https://www.cnblogs.com/lmlysklt/p/17300977.html

相关文章

  • c++Primer 14 重载运算符与类型转换
    除了重载的函数调用运算符operator()之外,其他重载运算符不能含有默认实参。      泛型算法中调用的几元谓词是看函数对象的调用运算符的参数个数。而不是构造函数的参数个数。    转换构造函数只能有一个参数,如果他有多个参数,就无法判断是将哪个参数转......
  • (已改正)第十四届蓝桥B组省赛回忆版 E: 接龙数列
    目录E:接龙数列原题错误版改正版DP写法E:接龙数列原题时间限制:1s内存限制:256MB题目描述对于一个长度为K的整数数列:A1,A2,...,AK,我们称之为接龙数列当且仅当Ai的首位数字恰好等于Ai−1的末位数字(2≤i≤K)。例如12,23,35,56,61,11是接龙数......
  • 【解题报告?】14 Understand Variants
    整个活。洛谷愚人节比赛2023的F题。这题一看就知道是WYXkk出的,高浓度解密元素(洛谷链接入口Understand和14MinesweeperVariants都看见过,但是都没自己玩过(可以先自己玩玩,挺好玩的(可以说是演绎法的练习?(Understand不贵,快买!(我还没买,会买的会买的)1.Tutorial教程。......
  • 14.7.2014年41题真题讲解
    function.h////Createdby93757on2023/3/21.//#ifndefINC_1_TREE_FUNCTION_H#defineINC_1_TREE_FUNCTION_H#include<stdio.h>#include<stdlib.h>typedefintBiElemType;typedefstructBiTNode{BiElemTypeweight;//c就是书籍上的data......
  • 14.6二叉树的层序遍历实战
    function.h////Createdby93757on2023/3/21.//#ifndefINC_1_TREE_FUNCTION_H#defineINC_1_TREE_FUNCTION_H#include<stdio.h>#include<stdlib.h>typedefcharBiElemType;typedefstructBiTNode{BiElemTypec;//c就是书籍上的datastru......
  • “科大国创杯”2023 年安徽省青少年信息学科普日活动 简要题解
    老年退役选手感受单调队列力量。初中组没有实现,如果有问题欢迎爆d我。小学组T1grade直接累加即可。不需要按百分比算(也就是别/100),那样可能会出现一些浮点数误差。T2order暴力枚举$t$就可以了T3string答案即为$cnt4+cnt5-cnt20$。注意到对于一个数,我们只关心其个位和十位......
  • [省选联考 2023] 染色数组 题解
    题目描述给定一个长度为\(n\)的正整数数组\(A\),其中每个数都在\(1\)到\(m\)之间,从左到右排成一排。现在要将每个数字染成红色或者绿色,我们定义一个染色方案为优秀的染色方案,当且仅当它满足:每个数\(A_{i}\)要么被染成红色,要么被染成绿色。红色的数从左到右依次严格递......
  • [省选联考 2023] 染色数组 题解
    题目描述给定一个长度为\(n\)的正整数数组\(A\),其中每个数都在\(1\)到\(m\)之间,从左到右排成一排。现在要将每个数字染成红色或者绿色,我们定义一个染色方案为优秀的染色方案,当且仅当它满足:每个数\(A_{i}\)要么被染成红色,要么被染成绿色。红色的数从左到右依次严格递......
  • 14.4二叉树层次建树
    创建function函数////Createdby93757on2023/3/21.//#ifndefINC_1_TREE_FUNCTION_H#defineINC_1_TREE_FUNCTION_H#include<stdio.h>#include<stdlib.h>typedefcharBiElemType;typedefstructBiTNode{BiElemTypec;//c就是书籍上的datast......
  • P2824 [HEOI2016/TJOI2016]排序 题解
    题目传送门前言线段树好题!!!!咕咕了挺久的一道题目,很早之前就想写了,今天终于找了个时间A掉了。题意给定一个\(1\)到\(n\)的排列,有\(m\)次操作,分两种类型。1.0lr表示将下标在\([l,r]\)区间中的数升序排序。2.1lr表示将下标在\([l,r]\)区间中的数降序排序。给......