自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Codeforces Round 1013(div.3) ABCDE

有一个很明显的单调性:如果每一行都取最大摆放方式,随着长度的增加,每一行所能覆盖的格子数也会增加,因为空格的少了。,那么我们转化为(a*a*b)/(a*a)为质数,即m为质数,两个数分别为a与a*b,均小于n。手推发现偶数是不行的,通过样例得知可以先输出奇数后输出偶数。于是从大到小排序,维护长度和最右端的值,超过x就加入答案。根据质因数分解定理,将题意简化为:如果两个数所。贪心,肯定是越大用的长度越少。为1的话,这两个数是有趣的比。小于n使用对素数筛二分。考虑二分答案(模板)当然也可以打表找规律。

2025-03-28 08:44:14 309

原创 CF2009 div.3 ABCDE

先判-1.根据异或的性质,如果一个数a的二进制除了最高位其他都是0,那么它异或任意一个数b的结果肯定是a+b;相反,如果一个数a的二进制每一位都是1,那么a异或任意一个数b的结果肯定是a-b。如果a是奇数,显然我们仅仅改变最小位开始连续的一是不行的,这与每一位都是1一样-----所以我们得把第一个0也要变,即a^b = a-(较小的数)+(较大的数);对于任意两个边,第三个变的最大值肯定是这两个边的长度之和再减一,于是答案就是(所有边的和)减去(边的个数-1),赛时光想着贪心了((石子合并吗() )

2025-03-13 15:19:50 325

原创 PTA L2-016 & 030 愿天下有情人都是失散多年的亲兄妹 冰岛人

同时,比两人都要高出五代,即a的所有祖先不能是b的五代以内祖先,b的所有祖先不能是a的五代内祖先,所以需要跑四次dfs(2+2)树模拟,记录完一边再找另一边,不需要考虑是每个人的五代之内,即a的五代之内也在b的五代之内就不行。需要注意只需记录父辈,即。

2025-03-12 21:31:45 139

原创 AtCoder ABC E - Min of Restricted Sum 题解

最小值考虑贪心,针对当前连通图所有点权二进制数的每一位,假如这一位是1,要想保留更多的1就让别的本位为1的数的这一位是0,于是统计每一位1的个数,若1比0多则起点这一位为1,这样保证了0多。这样我们可以得到一些连通块。根据异或和的性质,对于每一个连通块,我们只要知道其中一个点的点权就能推出所有的点权。判定可行性:深搜跑一边,如果遍历过了但是点权不符合多个边的要求,那麽就是无解。根据输入考虑建图,x、y两个下标的边权为z,建无向图。

2025-03-09 18:41:32 311

原创 PTA L2一些题目

那么,我们如果让每条轨道尽可能长就能保证轨道数最少------也就是说,我们要尽可能的找最长降序序列。给出两个点后,我们先把其中一个的所有祖先全部找到,然后再找另一个的祖先,如果这个后者的其中一个祖先在前者的祖先中被访问到了,且不超过5步的话,那麽就是有血缘关系的。注意到,找最长降序序列的时候,我们是8-4-2-1、5-3、9-6、7,现在这个数能放那个就放哪个,尽可能往前面找,如果都放不了就新开一个。写懵了,这里代码看个乐子就行,纯翻译题面。水题,排个序,然后前缀和,左右两部分做差就行。

2025-03-05 23:12:49 1003

原创 PTA L1-101~L2-013 个人题解

用两个数组分别记录结点的前缀和后缀,然后用链表的方法模拟即可,但是输入未必是一个完整的链表,或者会有多个结点的后缀是同一个结点,所以需要处理完后缀再重新处理前缀。当该店距离要更新时,由于在该点原先的方案要全部废掉,所以我们只能用当前的队伍数加上该点的队伍数,来作为在该点的当前方案队伍数,并沿用此方案;建堆的时候选择向上调整,每次插入树中时先插入到完全二叉树下标最大的点,再与其父节点比较,若小于父节点则交换,再与上一层父节点比较,直到到达根节点。掉,然后接上当前最短的路径方案,即到达该点的路的数量为。

2025-02-27 23:53:18 871

原创 P1338 末日的传说

只要是参加 jsoi 活动的同学一定都听说过 Hanoi 塔的传说:三根柱子上的金片每天被移动一次,当所有的金片都被移完之后,世界末日也就随之降临了。在古老东方的幻想乡,人们都采用一种奇特的方式记录日期:他们用一些特殊的符号来表示从1开始的连续整数,1表示最小而n表示最大。创世纪的第一天,日历就被赋予了生命,它自动地开始计数,就像排列不断地增加。我们用1−n12n−2n−1n第二天,日历自动变为12n−2nn−1。

2025-02-26 19:00:48 850

原创 AtCoder 379 ABCDE

所以对于一个n长度的字符串,我们要求出10^0....10^n的每一位的数字,且这个数字为Sigma(a[i]*i)(1->n-i),模10得到每一位,除10得到向更高位的进位。在上述的条件均不满足下,如果当前格子的棋子可以平铺到下一个拥有棋子的格子,两个格子中间的空格子先一一填补,次数为(dis*(dis+1)/2),若还有剩余则全部移动到下一个格子内,次数(res*(dis+1))。2. 由于棋子只能向右平铺,若当前格子的棋子无法平铺到下一个拥有棋子的格子,则无法实现。直接看样例 :379。

2024-11-10 00:26:42 496

原创 YTU ACM实验室专项训练-24/10/28数论+并查集-前九题

小的数字先以两个数字乘积开始,之后越大的数字拆开后发现两个小的因子若也符合(拆成更小的因子的乘积),则这个大数字也符合。如果存在另一对,那么必须要有一个(x-ai%x)%x,所以ans要加上 hs[{(x-ai%x)%x,ai%y}]如果我们把所有数字转化为二进制,显然,从低到高第一个0和1都出现的那一位的下一位就是我们要找的答案。由于每个x都很小,所以只需要a1无限地大,之后的数字依次加上去即可,这样也满足题意。于是乎,我们就要哈希记录一下此时的前缀和的下标,同时要维护左端点来保证贪心。

2024-10-29 23:00:00 702

原创 AtCoder ABC372 E:K-th Largest Connected Components(集合,并查集)

考虑STL中的set,当使用并查集合并时,我们将其中一个连通块的所有点全部转移到另一个连通块中,但最坏情况是O(n)的复杂度。就行,如果存在多个,insert()的话,首先count()会记录点的数量,之后的clear()操作依然会导致超时。如果要插入的数已经存在,那么就不再插入,这是O(1)的复杂度,比insert()要快不少。既然求一个节点的连通块,那么就使用并查集。但是这还不够,只能过2/3的数据,还能怎么优化呢?的连通块中,这样可以将操作一的复杂度优化一倍。现在我们要解决的就是应怎么储存。

2024-09-22 23:13:08 302

原创 烟台市高校联赛第1场(鲁东出题) E-数列变换

人字型:从2到n-1枚举每一个最大点,并取差分数组中(该点及该点左边的负数总和的绝对值)与(该点右面的所有正数的总和)的最大值,原因为大者可以抵消小者。这个情况要特判差分数组在该点的值为零的情况,因为此时该数可自行加一或减一,可为两边分别提供贡献。使用差分将区间修改转变为单点修改,每个不为零的点最终要将绝对值加一,因为两边是严格单调的。一字型:记录差分数组种所有正数和负数放入总和的绝对值,取大者,不证明;

2024-09-21 19:56:32 225

原创 ABC369-D Bonus EXP

如果这次攻击是第偶数次:若选择放走,则为dp[ i-1 ][ j ];击败掉则为dp[ i-1 ][ (1-j)%2 ] + 2*(a[ i ]);如果这次攻击是第奇数次:若选择放走,则为dp[ i-1 ][ j ];击败掉则为dp[ i-1 ][ (1-j)%2 ] + a[ i ];dp[ i ][ j ]指的是到第i个怪物时已经击败 j 个击败后获得的最大exp,其中j被替换成0(偶)1(奇)明显可以压成dp,st直接用1与0平替即可。

2024-09-01 13:40:07 303

原创 【AT ABC337】D-Cheating Gomoku Narabe

既然要求k长度段内“ . ”的最小个数,我们不妨用前缀和预处理每行每列出现的" . "以及“ x ”的个数。如果这一段有x那么就跳到下一段。暴力求解显然会TLE。

2024-08-29 20:46:00 279

原创 24点求可行

【代码】24点求可行。

2024-08-22 23:14:54 142

原创 HDU4578-Transformation-多种区间修改、查询的线段树

二百行动漫码量,站内有很多大佬讲过了。

2024-08-19 01:03:13 231

原创 河南萌新联赛2024第(五)场:C-小美想收集

如果已经被放入同一个集合,则输出此时的冲突值,因为前面更大的冲突值已经失效了,如果我们还将他们分到不同的集合中的话,就会与前面的点的分配出现冲突。如果并入不同类中,当前这两点的冲突值不计入,但不能保证后面出现的冲突值会比当前两点的的冲突值小,这样就不能使得最大的冲突值最小。如果并入同一类回忆中,那么最终就要取所有在同一类且冲突的两点的最大冲突值;如果a与b不冲突,不必考虑,因为操作这个情况要考虑的多。我们首先明白的是两个点之间存在冲突与不冲突的关系。将所有出现冲突的组合按照冲突值由大到小排序,遍历。

2024-08-15 15:33:34 226

原创 河南萌新联赛2024第(五)场 : F-小美想跑步

然后由其他节点返回1结点的最短路径,我们可以反向建图,将原来的有向图方向反转,再依然按照结点1的单源最短路径问题,就得到了有其他节点返回1节点的最短路径。给一个有向图,初始节点为1,每次访问完一个节点后必须找到一条返回1节点的路径,求访问完所有结点所需要的最小总边权。先求1结点到其他节点的最短路径,即单源最短路径。

2024-08-15 07:40:45 190

原创 河南萌新联赛2024第(五)场 : K题

即使最大边权最小也并不意味着这条路径总边权最小,只需要对最高边权进行二分即可。二分依据以在mid为最高边权的情况下所能得出的。求出无向图内a,b之间。最大值最小化,考虑二分。,若不存在则mid过小。

2024-08-14 23:29:06 165

原创 (蒟蒻补题)Codeforces Round 966 (Div. 3) A-E

使用二位前缀差分记录,再将二维前缀结果放入哈希表中,比如样例一中 4 出现了 2 次,2 出现了 6 次......因为m*n最多才2e5,空间和时间都是很充裕的。贪心可得让外区间包的越大越好,因此用一个小顶堆维护左区间,一个大顶堆维护右区间,然后用一次推出一次,直到 下一状态的。所以让身高更高的猩猩占据中间选中次数为4的格子,我们就得到了4+4+2+2+2+2+2+2+1=21这个答案。开两个map,一个记录字符对应的数字,一个记录数字对应的字符,前后有矛盾即可判断为否。时跳出循环,我们就得到了答案。

2024-08-14 01:40:23 628

原创 蒟蒻补题 Look Back

如果 a_i < a_i-1 ,那么我们求出log2(a_i / a_i-1),再向上取整,加上(指数运算)前一个数的操作次数,我们就获得了这个情况最小的倍增次数(比较明显)由于不能改变原值,接下来只能以 a_i >= a_i-1 的情况讨论,我们求出log2(a_i-1 / a_i),再向下取整(保证不递减),用上一个数的操作次数减去即可。我们可以考虑将每个数需要倍增的次数记录下来,再用类似于dp的方式来求解,也不需要改变原值。2需要3次倍增才能超过11(16>11);11的操作次数为0;

2024-08-12 10:52:46 211

原创 ABC366 D-Cuboid Sum Query

看一眼数据:100*100*100,那就直接三维前缀和,然后就过了。

2024-08-10 23:32:49 342

原创 蒟蒻补题(Alex‘s whims

我们发现构成一条链后节点1可以与剩下所有的点相连从而形成1~n-1的所有长度,本题结束。

2024-08-10 11:01:11 293

原创 蒟蒻补题:I-马拉松

为根,遇到y则不进行bfs,访问到的点打上+1的标记(这里要与已访问到的点区分开,这只是判重),这个标记在c数组里,另外已访问到的点放在vis数组里;比赛的时候光想着怎么判重删点了,况且图的知识也不是很懂,勉强写一下最短路之类的,正好现在补题可以弥补这方面的一点知识。剩下的 +1 与 -1 所标记的点就是被两个子树所独有的点了。上一篇是我勉强还能看懂的题目,这里就到我的知识盲区了()的所有点,然后将这两个子树上且符合上述条件的两组点的。为根,遇到x则停止bfs,访问到的点打上。很明显这个做法确实是对的。

2024-08-07 21:35:42 358

原创 蒟蒻补题ing

当无业游民的数量为0、1、2、3、4时,我们可得再分配到企业的方式有15+10+6+3+1=35种(可以用隔板法)第二问有意思,我们发现素数中除了2以外其他数均为奇数,所以没有2存在的子数组不可能相与为0,因为最后一位数永远都是1。另外,空闲的志愿者的意思是可以让部分志愿者成为“无业游民”。题干的最后一句话表示的是志愿者可看作是没有编号的、一模一样的小球-----这说明我们只需要先让所有志愿者满足企业最低需求。的问题,即(m+n+1)个球进行隔板法,在本样例中就变成了C(4+3,3),这样这道题就解决了。

2024-08-07 19:43:35 1583

原创 组合数(乘法逆元+费马小定理)(模板)

确实是模板,打cf 964 div4的F学的。原理不阐述了,站内大佬发过很多文章。

2024-08-07 10:51:09 549

原创 实验室训练记录 Make a Power of To

然后就是暴力枚举,枚举中计操作的方法为:以2次幂的数字为目标,如果该原有数字存在目标数字的数字,则继续往后找,找完后加上剩余的,类似于双指针?看一眼数据范围:1e9大概,大概2的三十几次方,不如直接弄成60次方保险(实际上到40次方依然过不了),不过几十倍的也不会超时。乍一看确实没啥思路,不如我们反过来看,既然正着是让现有字符串变为目标字符串,反着就是枚举所有可能的目标字符串去验证最小值。既然思路是反过来的,我们就先打表枚举所有2的0~60次幂的字符串,注意格式。

2024-08-04 20:47:10 144

原创 实验室刷题训练 Co-growing seguence

要使Y_i尽可能小,我们应让Z_i尽可能多的存在X_i同位置的零。我们显然要求Y_i , 已知Y_i ^ X_i = Z_i,我们注意到。为什么第二个数不能为1011呢?比如十进制 1 4 我们的 Z 最好取 1 5。我们发现,要想使Z_i=X_i ^ Y_i。好久没发了,随便水一个。于是Y_i便求了出来。

2024-08-04 19:54:08 256

原创 YTUOJ 4008整除

若整数b除以非零整数a,商为整数(

2023-11-17 16:42:02 202 1

原创 YTUOJ约瑟夫环问题【数组】

约瑟夫环问题:设有 n 个人围坐一圈,并按顺时针方向 1−n 编号。从第 s个人开始进行报数,报数到第 m 个人,此人出圈,再从他的下一个人重新开始从 1 到 m的报数进行下去 ,直到只剩一个人为止。从第 s 个人开始报数;剩下的最后一个人的编号。三个变量一个占一行。

2023-11-05 17:03:30 211 2

空空如也

空空如也

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

TA关注的人

提示
确定要删除当前文章?
取消 删除
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部