自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 蓝桥杯复训之区间dp

题目链接:https://www.acwing.com/problem/content/1390/思路:对区间进行动态规划,f[i][j]代表从区间i到j的先手所能拿到的最大值。

2024-03-30 18:59:19 406

原创 蓝桥杯复习之并查集

题目链接:https://www.acwing.com/problem/content/530/并查集是一种代码简短的,主要用于解决一些元素分组问题的数据结构。合并(Union):把两个不相交的集合合并为一个集合。查询(Find):查询两个元素是否在同一个集合中。

2024-03-21 15:34:12 785

原创 蓝桥杯复习之前缀和

当题目所求子序列以a5结尾时,已知a5=1且a5前面与a5相同的值有2个,则以a5结尾可以获得2个满足题目要求的区间。题目链接:https://www.luogu.com.cn/problem/P8649。样例中前缀和数组a取模后为:1 1 0 0 1。如果以a3结尾则是一个,因为实际上有一个a0=0。下标依次为1 2 3 4 5。

2024-03-04 20:42:11 553

原创 蓝桥杯复习之差分

对希望温度与实际温度做差,再对这个做差数组做差分。我们的每次操作等价于在差分数组中选一个数加一或者选两个数一个加一,一个减一。找出差分数组中正数和和负数和中绝对值大的那个就行。题目链接:https://www.acwing.com/problem/content/description/4265/

2024-03-03 13:50:35 741 1

原创 蓝桥杯复习之二分法与前缀和

找平均值/最小(大)值的最大(小)值,往二分答案方向想,二分答案的模板见代码。因为是找连续的一段,我们用前缀和优化计算,假设前缀和数组为pre,只要存在pre[j]-pre[i]>=0且j-i>=f就可以返回true了。题意:农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于 1 头,也不会超过 2000 头。约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大。在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少?

2024-03-02 21:05:39 714

原创 蓝桥杯铺垫:树的应用之树链剖分

b站的讲解视频:https://www.bilibili.com/video/BV1tY4y1G7em/?模板题目:https://www.luogu.com.cn/problem/P3379。重儿子:父结点的所有儿子中子树结点最多的结点。轻儿子:父结点中除重儿子以外的儿子。重边:父节点和重儿子连的边。轻边:父节点和轻儿子连的边。

2024-02-02 22:19:01 364

原创 P9232 [蓝桥杯 2023 省 A] 更小的数与P9231 [蓝桥杯 2023 省 A] 平方差

题目思路:有2种情况可以达成题意,首先是反转的字符串中第一位大于最后一位,其次是虽然前x位和后x位相同,但是中间不同的位是前面大于后面的,比如22203222也是一种,然后模拟就可以了。假设y+z=n,y-z=m,则y=(n+m)/2,z=(n-m)/2, 又x=n*m且都为整数,则n和m奇偶性相同,所以x要么为奇数要么为4的倍数。题目链接:https://www.luogu.com.cn/problem/P9232#submit。P9232 [蓝桥杯 2023 省 A] 更小的数。

2024-01-25 22:02:26 439

原创 P9234 [蓝桥杯 2023 省 A] 买瓜

最容易想到,当先择了的西瓜总量大于需要时可以剪掉。我们每次把当前劈开瓜的次数也记录下来,当当前次数大于等于之前搜出过的最小值,也剪掉。当前选择的西瓜总量+剩下的西瓜总量小于所需时,剪掉,我们使用前缀和记录剩下的西瓜总量。每个瓜有三种选择,不要/劈开/要整个,显然整个决策做下来是树状的,于是我们考虑用dfs,每次能拿到相对重量的瓜时就统计劈开数量。如果直接写不优化,恭喜你喜提20分,于是我们考虑剪枝。题目链接:https://www.luogu.com.cn/problem/P9234。

2024-01-24 17:24:42 434

原创 P9236 [蓝桥杯 2023 省 A] 异或和之和

先使用求出数组A的前缀异或和数组P,即P[ i ] = A [1]^A [2]^.....^A [i],考虑异或的性质,即b^b=0,A^b^b=A,则第L个元素到第R个元素的异或和为P[R]^P[L-1],也就是对n内的每一对i<j,求所有P[j]^p[i-1]的和。我们考虑每一位相加,也就是拆位,在每一位上统计该位的贡献。dp[i][j]表示第i位上数字为j的数量(因为用二进制算的,j只能为1或0),题目链接:https://www.luogu.com.cn/problem/P9236。

2024-01-23 18:10:23 504

原创 CS571 JavaScript3笔记

一个回调函数(有时也叫函数引用)传给另外一个函数当参数,然后在外部函数内部调用,以完成例程或操作。

2023-11-30 17:15:19 42

原创 Educational Codeforces Round 158 (Rated for Div. 2)

