自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 每日一题8.24树状数组

西部 314 认为这幅壁画所包含的信息与这 n 个点的相对位置有关,因此不妨设坐标分别为 (1,y1​),(2,y2​),⋯,(n,yn​),其中 y1​∼yn​ 是 1 到 n 的一个排列。先从左到右遍历一遍,这个t数组是用来记录数量的,插入a[i]的时候,t[0]~t[a[i]-1]的数就是i左边的数中小于a[i]的数量,所以使用树状数组进行单点修改和区间查询就好。如图,图中的 y1​=1,y2​=5,y3​=3,y4​=2,y5​=4。第二行是 n 个正整数,分别代表 y1​,y2​,⋯,yn​。

2025-08-24 16:57:23 250

原创 每日一题8.23

种类并查集的两道题目。

2025-08-23 16:52:33 1326

原创 三种筛数法

一个一个数判断是不是合数;

2025-08-18 15:29:13 358

原创 每日一题8.2

但是这样子还不够,因为过期时间早的东西不能影响过期时间晚的,所以要先把过期时间早的放前面,排序一下子就好了。由于我现在不会并查集,所以写出来前两种方法。这个题dp的话就和01背包很相似。有三种方法:dp,堆,并查集。

2025-08-02 16:44:59 236

原创 8.1每日一题

给定 N 个字符串 S1​,S2​⋯SN​,接下来进行 M 次询问,每次询问给定一个字符串 T,求 S1​∼SN​ 中有多少个字符串是 T 的前缀。输入字符串的总长度不超过 106,仅包含小写字母。接下来 M 行每行一个字符串 T 用以询问。接下来 N 行每行输入一个字符串 Si​。对于每个询问,输出一个整数表示答案。数据范围满足 1≤N,M≤105。做一个trie树就好了,看代码。第一行输入两个整数 N,M。经典的trie板子。

2025-08-01 18:30:09 349

原创 每日一题7.31

详细地说,给定一个长度为 n 的字符串 S(下标 0∼n−1),我们可以用整数 k(0≤k<n) 表示字符串 S 的后缀 S(k∼n−1)。额外地,我们考虑排名为 i 的后缀与排名为 i−1 的后缀,把二者的最长公共前缀的长度记为 Height[i]。后缀数组 (SA) 是一种重要的数据结构,通常使用倍增或者 DC3 算法实现,这超出了我们的讨论范围。把字符串 S 的所有后缀按照字典序排列,排名为 i 的后缀记为 SA[i]。第一行为数组 SA,相邻两个整数用 1 个空格隔开。字符串由小写字母构成。

2025-07-31 15:09:32 425

原创 每日一题7.29

给定网格纸中完整边的长度 N(1≤N≤1000000),以及网格中每一列残存部分的高度(1≤ 高度 ≤10000),输出能够剪出的最大矩形纸片面积。第二行输入 N 个正整数(1≤ 正整数 ≤10000),表示每列格子残存部分的高度,两个正整数之间用一个空格隔开。一张半边参差不齐的网格纸(网格边长均为 1),有一边是完整没有破损的。第一行输入一个正整数 N(1≤N≤1000000),表示纸片完整边的长度。出栈了之后的栈顶的右边才算这个大矩形的左边界,而不是小矩形的左边界。但是比如1,7,2,4,3;

2025-07-29 18:23:45 298

原创 每日一题7.26

Advanced CPU Manufacturer (ACM) is one of the best CPU manufacturers in the world. 每天,该公司生产 n 台 CPU 并销售到世界各地。ACM 公司的质检部门会对生产出的 CPU 进行成组测试,对一组(若干个)CPU 进行测试的方法如下:随机从该组 CPU 中选取 m 对(即 2m 台),若总数不足 2m 台,则选取尽量多对。

2025-07-26 15:45:55 1709

原创 7.25每日一题

