洛谷深入浅出进阶篇
文章平均质量分 76
本专栏为洛谷深入浅出进阶篇的题解
louisdlee.
大一
展开
-
结构体的一些小技巧
然后又因为,如果出列了一对,那么这一对的左右两边的人要自动补齐,所以这样就又多了一对的数据,把这一对数据插入最小堆即可。这一对的数据很好得到,就是出列的那一对的左边和右边,所以我当时想到了链表。再加上本地ide背锅(明明最后的答案是对的,但是编辑器不给过,就浪费了好久时间,后面无奈交了,发现对了。因为,题目要求,如果差值相等,输出最左边的一对,所以我们需要记录每个人站的编号。有一天在写洛谷的一道题的时候,我想出来大概思路,但是有几步我想破头也无法实现。切记,一定要按照顺序结构体里的顺序赋值。原创 2024-01-02 17:34:46 · 834 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》 进阶数论
啥玩意是模?原创 2023-12-13 20:26:13 · 937 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》 组合数学与计数
不相等。原创 2023-12-13 02:15:07 · 777 阅读 · 0 评论 -
洛谷P1722 矩阵Ⅱ——卡特兰数
用不需要除任何数的公式来求。原创 2023-12-13 01:11:46 · 162 阅读 · 0 评论 -
P1044 [NOIP2003 普及组] 栈——卡特兰数
P1044 [NOIP2003 普及组] 栈 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)公式一:递推式(注意开 long long ,然后 先乘完再除,防止下取整)原创 2023-12-12 23:23:50 · 111 阅读 · 0 评论 -
洛谷P1313 计算系数
P1313 [NOIP2011 提高组] 计算系数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)1,求组合数取模的公式(预处理阶乘+阶乘逆元快速幂)原创 2023-12-11 16:32:02 · 99 阅读 · 0 评论 -
洛谷P3807 Lucas定理
传送门:P3807 【模板】卢卡斯定理/Lucas 定理 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)题干:给定整数n,m,p 的值,求出C(n+m,n)mod p 的值。输入数据保证 p 为质数。注: C 表示组合数。原创 2023-12-11 15:05:47 · 166 阅读 · 0 评论 -
洛谷P4071 排列计数
P4071 [SDOI2016] 排列计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)第一步:假设有m个位置满足ai=i,先从n个数字里面选出m个位置,然后把它们放到它们应该在的地方。第一步:假设有m个位置满足ai=i,先从n个数字里面选出m个位置,然后把它们放到它们应该在的地方。原创 2023-12-10 23:41:22 · 67 阅读 · 0 评论 -
洛谷P1450 硬币购物
某人去商店买东西,去了 n 次,对于每次购买,他带了 di 枚 种硬币,想购买 s 的价值的东西。请问每次有多少种付款方法。P1450 [HAOI2008] 硬币购物 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)接下来 n 行,每行有五个整数,描述一次购买,分别代表 d1,d2,d3,d4,s。输入的第一行是五个整数,分别代表c1,c2,c3,c4,n。面值分别为 c1,c2,c3,c4。对于每次购买,输出一行一个整数代表答案。原创 2023-12-10 14:47:36 · 260 阅读 · 0 评论 -
洛谷P1287 盒子与球
【代码】洛谷P1287 盒子与球。原创 2023-12-10 00:43:20 · 175 阅读 · 0 评论 -
《深入浅出进阶篇》p2303Longge ——欧拉函数的运用
P2303 [SDOI2012] Longge 的问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)《洛谷深入浅出进阶篇》p2568 GCD-CSDN博客。原创 2023-12-09 19:13:58 · 79 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》P5091 —— 扩展欧拉定理,快读取模。
P5091 【模板】扩展欧拉定理 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)首先我们需要读入b,由于b太大了,不可能一次性读完,这样longlong都会爆,所以我们要一个字。符一个字符读入,然后边读边取模即可,最后返回的一定是一个小于。这种数量级的数取模,这应该不用我多讲吧,快速幂即可。大概题意:给出三个正整数,a,m,b 你需要求出。,由欧拉定理可知, 当b>这样我们就可以把b缩小到2。第一步:求出m的欧拉函数。第二步:边读边模求指数;首先求出m的欧拉函数。原创 2023-12-09 11:13:57 · 294 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》p2568 GCD
P2568 GCD - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)原创 2023-12-08 22:41:24 · 225 阅读 · 0 评论 -
选自《洛谷深入浅出进阶篇》——欧拉函数+欧拉定理+扩展欧拉定理
的取值怎么求?也就是求1~中与互质的数的个数我们可以求与不互质的数的个数,由于p是质数,所以与不互质的数一定是p的倍数那么1~中,p的倍数就是, 那么我们就知道与不互质的数的个数 就是。也就是由于之间互质,且欧拉函数是一个积性函数,那么有所以我们只需要求出n的所有质因子p,然后求出的乘积即可以上就是欧拉函数的板子,请牢牢记住,后面回经常用到。原创 2023-12-08 20:02:49 · 523 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》同余方程+中国剩余定理——洛谷P1495
中国剩余定理,顾名思义是出自中国,它最早在《孙子算经》中出现,就是为了解决一类一元一次线性同余方程。第四步:x= a1*b1*t1 + a2*b2*t2+……也就是 x = [从i=0到i=n累加]:( ai*inv(bi)*bi )+ kM,第三步:求bi模以mi的逆元 inv(bi) (用费马小定理,或exgcd)第四步:求和 (余数*逆元*(模数之积/模数)) + k模数之积。第一步:设M=m1*m2*m3*.......mn =第一步:累乘模数 M=m1*m2*;什么是中国剩余定理?原创 2023-12-04 17:04:37 · 348 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》模意义下的乘法逆元+洛谷P3811
给出定义: a*x = 1(mod)p,也就是a*x对p取模为1的时候,x就是a 的逆元,所以,当除以a的时候就相当于是乘上a的逆元x。(注意,模只对整数时有意义的,所以我们的变量都应该是整数)《洛谷深入浅出进阶篇》 欧几里得算法,裴蜀定理,拓展欧几里得算法————洛谷P1516 青蛙的约会-CSDN博客。除以a就等于乘上a的乘法逆元,乘以a等于除以a的乘法逆元。算数意义上的乘法逆元指的是倒数,即:a*(1/a)=1。原创 2023-12-03 16:59:18 · 347 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》 欧几里得算法,裴蜀定理,拓展欧几里得算法————洛谷P1516 青蛙的约会
所以ax+by=c的所有解就是:(此处的k是任意整数,lcm是a,b的最大公倍数,由最大公倍数= 两数成绩/gcd,我们也可以将这个式子化简,自己动手即可)对于任意一对整数a,b , 存在整数对(x,y) 使不定方程 ax+by= gcd(a,b)有解。原创 2023-12-02 13:52:50 · 586 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》P1995 程序自动分析——并查集,离散化
第二,这道题的数据范围太大了,i能达到ie9,所以我们直接用并查集的话,毫无疑问,数组装不下。所以我们可以用离散化来大大缩小数据范围,除此之外呢,我们还可以用hash表来处理这样的大数据,使得每一个大数据都有一个特别的标记与之对应。(前面两个数代表下标,第三个整数k代表条件,如果它是1 ,则代表 x1 = x2,如果它是0,代表x1!第一个条件到第四个条件分别是 x1=x2,x2=x3,x1=x4 ,x3!7,如果第三个数字k=0,我们就查询两个数是否为同一集合,如果是同一集合,那么我们有。原创 2023-11-16 18:17:50 · 251 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》 P2367语文成绩——差分
上链接:P2367 语文成绩 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)原创 2023-11-14 16:41:48 · 584 阅读 · 0 评论 -
《洛谷深入浅出进阶篇》P3397 地毯————二维差分
上链接:P3397 地毯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)原创 2023-11-14 15:50:58 · 441 阅读 · 0 评论 -
《深入浅出进阶篇》——洛谷P1719 最大加权矩形 ——二维数组前缀和
为了更好的备战 NOIP2013,电脑组的几个女孩子 LYQ,ZSC,ZHQ 认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没有马上答应他们,而是先给她们出了一道数学题,并且告诉她们:你们能获得的运动场地的面积就是你们能找到的这个最大的数字。以(x1,y1)为左上角,(x2,y2)为右下角的矩阵和 =S【x2,y2】+S【x1-1,y1-1】-S【x2,y1-1】-S【x1-1,y2】设S【x,y】为以【x,y】为右下角的矩阵和。原创 2023-11-11 17:43:07 · 95 阅读 · 0 评论 -
《深入浅出进阶篇》洛谷P4147 玉蟾宫——悬线法dp
循环每一列,从任意一遍开始都行,我们以从左边开始为例子,当a[i][j]为空地,并且a[i-1][j]为空地的时候,该格子的上悬线能延伸到的位置就是上边一格能延伸到的位置。然后循环每一列,从最左边开始,当a[i][j]为空地,并且a[i][j-1]为空地的时候,该格子的左悬线能延伸到的位置就是左边一格能延伸到的位置。循环每一列,从最右边开始,当a[i][j]为空地,并且a[i][j+1]为空地的时候,该格子的右悬线能延伸到的位置就是右边一格能延伸到的位置。同理,我们要让r[i][j]尽可能的小。原创 2023-11-13 19:57:01 · 1104 阅读 · 0 评论 -
《深入浅出进阶篇》——空间换时间优化——P2671 求和
因为以我们现在推出来的条件,我们需要每次枚举x,z的位置(复杂度为O(n^2)),并且判断x,z的奇偶性,颜色是否相同。每一个合法的三元组对答案的贡献可以展开成:x*a【x】+x*a【z】+z*a【x】+z*a【y】第二个条件是:在(x,y,z)中,编号x的格子颜色要等于,编号为z的格子的颜色。然后,这道题给了我们一个三元组(x,y,z),三个编号为x,y,z的格子。然后枚举z,当x=1的时候,z可以是5,7,9,11,13......每一组合法的三元组对答案的贡献是(x+z)*(a【x】+a【z】)原创 2023-11-13 16:14:53 · 194 阅读 · 0 评论 -
《深入浅出进阶篇》——洛谷P1314——二分+前缀和
所以他想通过调整参数 W 的值,让检验结果尽可能的靠近标准值 s,即使得 ∣s−y∣ 最小(二分出场动画)然后我们再用一个变量不断更新二分过程中 | y-s |的 最小值。二分结束之后输出这个最小值就行了。现在来找二分的条件,前缀和的标准出场动画。原创 2023-11-12 17:51:04 · 192 阅读 · 0 评论 -
《深入浅出进阶篇》洛谷p3612 求区间和——一维数组前缀和
【代码】《深入浅出进阶篇》洛谷p3612 求区间和——一位数组前缀和。原创 2023-11-11 16:06:14 · 125 阅读 · 0 评论 -
是你流的泪晕开——欧拉筛,线性筛
任意一个合数,如果按照质数表从小到大依次除以质数,当第一次除到一个质数,余数是0,那么这个质数就是它的最小质因数。让每一个合数只被它的最小质因数筛掉,这样就不会出现重复筛的情况。任何一个合数,乘上任意的倍数,它的最小质因数都不变.所有的合数 都是质数*质数,或质数*合数构成的。(这是外层循环i的第一个作用,存质数)原创 2023-11-05 11:56:09 · 246 阅读 · 2 评论 -
我一路向北,离开有你的季节————双指针+贪心——洛谷P1638 逛画展
当我们的区间内含有所有的画家的画的时候,我们将右指针停下,开始移动左指针,去除区间最左边的画,也就是sum[a[l]]--,如果sum[a[l]]--之后为0,说明这个区间内没有了这名画家的画,num--。游客在购买门票时必须说明两个数字,a 和 b,代表他要看展览中的第 a 幅至第 b 幅画(包含 a,b)之间的所有图画,而门票的价钱就是一张图画一元。所以我们考虑使用贪心策略:先将左指针固定,不断向右移动右指针,不断将画家们的画纳入区间,直到所有的画家的画都齐全,此时右指针停止。一行两个整数 a,b。原创 2023-11-10 15:54:28 · 65 阅读 · 0 评论 -
童年就是,你长大了以后,会怀念的小时候。————通过洛谷1115 最大子段和 来讲述应该什么时候使用dp
比如搞两个指针,左指针最开始是指向a[0],然后右指针不断向右移动,来枚举以a[0]为原点的所有子区间。这道题的思路很简单,它既然要求我们在这一段长区间里找出一段子区间,使得子区间的和最大。给出一个长度为 n 的序列 a,选出其中连续且非空的一段使得这段和最大。那么我们就把所有的子区间的长度求出来。在里面找到最大的子区间不就好了吗。第二行有 n 个整数,第 i 个整数表示序列的第 i 个数字 ai。所以我们直接能想到的做法应该是暴力枚举区间的两个端点。第一行是一个整数,表示序列的长度n。原创 2023-11-10 22:43:28 · 45 阅读 · 0 评论 -
你的眸子里有泉水的声音————空间换时间——桶排序——洛谷P7072
更具体地,若当前已评出了 p 个选手的成绩,则当前计划获奖人数为max(1,⌊p×w%⌋),其中 w 是获奖百分比,⌊x⌋ 表示对 x 向下取整,max(x,y) 表示 x 和 y 中较大的数。2,每次把当前拥有的人的成绩排序,更新获奖人数,根据获奖人数,从最大成绩开始往下扫描获奖人数个单位,这个扫描到的成绩就是即时获奖分数线,我们此时将它输出即可。当输入第四个人成绩:500 ,排一下序:500,400,300 ,200 更新一下当前获奖人数:max(1,4*0.6)=2。我们按照它给的样例来,原创 2023-11-10 23:54:45 · 46 阅读 · 0 评论