我们考虑令i为起点,那么在i左边的位置j最坏情况需要以a[j]+n-j为开头,在i右边的位置k最坏情况需要以a[k]+k-1为开头,那么如果以i为起点,需要的x为a[i]、前缀的最坏情况的最大值、后缀最坏情况的最大值中的最大值。又由于第一步要最优,那么我们只需以1~n为起点需要的x中的最小值即可。每次操作可使两数差距变为原来差距的一半向下取整,只最大值和最小值,这两个相等别的也相等了。记得开long long,只有a[i+1]>a[i]才需要增加传送次数。

2023-11-25 10:28:38 55

原创 Codeforces Round 910 (Div. 2)

从后往前,遇到大的就分。

2023-11-20 10:38:41 78

原创 威斯康星CS571笔记(1)JavaScript1

有用的文档CSS 设计JS 行为三大件基础。

2023-11-19 20:54:09 34

原创 字典树之01字典树与1847C

我们用边来存储信息,那么一条边有哪些要存储的呢?起点,终点,题目里面要存的东西,可以参考网页:https://oiwiki.org/string/trie/ 中的讲解,如果你对如何用数组模拟链表有所了解,那就更好理解了。那么这道题,相当于求最大异或区间,就非常简单了,求每个区间的异或前缀和,然后在遍历寻找每一个前缀的最大异或对,相异或就得到最大异或区间。数据结构进阶,Trie树,也叫字典树,顾名思义,就是一个像字典一样的树。

2023-11-16 21:10:47 23

原创 每日一题dfs之小猫爬山

DFS 全称是,中文名是深度优先搜索,是一种用于遍历或搜索树或图的算法。所谓深度优先,就是说每次都尝试向更深的节点走。该算法讲解时常常与 BFS 并列,但两者除了都能遍历图的连通块以外,用途完全不同,很少有能混用两种算法的情况。DFS 常常用来指代用递归函数实现的搜索,但实际上两者并不一样。有关该类搜索思想请参阅。

2023-11-14 20:24:40 26

原创 bfs入门之矩阵距离

一般用队列实现,也就是从队列 Q 中取出队首的节点 u,然后把与 u 相邻的所有节点 v 标记为已访问过并放入队列 Q,以此可以储存“传播火苗”后的状态。算法过程可以看做是图上火苗传播的过程:最开始只有起点着火了,在每一时刻,有火的节点都向它相邻的所有节点传播火苗。合法路径,那么初始时便可以把这些‘1’的点全部入队,之后把符合条件的点的距离更新后继续入队。比如这道题,可以想到所有‘1’的距离B都是0,由于BFS 算法找到的路径是从起点开始的。这样做的结果是,BFS 算法找到的路径是从起点开始的。

2023-11-13 20:45:11 26

原创 Codeforces Round 908 (Div. 2)A~D

从最后一位开始,每次迭代就是按照最后一位数字往前挪,挪到谁谁就是下一个最后一位。结论题,最后一个谁赢------>最后一组谁赢------->谁是最终赢家。找出每个数字出现的次数,若是超过两个不同的数字各自出现次数不小于2就可以。每一个bi插入小于该bi的最大aj前面。

2023-11-08 22:38:49 47

原创 COMPFEST 15 - Preliminary Online Mirror (Unrated, ICPC Rules, Teams Preferred) B题

用map把X中的质数和指数存进去,如果Y中有X没有的质数或指数更大,那么答案为0,如果Y与X相同,答案为1,剩下的一种情况的答案就是2^(X/Y后剩余的质数种类的数量)假设p=nY,q=mY,则X=nmY且n,m 互质。

2023-11-02 22:29:39 53

原创 Codeforces Round 906 (Div. 2)

模拟,注意k不能为奇数,字符串里01数量相同,1相同在左边的1前面加01,0相同在右边0的后面加01,注意边界维护。

2023-10-29 21:19:24 71

原创 新生讲课防翻车留档Codeforces Round 898 (Div. 4)

【代码】新生讲课防翻车留档Codeforces Round 898 (Div. 4)

2023-10-26 13:51:29 53

原创 Codeforces Round 904 (Div. 2)

【代码】Codeforces Round 904 (Div. 2)

2023-10-22 16:31:29 230 1

原创 codeforces每日做题

其实就是找一个字符串,循环周期长度不是n的因数。前缀和,后缀和还有特判。

2023-10-17 21:21:37 26

原创 蓝桥杯算法双周赛

dp,但是非常简单的dp,位运算的处理比较关键。这种最大找最小的一般都是二分答案。

2023-10-15 20:19:14 86 1

原创 Codeforces Round 900 (Div. 3)

e题是个好题目啊,预处理的方式非常巧妙。找出x范围,因为给了k,所以好找。总之就是前缀和+二分。

2023-10-14 16:46:43 37 1

原创 Educational Codeforces Round 156 (Rated for Div. 2)A~C

删除字符串的最优策略是当ti>ti+1,删ti。

2023-10-11 20:36:15 16

原创 Codeforces Round 902 (Div. 2, based on COMPFEST 15 - Final Round)

