自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单调栈(随缘复习到了,顺手刷了)

也是不知道为什么突然又复习到单调栈了,所以顺手刷了三道题,总结一下思路:这题是要求每个子区间里面的最大值和最小值的差,我们一开始想的必然是纯暴力呀,但是一看这数据,嚯!O(n^2)的时间复杂度,这不直接炸了,因此我们需要想一个O(n)的算法或者O(nlogn)的算法我们再次分析题意,我们是否可以将题目转换一下,变成先求所有区间的最大值,然后再一起减去所有区间的最小值,然后就变成了,那么就可以用单调栈了,时间复杂度为O(n)我们用四个数组分别存储每个点的右边第一个比他大的。

2024-07-22 20:13:48 277

原创 Codeforces Round 960 (Div. 2)(A~D题解)

这次比赛还是三道题,但是由于每道题没有注意到细节都是WA了几次,吃了五次罚时也是老实了,这次又是被打吐了,话不多说,直接看题吧题解:刚进去两分钟就交了第一次,我以为只需要看最大值的奇偶性和次大值的奇偶性即可,没想到是要看全部的,只有有一个数是奇数就证明有必胜法则,因此我们用一个map去统计出现的次数即可题解:这题也是刚看了不到五分钟我就以为想到了正解,但是也是很愉快的被wa了,因为只考虑到了x,y的位置上是1,而没有去确定其左边和右边的数的值,也是WA了两发。

2024-07-21 09:25:28 304

原创 种类并查集

最近玩的太嗨了,都忘了自己还有三篇博客还在拖更,也是今天一更到底好吧,边更新边写题,让看官老爷有更多的样题去联系。

2024-07-20 19:18:21 451

原创 扫描线算法——计算几何问题求解

有时候我们会碰见一些求n个矩形的面积并(就是说n个矩形,每两个矩形之间都有可能重叠,然后问你这n个矩形的总占地面积为多少),或者周长并(就是说n个矩形拼成的最外围轮廓的周长和)对于这种问题,在最初的做题中用的都是去维护区间去求解最后的面积并或者周长并,但是在后面就有了本篇讲述的扫描线算法不论是线段树+离散化,还是扫描线算法,其算法的时间复杂度都为O(N*logN)于线段树+离散化扫描求解过程有点像积分。

2024-07-20 16:04:03 1105

原创 离散化总结

那么首先来说一下 ,何为离散化,离散化的本质是建立了一段数列到自然数之间的映射关系(value -> index),通过建立新索引,来缩小目标区间,使得可以进行一系列连续数组可以进行的操作比如二分,前缀和等…单论定义的话,确实还是有些许抽象的,因此我在这里给出一个实例。

2024-07-18 10:20:19 549

原创 Codeforces Round 958 (Div. 2)(A~C题解)

先来看14,这个数据二进制表示 14(1110),12(1100),10(1010),4 (0100),这个你发现了什么,你是不是发现,倒数第二个数和倒数第三个数,都是在最后一个数的基础上各自消失了一个1,然后我们的然后第一个数,是在第三个数的基础上消失了1位1,思路:我们完全可以将01序列里面的所有连续的0变成一个0,然后最后统计0的个数和1的个数,最后判断,如果1的个数大于0,则输出YES,如果1的个数小于等于0的个数,那么就是NO。反之再测试23依然可以得证这个关系,因此可以知道这个关系是正确的。

2024-07-16 15:35:48 864

原创 7.16做题总结

今日也是让我看到了繁神的ACM历程,确实,我觉得繁神的历程里面确实有一句很好不想打算法竞赛了。这是因为有别的事情要做,不是因为我打不动。不想打比赛凌晨两点才睡了。因为我会困。不想在群里和高水平选手水群了,因为我想独处。不想去打区域赛,和 ICPC 选手多交流什么了,因为感觉中国选手都没几个好好打的。不想出题了,一是因为我菜,二是因为我没有时间。不想一年拉着队友训练三百场,因为我更想读读论文。

2024-07-15 22:02:32 517

