
算法
以算法竞赛题目讲解为主
我爱拉臭臭
喜欢学习UE、Android、后端以及算法的大学生
展开
-
Codeforces Round 834 (Div. 3)F. All Possible Digits
此题主要思想是进行二分,这是因为如果我x次操作就能够包含到0~p-1。那么,x+1次必然也可以将0~p-1包含到。既然这样,那么进位次数就呈现单调性。其中vis.push_back(make_pair(a,b))表示,a~b都被包含到,now为当前的进位。最大的边界就是m次,那肯定会覆盖完全。第一次我是用了差分数组但是没有想到p的大小位10^9 O(plogp)显然过不去。原创 2024-11-20 20:48:54 · 134 阅读 · 0 评论 -
A. Max Plus Size(I)
这个题就是找在奇数位置最大值和偶数位置最大值,最后加上相应索引个数。原创 2024-11-16 19:39:19 · 129 阅读 · 0 评论 -
POJ-3250
明显的能够知道这是找当前位置的右边离他最近的且不小于他的位置,这就要用到单调栈了,(lower_bound应该也能行)。单调栈的应用是能够找到最近的最值得位置或者其大小。这是一道单调栈的模板题。题目情景是当前的牛站在其所处位置,向右边看(下标大的方向),最多能看到哪里(如果这个位置的元素大小比他自己还大就停止)。原创 2024-11-16 19:28:46 · 151 阅读 · 0 评论 -
Codeforces Round 615 (Div. 3)D. MEX maximizing
【代码】Codeforces Round 615 (Div. 3)D. MEX maximizing。原创 2024-09-01 14:31:15 · 169 阅读 · 0 评论 -
Codeforces Round 698 (Div. 2):C. Nezzar and Symmetric Array
d[i] = (i*a[i]-si+sn-si-(n-i)*a[i]) +(n*a[i]+sn) = 2*(i*a[i]-si+sn),这样子a[i]就有了,a[i] = d[i]-2*(sn-si)/2*i,那么这个sn-si怎么求呢,那么很特殊得a[n]=d[n]/2*i,那么s[n]-s[i]不是手到擒来了。从小到大对啊a[i]进行排序(假设a存在),a[1]、a[2]、……那么从后向前求a[i]就可以啦,如果a[i]求出来是分数,那么这个a是不存在,这就是d得另。,并且a数组里面不能有0,因为。原创 2024-08-08 00:26:18 · 273 阅读 · 0 评论 -
Codeforces Round 906 (Div. 2):C - Qingshan Loves Strings 2
如果存在这样一个字符串:0110,那么第一位和最后一位都是0,也就是说,这个时候的"01"插入在最后一位的后边,来保证破坏这个相等条件,那么就变成了,011001,这样子就变成一个优美字符串。如果是1001呢,这样的话,“01”就应该插入在第一位的前面,破坏这个相等。题目中给了300的字符操作数,如果成立的话这个数字是一定能行的,如果不能成立再多的操作也不能化成优美字符串。这样子的话,不加入01和加入01一样的不成立,因为加入01之后,两者数量还是不一样,,那么,这个字符串有什么奥妙呢。原创 2024-08-04 16:12:20 · 222 阅读 · 1 评论 -
CodeTON Round 7 (Div. 1 + Div. 2, Rated, Prizes!) :D:Ones and Twos
如果一个数组为1 2 1 2 1,要求查询的是5,那么,这个五可以是前后减掉两个一得到,如果数组是2 1 1 1 2 ,那么直接减掉2就能得到。那么,为什么会得到这样的式子呢,我们可以想到,既然是最左边和最右边的1,那么,他们还没找到之前的数字都是2,也就是2 2 2 2 ……,那么,我们就应该贪心的想如何让减去奇数之后的这个sum最大(也就是删掉几个数字之后sum最大),那么就可以想,。,因为减掉左右两边(左边可减掉0/1个数字,右边同理)的数字之后,还是满足能够剪掉左右两边的偶数数字。原创 2024-08-04 03:23:42 · 372 阅读 · 0 评论 -
codeforces round894(div3)E 题
减少的值得总和为:jian = d*b[1]+d*(b[2]-b[1])+d*(b[3]-b[2])+……d*(b[k]-b[k-1]);不能让自己开心,也就是说,他和这个集合中最小的一个元素比,去掉小的一个,这样就能得到,以第i天为最 后一天,科里亚的娱乐值。a[i]<=0的时候那他自然不会去看,那么在a[i]>0的时候就将这一天算作去了的一天。题目里还说到了最多只能去m天,那么在他去的天数超过m天的时候就该想想,这一天到底能。b[i]——科里亚在b[i]天去看电影。原创 2024-07-27 21:36:59 · 216 阅读 · 0 评论 -
CFround953(div2)
【代码】CFround953(div2)原创 2024-06-18 18:51:14 · 586 阅读 · 1 评论 -
山东理工大学第十六届ACM程序设计竞赛 H题(我最喜欢吃饭了)
来源:牛客网那天我蹲在食堂门口看着人来人往,但是因为我不认识他们,所以我只能按照他们进食堂的顺序给他们每一个人编了个号。已知:如果两个人编号分别为 iii 和 jjj 并且有 i<j ,那么 iii 一定比 jjj 先进入食堂,并且 i 一定比 j 先排上队。而且因为当年是疫情(别问我为什么疫情还蹲在食堂门口),不能食堂就餐,打完餐就走了,所以如果 iii 和 jjj 排的是同一个打餐窗口,那么 i 一定比 j 先从食堂出来。原创 2024-05-30 21:40:03 · 503 阅读 · 0 评论 -
Acwing1591快速排序
【代码】Acwing1591快速排序。原创 2024-05-22 16:35:04 · 141 阅读 · 1 评论 -
HDU A/B
【代码】HDU A/B。原创 2024-05-18 17:02:13 · 269 阅读 · 0 评论 -
洛谷p1345 回文字串(dp)
举一个例子:abcb 反过来为bcba 最长公共子序列为bcb :3 那么 插入一个a 就好了。公共的子序列就不用在给他插入字符串,就相当于看没有匹配的字符的字数就是解,将输入字符串逆序,例如将Ab3bd倒过来,为db3bA。那么,算出来最长公共子序列就能知道答案了。1000完全能够负担得起二维数组。原创 2024-05-11 20:57:25 · 203 阅读 · 1 评论 -
牛客浙江理工大学 2024 年程序设计竞赛(同步赛) F(leetcode)
【代码】牛客浙江理工大学 2024 年程序设计竞赛(同步赛) F(leetcode)原创 2024-04-24 20:33:41 · 400 阅读 · 0 评论 -
二分查找函数(lower_bound())+KMP模板+个人理解
【代码】二分查找函数(lower_bound())+KMP模板+个人理解。原创 2024-04-20 14:05:23 · 162 阅读 · 0 评论 -
洛谷 A-B数对问题(P1102)
新人求赞 (送花花)原创 2024-04-20 13:44:30 · 117 阅读 · 0 评论 -
洛谷-约瑟夫问题(P1996)
【代码】洛谷-约瑟夫问题(P1996)原创 2024-04-20 13:16:42 · 385 阅读 · 0 评论 -
洛谷八皇后问题
【代码】洛谷八皇后问题。原创 2024-04-20 13:10:32 · 264 阅读 · 1 评论