推一下可以发现,k只可能等于1,2,3,注意判断一下m为n的倍数(m=n不算),当时脑子卡了觉得0~m有m个数,wa了6发。村长先告诉给花费最低的人a,a再告诉别的花费小于p的人,他们再告诉别人,如果还有剩下的人,由村长告诉。别的明天再补了,只能切ABC实属弱鸡。没什么好说的,总和一定是0。

2023-10-08 21:01:34 264 1

原创 每日一题之硬币翻转

很简单的思维题,考虑一个二进制串1001001110011,反转时里面所有相邻的0和1都可以考虑为一个也就是1010101,数出里面有多少个1和0,如果结尾是1就减掉一个。

2023-10-07 20:53:14 31 1

原创 Codeforces Round 898 (Div. 4)Problem G. ABBC or BACB

AAAAAAB或者BAAAAA或者AABBAAAAA都可以全部消除,其中某些A替换成B也没问题。那么只有一种可能,ABAAAABAAABA这种不可以全部消除,舍弃掉里面最少的可能的A的数量。最后获得的coin数和消除掉的A数量一致。

2023-10-05 21:17:39 67

原创 Codeforces Round 899 (Div. 2)A~C

暴力,数字1~50,枚举,如果要让某一个数不存在S中,S中还有的不同的数的数量,代码写得比较丑。假设我们一定选第i个,那么第i个后面的正整数就都能取得。开个后缀和优化一下,写后缀和数组时就把负数当成0就行。C题,没开long long, WA2了,好吧!今天先补A~C啦,D题明天再说。

2023-10-03 15:44:01 22

原创 Codeforces Round 901 (Div. 2)D题,基础但是细节的dp

思路:题目的花费就是我们要去除数组中所有0的最小花费,找出最初的mex使其等于mexx,从mexx往下一层一层算,dp[i]表示使mex达到i花费的最小值,dp[i]=min(从mexx直接到i的花费,从mexx到j再到i的花费)记得用map存出现次数,不然爆数组。

2023-10-02 20:43:33 60 1

原创 Codeforces Round 901 (Div. 2)A~C

lcm(n,m)=n*m/gcd(n,m),也就是平均每人n/gcd(n,m)片,也就是每个果子分成m/gcd(n,m)片,因为果子只能对半分,m/gcd(n,m)必须是2的整数次幂。其实就是二进制表示的n/gcd(n,m)中1的个数,假设这个数字是x,每切一刀果子片数+1,那么一共要x*m片,初始有n个,答案就是x*m-n。第一步,就是第一轮时,看A中最小与B中最大交换是否值得,值得就交换,不值得也算第一轮过去,如果k==1,就到此为止,输出就行。D题后面再补啦啦啦啦啦。

2023-10-01 14:33:16 75

原创 kuangbin题单每日一题

典型的DFS,唯一要注意的就是只有“#”才能放棋子。

2023-10-01 13:44:54 25

原创 Educational Codeforces Round 155 (Rated for Div. 2)A~D

由题意可转化为,每一个放置的块都可以影响和自己同一行同一列的格子,花费就是这个格子对应的行在数组里的数字加上对应的列在数组里的数字,可以分为行花费+列花费,很容易想到,最少放置n个格子就够了,怎么放呢?只要每个格子行数或者列数不同就行,行数都不同,那么行的花费确定了,列随便怎么放都行,就找花费最小的放置就找,列数不同同理!把每个01串中挨着的0和1的重复个数数出来,比如有m个1挨着,就要去除m-1个1,就有m种去法,分成相同连续的若干段,最后所有被删的字符还需要排列一下,用阶乘算。

2023-09-27 17:35:07 56 1

原创 百度之星第三场之与蝴蝶一起消散吧

贪心地想,就是说每一波怪物基本都是必杀与普通交替的,为什么说基本上呢?因为我们现在怎么做要看上一波有没有留下一次必杀技,是不有有点像背包问题,talk is short,let me show the code。懒得重新写数组,看了下题解,这样挺方便,反正回滚,每次更新保证最小就行。

2023-09-25 19:49:51 322 1

原创 小根堆实现堆排序后输出前m个数

小根堆(完全二叉树)简单用法

2023-06-28 21:59:01 41 1

原创 Codeforces Round 825 (Div. 2)B. Playing with GCD

简单的思维题,做题时记得带上纸和笔

2023-03-22 22:13:57 47

原创 Codeforces Round 854 by cybercats (Div. 1 + Div. 2)B. Equalize by Divide

有难度的b题

2023-03-21 21:25:20 108

原创 Codeforces Round 780 (Div. 3)C. Get an Even String

水题

2023-03-16 20:51:52 62

原创 Codeforces Round 850 (Div. 2, based on VK Cup 2022 - Final Round)B. Cake Assembly Line

水题

2023-03-06 16:37:56 66

原创 Educational Codeforces Round 141 (Rated for Div. 2) B.Matrix of Differences

Educational Codeforces Round 141 (Rated for Div. 2) B.Matrix of Differences

2023-01-18 19:30:27 71

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除