原创 7.14做题总结

今天啥也没学,我也算是废了,随便从我写的题里面抽两道总结一下吧这题我们的暴力解决方法,为枚举x和z然后通过x+z/2=y.来得到y,但是我们发现这中做法的时间复杂度为O(n^2),很明显对于我们这题来说时间复杂度是一定超了的,那么我们再想,会不会有一些可以简单复杂度的方法,那么我们只能用到我们的分治思想了,因为要求的是x,z的颜色是要一样的,那么我们就让他一样,给每个颜色进行分组,分成m组,然后再对里面的编号进行分奇偶处理,因为x与z是同奇同偶的,因此,总共会分成m组,那么我们来推一下公式是什么。

2024-07-15 00:04:29 284

原创 Codeforces Round 957 (Div. 3)(A~E题解)

这次比赛只能用抽象来形容,前五道题都没有什么算法,都是思维加模拟都能过,然后第四题卡住了,第五题不知道为什么做出来的人那么少,就是纯暴力就能过,但是没抓住上分的机会,有些可惜,但是还好打完比赛把第四个重新补出来了,感觉大模拟的题还是不太擅长,以后可以练习一下。如果是水,判断水和下一个木头的位置,如果中间存在鳄鱼,那么也是不可能的,如果没有鳄鱼,则需要判断如果游泳,会不会超过k,如果总游泳没有超过k,则可以,更新old的first和second即可。每次选取出来三个数里面最小的一个加上1就可以。

2024-07-12 03:02:03 1462 4

原创 线段树例题2

今天是第二次做线段树的例题,也是小做了几个。然后顺便来说一下pushdown的作用首先来说以下为什么以及都不用到懒标记,因而不需要pushdown,因为本身就带有一个单点,所以修改或者查询的时候每次都可以抛弃一半的线段树,因而时间复杂度是一定可以达到 log 层的,但是对于。

2024-07-09 21:17:48 801

原创 Codeforces Round #956 (Div. 2) and ByteRace 2024(A~D题解)

这次比赛也是比较吃亏的,做题顺序出错了,先做的第三个,错在第三个数据点之后,才做的第二个(因为当时有个地方没检查出来)所以这次比赛还是一如既往地打拉了那么就来发一下题解吧题意:对于1

2024-07-08 09:59:31 1065 3

原创 拓展欧几里德算法+乘法逆元相关例题

今天也是随手刷了几道求逆元的题目,无非也就是1.费马小定理2.欧拉定理3.拓展欧几里得4.线性运算但是呢?题目都会与相关的场景结合一下,而不是直接问你乘法逆元是个啥?当然了简单题也不是这样问的,那么现在就来说一下今天做的题目吧题意:就说给你两个数一个n一个p,然后 求1~n的所有数对于p的乘法逆元,那么就只能用到了那么我们在这里给出数学推理,设ans为逆元数组,ans[ i ] 表示 i 的逆元那么我们可以说两边同乘i的逆元 * r的逆元得出代入k的值和r的值。

2024-07-07 22:11:25 682

原创 数论学习1(欧几里德算法+唯一分解定理+埃氏筛+拓展欧几里德+同余与模算术)

今天也是小小的开始学习数论方面的知识了,首先数论的入门章节必然是和。

2024-07-05 22:29:51 626

原创 开灯问题(数学思路)

是的,你没有看错,就是简单的开灯问题,难度仅为入门,但是这题在做的时候我也仅是找到了规律,并没有证明出来时为什么,直到看大犇的证明,我才发现,我在数学上真的还是太拉了,话不多说还请看题。题意:就是说给你n个灯,n轮游戏,到了第 i 轮 ,所有因数有 i 的都要进行一次操作(换言之,i 的倍数都要进行一次操作),然后问你哪些灯是开的,哪些灯是关的。,直到我看到了数据为2^40,我才认为这题是有规律的,一开始我是自己在纸上画到了9,然后发现了完全平方数的规律,然后才做出来的。为:(a1+1)*(a2+1)*

2024-07-05 09:43:22 451