奇数码游戏是它的一个扩展,在一个 n×n 的网格中进行,其中 n 为奇数,1 个空格和 1∼n2−1 这 n2−1 个数恰好不重不漏地分布在 n×n 的网格中。奇数码:考虑把这两个 n×n 的矩阵按行拆成长度为 n2−1 的序列(忽略空格),则我们会发现,两个状态能够相互转换当且仅当两个序列的逆序对个数奇偶性相同。你一定玩过八数码游戏,它实际上是在一个 3×3 的网格中进行的,1 个空格和 1∼8 这 8 个数字恰好不重不漏地分布在这 3×3 的网格中。第 1 行输入一个整数 n,n 为奇数。

2025-07-25 16:12:38 333

原创 7.25每日一题

质数是正好有两个除数的正整数: 1 和它本身。前几个质数是 2,3,5,7,11,…题目说好整数就是要因数都大于10(不包括1),所以把2,3,5,7的倍数都排除了就好了。如果一个正整数的因式分解中的****素数都至少由两位数组成,我们就称它为。对于每一个正整数,其质因数化都是唯一的(如果不考虑积中素数的顺序)。您必须计算从 l 到 r 的好整数个数(包括端点)。之后朋友让我去看看容斥原理,看完之后感觉其实很简单。正整数的质因数化就是将其表示为质数的乘积。10以内的质数有2,3,5,7这四个。

2025-07-25 15:28:46 303

原创 每日一题7.23

共 ⌊2N+1​⌋ 行,第 i 行为 A1…2i−1​ 的中位数。对于 100% 的数据,1≤N≤100000,0≤Ai​≤109。给定一个长度为 N 的非负整数序列 A,对于前奇数项求中位数。对于 40% 的数据,N≤3000;第二行 N 个正整数 A1…对于 20% 的数据,N≤100;第一行一个正整数 N。

2025-07-23 14:59:17 587

原创 每日一题7.22

然而,这是一道交互式试题,这些关系不能一次性得知,你必须通过不超过 10000 次提问来获取信息,每次提问只能了解某两个元素之间的关系。例如,编号为 a 和 b 的两个元素,如果元素 a 小于元素 b,则 compare(a,b) 返回 true,否则返回 false。,N,每一对元素之间的大小关系是确定的,关系具有反对称性,但不具有传递性。将 N 个元素排好序后,把他们的编号以数组的形式输出,如果答案不唯一,则输出任意一个均可。现在请你把这 N 个元素排成一行,使得每个元素都小于右边与它相邻的元素。

2025-07-22 16:07:39 278

原创 每日一题7.22

给定一个长度为 n 的非负整数序列 A ,求一个平均数最大的,长度不小于 L 的子段。输出一个整数,表示这个平均数的 1000 倍。不用四舍五入,直接输出。很巧妙的使用二分,从0到2000往答案逼近。第二行为 n 个用空格隔开的非负整数,表示 Ai​。第一行用空格分隔的两个整数 n 和 L;

2025-07-22 11:13:24 331

原创 每日一题7.21

观察前面的结论,我们可以把操作分成两部分:先是正负抵消,剩下的最后一个数,再单独把这个数递减(或加)到零,所以操作次数就是max(x,y)当x−y>0时,我们可以选择将区间[1,n]都加x−y,或者将区间[n,n] 减x−y,这两种得到的答案就是最终的答案区间,这个区间覆盖的数字个数就是∣x−y∣+1。给定一个长度为 n 的数列 a1​,a2​,⋯,an​,每次可以选择一个区间[l,r],使这个区间内的数都加 1 或者都减 1。对于区间[l,r],加1减1的操作对c数组的影响为。这样,先自己造一组数。

2025-07-22 11:03:18 689

原创 每日一题7.21

一种新型的激光炸弹,可以摧毁一个边长为 m 的正方形内的所有目标。现在地图上有 n 个目标,用整数 xi​ , yi​ 表示目标在地图上的位置,每个目标都有一个价值 vi​。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为 m 的边必须与 x 轴,y 轴平行。输出仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过 32767 )。接下来的 n 行,每行有 3 个整数 x,y,v,表示一个目标的坐标与价值。来得到右下角为i,j边长为m的正方形的价值总和。