原创 线段树求区间最值问题

线段树去求区间最值问题,一般用于区间内的数没有顺序,不能使用二分的时候可以考虑使用线段树来求最值问题,时间复杂度在查询和修改的时候也为O(logN)可以很大节约时间开销同时在其中建树的时候也是有讲究的,其中的sum为区间内的最值建树代码if(l==r)return;return;return;

2024-07-04 22:10:47 440

原创 Codeforces Round 955 (Div. 2, with prizes from NEAR!)(A~C题解)

这场比赛怎么说呢,一开始打的还算好,能进前1000,但是后面就被卡住了,这个确实没办法水平还是不够,学过的还是没想起来,后面继续练题解:水题一个,想要在过程中出现平局的情况,只要两人的得分不存在大小交换(就是说一开始一队分高,后面二队分高)这种情况,就有可能会没有比分相平的情况。

2024-07-04 21:12:25 288

原创 线段树知识总结

线段树这个东西,这次是第二次学习,怎么说呢,感觉理解还是不是特别的透彻,因此,在后面彻底完学习之后这个东西再改成公开。

2024-07-04 11:00:16 498

原创 题解(A~D)

这次vp的比赛,我感觉前四道题虽然一点算法也没有,但是就是很难去做,要用数学思维去处理第五题终究还是没有尝试,只能说才疏学浅吧,我只能说话不多说,一起来看题目题意:一开始给你三个点的位置,然后问你,在x轴的什么位置才会出现,三个点到那个位置的最小值思路:很明显当x的位置,为三个点的中间的点的位置的时候有最小值,我们可以画图找出一个路程公式,假设三个点的坐标为x1,x2,x3,然后我们找的位置的坐标为x。

2024-06-27 23:54:22 394

原创 预备役二招算法测试题解

题意:就是说给你n个矿石,然后,这n个矿石都有自己的重量w,以及其价值v,我们有一种判断机制,就是说给你m个区间范围,每次给你一个左边界L和右边界R,我们的计算机理是,这个区间内的大于规定筛选重量W的数量,乘以大于筛选重量的价值,然后将总的算出来的y累加到一起,看看和规定的标准值S最小差多少,输出最小的参数W。题解:能够拆开并且拼凑到一起的边一定是偶数,因此,我们就是单纯去模拟就可以了,如果是偶数就去分开,将其拼凑在一起,判断和之前的是否形成了不一样的矩形(纯粹的模拟题,题目上咋说,你去就咋做)

2024-06-24 12:49:35 631

原创 单调队列总结

其实单调队列就是用于求一个区间的极值的一种方法,我们可以利用单调队列去处理某一个区间里面的极值问题,然后就会衍生出一种滑动窗口的思想。

2024-06-17 17:57:03 339

原创 Codeforces Round 953 (Div. 2)(A~D题解)

这次比赛是我最顺利的一次比赛,也是成功在中途打进前1500,写完第三道题的时候也是保持在1600左右,但是后面就啥都不会了,还吃了点罚时,虽说如此也算是看到进步了,D题学长说很简单,但是我当时分析错了,出了一点小问题,不然最后也能定格在2000左右,下次加油。题意:就是说给你n本书,让你从中间分开,阅读边编号最大的那本书,然后问你最多能读多少页,这个很简单,最后一本书肯定是要读的,我们只需要遍历从1到~n-1本书,找到那本书页数最多然后加起来就OK了。

2024-06-16 22:28:22 1311

原创 Codeforces Round 926 (Div. 2)(A~C题解)

A题是个签到题,BC思维题目,搞出来结论就秒了,D题是个树上DP由于现在水平薄弱还没做出来,以后补上思路给数组排序,然后后项减前项,累加值就是最终结果,签到题一个。

2024-06-14 12:11:15 268

原创 前缀和(一维前缀和+二维前缀和)

前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而差分可以看成前缀和的逆运算。合理的使用前缀和与差分,可以将某些复杂的问题简单化。

2024-06-13 20:35:26 973

原创 Codeforces Round 952 (Div. 4)(A~E题解)

这次比较遗憾的就是第五个,本来直接计算就过了,结果存到一个数组里面一直都在超时,导致这次第五题都没做出来,确实小丑了话不多说直接看题题解:这题就直接交换一下就OK,没有别的事。题意,这题就是说不超过n的某个数的所有倍数之和最大(我当时以为是所有数加起来不超过n,所以浪费了一点时间) ,题目也是很水,循环一遍直接过了。

2024-06-12 02:22:38 451 3

原创 同余式,乘法逆元,费马小定理

在数学领域,对于群G中的任意一个元素a,总存在G中的一个唯一元素a',使得a×a'=a'×a=e,其中e是群G的单位元。这个元素a'被称为a的乘法逆元。在模运算中,如果ab≡1(mod m),那么b就被称为a关于模m的乘法逆元。

2024-06-11 19:39:53 341

原创 动态规划(多重背包+完全背包)

题解:从题目上看到那个有n种不同的货币,对于买家来说每个货币有C[ i ]个,是有限个数的,但是对于卖家来说 每个货币都是无限的,题目中要我们求的是买到这个物品的最小交易的货币数,交易的货币数=买家付钱货币数+卖家找钱货币数,我们的dp数组的含义肯定是金额为 j 的最小交易货币数,但是有可能掏的钱多了,还能有更小的货币数,所以到时候在最后判断的时候范围要在m~m+mx^2(mx是货币的最大金额)然后我们对卖家进行完全背包,对买家进行多重背包。

2024-06-10 01:01:06 226

原创 动态规划学习(分组背包)

模版。

2024-06-09 11:21:00 362

原创 动态规划学习(混合背包,有依赖的背包,以及背包思想)

混合背包问题就是混合01背包、完全背包和多重背包,可供选择的物体i可能有一个、或者无数个、或者有限个。所以,就不要考虑这么多了,直接分这三种情况考虑就行!!题意:就是说给我一个时间(背包容量),然后有n种樱花树,每个樱花树有自己的时间(花费)以及美学值(价值),但是每个种类的樱花树,数量是不同的这样就对了吗?当然不是,不用二进制优化就80分,所以我们需要对这种情况进行二进制优化,将多重背包分开为01背包,然后只区分是不是0即可。

2024-06-07 20:47:09 336

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

这次比赛也是打的稀碎了,第二个少个break检查了15分钟才检查出来,第三个符号搞错了,错了两次,道心直接破碎了题意:我们对于n个元素的数组,我们会在里面选择两个数,然后去选出里面的最大值和k去做比较,如果k用于比比较的最大值小,那么爱丽丝获胜思路:去找次小值,因为比较的最大值最小的情况,就是次小值和最小值去比较,找到了次小值,k的值就是次小值-1。

2024-06-07 02:44:45 682

原创 动态规划(多重背包问题+二进制优化)

多重背包,相对于01背包来说,,最多可以选那么多个,因而朴素多重背包例题题意,就是说有六种砝码每种砝码有自己的个数,问你能达到的重量搭配是多少题解:标准的多重背包,我们可以用dp[ j ]去表示 j 重量能否达到,如果能达到就是1,如果不能打达到就是0,最后遍历一遍dp数组去判断有多少个1即可。

2024-06-07 02:14:25 1024

原创 背包问题(第k优解问题)

这篇博客先说一道洛谷蓝题(实际难度其实可能也就是在橙题左右,难度不大,请放心食用)

2024-06-06 16:20:29 823

原创 动态规划(01背包+并查集)

题意:就是说有n朵云,每朵云有自己的价钱(重量)和价值(价值),还有我自己现在有钱的数目(背包),然后还告诉你,哪几朵云是属于捆绑销售的,我们在面对捆绑销售要一次性买了,因而我们可以看出来,这题其实就是并查集+01背包,并查集体现在捆绑销售,连通性问题思路:先用并查集将所有云进行连通,将连通的物品的价钱和价值累加到一个元素里面,然后进行01背包就可以秒了。