2025-07-21 15:52:08 488

原创 每日一题7.20

除此之外,有大于a的平方根的数必定只有一次方。还要考虑各种特殊情况,代码如下。会发现,求因子和,比如2的3次方的因子就是1,2,2的平方,2的3次方。对于全部的测试点,保证 1≤a≤5×107,0≤b≤5×107。由于结果太大,只要输出它对 9901 取模的结果。输出一行一个整数表示答案对 9901 取模的结果。因此算出每一个质数的等比数列并相乘就能得到答案。输入两个整数 a 和 b,求 ab 的因子和。而a是由一个固定的质数组相乘得到的。仅一行,为两个整数 a 和 b。

2025-07-20 14:11:26 333

原创 每日一题7.19

一共输出 n 行数据,每行有一个小于等于 6 的整数,它表示对于输入数据中对应的游戏状态最少需要几步才能使所有灯变亮。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。给定一些游戏的初始状态,编写程序判断游戏者是否可能在 6 步以内使所有的灯都变亮。然后我还想着写了个双向bfs的将复杂度从25的6次方压缩到25的3次方。我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。

2025-07-19 17:15:05 664

原创 每日一题7.18

为了节省体力,他希望通过选择合适的初始攻击力使得他的攻击能让 drd 受到最大的伤害,请你帮他计算一下,他的一次攻击最多能使 drd 受到多少伤害。类似的,我们可以计算出初始攻击力为 1,3,5,7,9 时最终攻击力为 0,初始攻击力为 0,2,4,6,8,10 时最终攻击力为 1,因此atm的一次攻击最多使drd受到的伤害值为 1。接下来 n 行,依次表示每一扇防御门。输入文件的第 1 行包含 2 个整数,依次为 n,m,表示 drd 有 n 扇防御门,atm 的初始攻击力为 0 到 m 之间的整数。

2025-07-18 14:02:30 552

原创 每日一题7.17状压dp

对于任意的 x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]≥a[x,z]。接下来 n 行每行 n 个整数,其中第 i 行第 j 个整数表示点 i−1 到 j−1 的距离(记为 a[i−1,j−1])。给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。状态压缩:用0和1来代替有没有通过过这个点,如1001代表通过0和3节点。对于所有测试数据满足 1≤n≤20,0≤a[i,j]≤107。

2025-07-17 19:36:57 402

原创 每日一题7.17高精度一题多解

用常规乘法的话a*b大概有10的36次方。众所周知int是9次方( 2147483648)。longlong是18次方。__int128大概就是10的36次方了,所以不会溢出。第一行输入整数 a,第二行输入整数 b,第三行输入整数 p。不过我的vs用不了,好像是因为不支持外部的什么东西。求 a 乘 b 对 p 取模的值。这个解法的时间复杂度是logb的。所以用longlong就会溢出。有人可能会问了(我自己起码疑惑)为什么这个a*b就可以用。

2025-07-17 16:22:16 339

原创 每日一题7.17

来源:牛客网。

2025-07-17 10:20:18 257

原创 求不重叠区间总和最大值

来源:牛客网时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M。

2025-07-16 19:27:49 320

原创 每日一题7.16

来源:牛客网时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M。

2025-07-16 11:01:27 529

原创 每日一题7.15

一个数轴,每一个储物点会有一些东西,同时它们之间存在距离。每次给个区间[l,r],查询把这个区间内所有储物点的东西运到另外一个储物点的代价是多少?比如储物点i有x个东西,要运到储物点j,代价为x * dist( i , j )dist就是储物点间的距离。

2025-07-15 20:38:07 704

原创 sort 使用lambda

要注意的是sort中return的是true的时候a排在b前面,简便记住就是sort的符号是正的,而优先队列排序的符号是反的。

2025-07-15 10:20:41 709

原创 每日一题7.15

合并区间板子时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M。

2025-07-15 09:53:40 643

原创 每日一题7.13

时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M。

2025-07-13 16:11:28 663

原创 每日一题7.10

lz的蛋挞问题时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M。