2024-06-06 12:28:04 345

原创 今日份动态规划学习

这题是说,给我们一个游戏界面,界面的长度为n(水平距离),高度为m(竖直距离),然后有k个管子,告诉你他下沿部分长度和下沿部分长度,然后对于每单位的水平距离,都有相应的x[i]上升距离和y[i]下降距离,然后问你达到游戏地图的最右端的最小步数是多少,要是无法达到最右端,问你最多能通过几个管子。(1)上升:dp[i][j]=min(dp[i-1][j-x[i]]+1,dp[i][j-x[i]]+1);(3)下降:dp[i][j]=min(dp[i-1][j+y[i]],dp[i][j]);

2024-06-06 00:13:26 292

原创 今日份动态规划学习(二维01背包+01背包变形)

然后就可以想办法找出状态转移方程:有关是否要吃这个垃圾//不吃的生命//吃的生命然后就可以AC了。

2024-06-05 01:28:44 953

原创 Codeforces Round 950 (Div. 3)(A~E题解)

思路就是既然就是单纯的行变换和列变化,那我,只要a矩阵的每一行的和在b矩阵能全部出现就行 ,列同理,然后。

2024-06-04 18:55:10 1286 1

原创 Codeforces Round 916 (Div. 3)(A~E题解)

今天也是小小的vp了一下这场比赛,我对这场比赛的感觉就是比我之前做的都要简单,最简单的一次div3(个人感觉)话不多说来看这次比赛题解:这题就是说,对于每个问题,其解决时间是按照26个英文字母顺序来规定的解题时间,A题1分钟做完,Z题26分钟做完,然后给你一个字符串说明每分钟都在做哪道题,只要做这道题的时间大于等于解题时间,就说明把这道题做出来了然后我们就可以遍历一遍字符串统计每道题的做题时间,然后去和题目中解题时间比较,只要大于等于就说明解出来一道题。

2024-06-03 12:58:49 699

原创 回退背包专题

题目意思,就是说有n个物品,然后每个物品都有自己的体积w[i],然后问你,如果第i个物品丢了之后,还能够装满这个背包的方法,然后遍历一遍i同时也要遍历一遍背包,因为背包的值是在1到m之间的任意值,对于同一个物品丢失,中间结果不需要用加空格隔开,就是连在一起。因为每次只考虑一个物品所以不搭边,因为这里的关系是关联关系,j-a[i]的方法总数是影响a[i]的方法总数,所以这边就算收到影响也是因为j-a[i]受到了影响,那么j-a[i]受到影响这个方法总数肯定是会受到影响的。解决这两个问题就是会了回退。

2024-06-03 01:29:21 631

原创 Codeforces Round 949 (Div. 2)(A,B题解)

这场真是给我打的汗流浃背了,这场真的巨难(可能是因为我二进制根本就没学好的原因吧)反正总共就搞了两道题,第一道题注重于思维,第二道题纯二进制,第三道题看着也是二进制废话不多说直接看这次比赛的题题解:这题就是说给我一个区间,让我找到这个区间里面因子最多的,当时考试的时候我想的是,既然因子最少的,那我就直接去考虑这个区间里面谁是最大的2的次方,因为2*2*2肯定·被包括在2*2*n(N>2),因此我们就可以用stl里面自带的lower_bound去找这个区间里面最大的2的次方。

2024-06-02 20:02:52 534

原创 01背包变式例题

【代码】洛谷P2370yyy2015c01 的 U 盘。

2024-06-02 16:31:20 365

原创 Codeforces Round 895 (Div. 3)(A,B,C)题解(自己VP的,没有参加这场比赛)

题解: 这题直接计算两个杯子之间的差值,然后直接除以2倍杯子的容量直接过,没有任何难度题解:这题咋说嘞,用一个数,去统计每个有陷阱的房间最多允许我去的最右边的房间是多少,然后取其中最小的一个就是我们要求的结果,也是没啥难度。

2024-05-31 02:04:54 270

空空如也

空空如也

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

TA关注的人

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