2025-07-10 21:21:18 404

原创 小tip1

这个方法的复杂度就是nlogn了。这个方法复杂度是n方了。

2025-07-10 09:04:15 103

原创 最长非递减子序列

两个方法不同时间复杂度。

2025-07-09 20:48:27 112

原创 每日一题7.8

来源:牛客网PJSK 的虚拟世界有若干个地点,这些地点通过一些道路形成了树形结构。你的目标,就是找到这个世界的“Miku”点。一共有 nnn 个地点,它们由 n−1n-1n−1 条长度为 111 的双向道路连成了一棵无根树结构。其中,如果一个地点只延伸出了一条道路,那么这个地点将称为 Sekai 点。根据以上信息,请你找出所有的 Miku 点吧!

2025-07-08 16:58:21 2218

原创 每日一题7.7

注意之前判单向的时候用的是low[u]==dfn[v],但是现在双向用low[v]>=dfn[u]来判断点。依旧是tarjan,点双模板题。判割点(引用的代码)

2025-07-07 13:37:50 201

原创 每日一题7.6

双向的tarjan就不用考虑在不在栈内了,但是这个有重边,要确保不能回到父节点的同时走重边,我用flag做标志,如果有重边就在更新一下。依旧是tarjan ,边双模板题。

2025-07-06 21:22:00 591

原创 继今天的每日一题

用ne数组来把不顺序的scc连接都添加进去(就是连接那些已经出栈),然后设置flag,如果这个scc点不是最初的点就设置flag把他连接到进入这个点的点(就是v是scc点并且top!=0,就把u->v);这样的话最后就只有scc的边用整理一下,大概能快四分之一;我发现顺着我的错的写下去,改了一下cur,然后发现了个能优化tarjan缩点的方法,正常缩点主函数都要循环一遍所有的边,如果边很多可能复杂度很大,都是我改成都循环一遍scc的边就能少很多很多。

2025-07-04 21:23:31 174

原创 每日一题7.4

所有奶牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果 A 喜欢 B,B 喜欢 C,那么 A 也喜欢 C。牛栏里共有 N 头奶牛,给定一些奶牛之间的爱慕关系,请你算出有多少头奶牛可以当明星。接下来 M 行:每行两个用空格分开的整数:A 和 B,表示 A 喜欢 B。对于 100% 的数据,1≤N≤104,1≤M≤5×104。对于 70% 的数据,N≤5×103,M≤5×104。对于 30% 的数据,N≤103,M≤2×104。对于 10% 的数据,N≤20,M≤50。

2025-07-04 17:40:32 485

原创 每日一题7.3

另外还有大佬写的并查集简化版(复制粘贴大佬的):不仅简化了,而且有更适配这个题的处理:更新b[i]的方式考虑了步数。后来看题解说因为出度都是1所以可以循环链。结果又因为我写的复杂度又太大了又tle。之后又在豆包帮助下用时间戳代替每次循环都要来一次的vis,如下。本来想当一个tarjan题写,但是感觉别的方法也很简单。先尝试了暴力set失败了,有两个tle。我会再更新这个题的其他解法的。

2025-07-03 14:01:23 414

原创 每日一题7.2

算是一个tarjan的板子题。

2025-07-02 21:16:16 599

原创 每日一题7.1

dfs模板题,先进行一遍dfs找到距离最远的点far,再以far为起始点进行dfs得出答案。

2025-07-01 21:30:04 219

原创 每日一题7.1

我写了这么长时间还是超时了,答案的方法和我差不多,但是他统计每个颜色的数量,然后数量等于1或2就剪枝(因为不能三连消除)昨天没发就是在写这个,有点复杂一直出bug,也是我逻辑有问题。

2025-07-01 14:33:35 143

原创 每日一题6.29

dfs问题,中间一直漏条件修bug,先对顺子进行dfs,然后再贪心f,stl的assign就相当于memset,还有一个dp解法,明天再写。

2025-06-29 21:53:54 265

空空如也

空空如也

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

TA关注的人

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