自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Park Corsa's CSDN Blog

My fizzle is ready to sizzle.

  • 博客(118)
  • 资源 (1)
  • 收藏
  • 关注

原创 矩阵学习笔记(持续更新中)

矩阵知识点小记矩阵的秩定义基础性质矩阵的秩的计算矩阵运算后秩的变化矩阵的秩定义对于A=(A=(A=(aij)))mxn,任取kkk行kkk列,位于交叉处的k2k^2k2个元素按原次序排成的kkk阶行列式称为矩阵AAA的一个kkk阶子式矩阵AAA中运算值不为000的子式的最高阶数称为矩阵的秩,记作r(A)r(A)r(A)基础性质r(A)≤min(m,n)r(A) \leq min(m,n)r(A)≤min(m,n)r(A)=0⇔A=0r(A)=0 \Leftrightarrow A=0r(A)

2021-07-05 20:12:48 606

原创 【考前准备】一些注意事项

CSP-S考试 注意事项技巧:卡常(Hash模数,手动取模取Min/Max,读优,register,位运算,少用STL)打表(DFS、手玩)剪枝(最优性、可行性、搜索顺序、冗余状态)预处理(前缀和、状压)DP优化(单调队列、前缀和、树状数组、斜率优化)结论(小学奥数、面向样例)调试(Cerr、输出中间变量、Linux虚拟机)对拍(批处理)骗分(错误的贪心、乱搞、结论、模拟退火、...

2019-11-13 17:14:19 225

原创 图论(CSP-S难度)知识小结(完善中)

图论知识小结序言——先扯几句闲话--最短路--FLOYDSPFADijkstra次短路差分约束系统K短路分层图--生成树--PrimKruskal次小生成树最小树形图最小乘积生成树最优比率生成树--连通性--割点和桥SCCBCC--网络流--最大流费用流--匹配--2-SAT二分图--拓扑--拓扑排序树上背包--杂题--欧拉路LCA基环树线段树优化剩余系离散化序言——先扯几句闲话第一次写知识总...

2019-10-20 23:41:53 1616

原创 内点、外点、边界点(yee些概念)

内点、外点、边界点固定一个集合SSS考虑一个点 xxx[denote: Uδ(x)=(x−δ,x+δ)U_{\delta}(x)=(x-\delta,x+\delta)Uδ​(x)=(x−δ,x+δ)]xxx是内点:x∈S,∃δ>0,Uδ(x)⊆Sx\in S,\exists \delta>0, U_{\delta}(x) \subseteq Sx∈S,∃δ>0,Uδ​(x)⊆Sxxx是外点:x∉S,∃δ>0,Uδ(x)⊆Sˉx\notin S,\exists \delta

2022-03-10 16:17:46 5136

原创 2021-09-28机考SOL

2021-09-28机考SOLT1T2T1ans=(a∗d−b∗c)mod mans=(a*d-b*c)mod\ m ans=(a∗d−b∗c)mod m注意:负数取模在C++中结果仍为负数,解决方法详见代码#include<bits/stdc++.h>using namespace std;long long a,b,c,d,m,ans;int main(){ ios::sync_with_stdio(0); cin>>a>&

2021-09-28 20:20:08 188

原创 洛谷P2048 [NOI2010] 超级钢琴

题面大意:给定长为nnn的序列,求长度在[L,R][L,R][L,R]区间和前kkk大子区间之和首先区间和我们可以转换成前缀和之差即sum[l,r]=s[r]−s[l−1]sum[l,r]=s[r]-s[l-1]sum[l,r]=s[r]−s[l−1]暴力的做法是先枚举左端点lll,然后暴力枚举长度合法的区间对应的右端点rrr,找出这些区间和,然后取出前kkk大显然过不了是吧……别急,我们再来看一下刚才这个暴力的思路ans=∑(s[r]−s[l−1])(1≤l≤r≤n)ans=\sum(s[r]

2021-08-21 20:44:36 215

原创 洛谷P1347 排序

传送门读完会发现这题很明显是一个缝合怪,给你一张图,让你在线做三个任务:1.判断所有点是否能构成一条链(不考虑其他多余边)2.判断是否有环 3.没有1、2就输出Sorted sequence cannot be determined.任务1: 乱搞(我用的dfs,大佬们有更加优雅的做法请自便)任务2:用拓扑排序判断以下所有点是否都遍历过任务3:会前面2个任务你就会这个任务了以下为可忽略内容:用short卡了空间请大佬轻喷(结果还没卡到最优解)因为数据规模太小,所以代码写的很丑,可能常数很大c

2021-08-15 21:06:16 110

原创 洛谷P1137 旅行计划

传送门继续复习拓扑排序……首先X在Y西面即X向Y连接了一条有向边,不考虑“地球是圆的”的情况下,我们可以判断这是一个DAG用f[i]f[i]f[i]直到路线上点iii经过点数最大值,那么对f[i]f[i]f[i]产生贡献的点,也一定是对iii的入度产生贡献的点,于是有了利用拓扑排序的状态转移方程:f[i]=max(f[i],f[j]+1),∃edge:j→if[i]=max(f[i],f[j]+1),\exist edge:j\rightarrow if[i]=max(f[i],f[j]+1),∃e

2021-08-14 23:03:52 146

原创 洛谷P1038 [NOIP2003 提高组] 神经网络

传送门首先吐槽一下出题人的语文水平,读题真的很难受看到题面能够明显意识到这是一个DAG,需要按优先级计算状态,于是考虑借助拓扑排序来完成计算注意一个细节:输入层的阈值没有用#include<bits/stdc++.h>using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,

2021-08-14 17:44:39 235

原创 洛谷P4180 [BJWC2010]严格次小生成树

之前写过一次,但是理解不深刻,复习之后有了更加细节的一些理解好了进入正题首先,我们需要知道次小生成树一定是在最小生成树的邻集中,即次小生成树与最小生成树只会有一条边的差别所以我们会想枚举所有非树边,看看哪条换进去可以得到次小生成树而非树边去替换哪条树边又是一个问题,但是如果你注意到当前这条非树边与树上的一些树边构成了环——其实也就是这条非树边的两端点的LCA与之成环了意识到这一点,问题就会简单许多,我们可以利用LCA中的倍增思想,维护路径上的权值最大边事实上,我们还需要维护路径上的权值次大边——

2021-08-12 23:51:44 99

原创 洛谷P1462 通往奥格瑞玛的道路

出题人又双叒叕考察OIer的语文水平底线读懂题面之后会发现答案明显具有单调性,于是想到二分答案每次二分可能的最多的一次收取的费用的最小值,代入图中去验证是否能在满血或者残血的情况下抵达奥格瑞玛因为fi值可能很大,所以用离散化进行了优化料想不少神仙都写的是SPFA或Dijkstra,我就另辟蹊径写了一发DFS,本质上没有什么区别,不过喜欢写深搜的同学可以看看#include<bits/stdc++.h>using namespace std;inline char nc(){

2021-08-12 11:16:19 72

原创 CSP-S2019滚粗记

NOIP CSP-S2019 爆零祭我太难了,去年就被一众神仙爆踩,今年更多神仙的出现,让本蒟蒻无法逃脱爆零的命运,嘤嘤嘤。案件:HZQ CSP-S2019 爆零案发现场:CCF某地考场案发经过:Day1Day1Day1T1手玩了20min才意识到规律所在,慌忙写了20min分治,结果忙中出错,ULL那5分没了……T2一开始TMD真的毫无头绪啊啊啊啊,一阵mmp之后冷静下来发现自...

2019-12-21 23:06:36 217

原创 [FROM LOJ]#10036. 「一本通 2.1 练习 2」Seek the Name, Seek the Fame

传送门【模板复习】SOLKMP是用于单模匹配的算法,核心在于其nxt指针——模式串中每一个位置上的最长公共前后缀即:nxt[j]nxt[j]nxt[j]表示模式串1...j1...j1...j最长公共前后缀每次失配之后KMP不会跳回串首,而是调到上一个可以匹配的地方——nxt指针对应的位置getnxt的过程就是自我匹配的过程代码:#include<bits/stdc++.h&...

2019-11-13 11:28:25 167

原创 [FROM LOJ]#10042. 「一本通 2.1 练习 8」收集雪花

传送门【模板复习】SOL首先思路很简单,双指针+贪心即可,每次遇到一个重复出现的数,移动左指针至上一次出现的位置的下一位判断是否重复出现,一般的标记无法承受空间上的压力,所以要使用Hash哈希表(或者map,set之类的容器)一本通上面讲的链表实现正确性达到最高,但是时间上效率明显太低,考虑暴力实现一个哈希表,直接用一个静态数组存储所有元素,模数一般开成数据范围的2倍,正确性就已经很高了...

2019-11-13 10:59:41 244

原创 [FROM BZOJ]Codechef REBXOR

传送门SOL对于sum[L...R]=a[L] xor a[L+1]...xor a[R]sum[L...R]=a[L]~xor~a[L+1]...xor~a[R]sum[L...R]=a[L] xor a[L+1]...xor a[R],可以用sum[0..L−1] xor sum[0...R]sum[0..L-...

2019-11-13 09:29:13 111

原创 [FROM LUOGU]观光公交

传送门SOL挺不错的一道贪心题,小学奥数的较多最开始分析样例,很多人可能会考虑直接让所有氮气加速器用在下车人数最多的那个车站的前面那条路上,不过发现有车等人、人等车的问题之后,你可能就会觉得这道题不是一个贪心题了事实上,这还是一道贪心题,只不过kkk次氮气加速要一次一次的使用,这个思路应该能够在尝试推导k=1k=1k=1的做法之后想到,用一次氮气加速时,我们考虑人等车的区间贡献最大的一段,...

2019-11-10 19:39:05 84

原创 [FROM LUOGU]排兵布阵

传送门SOL乍一看你可能jio得这是一个贪心+模拟如果是这样的话,显然你想多了我们发现这应该是一个DP,再看看题目,存在兵力上限,那就相当于背包容积咯,那就是分组背包咯可是也没这么轻易就让你A了,直接转移是不行的,我们可以贪心发现你打第iii个碉堡时如果想打爆最弱的jjj个玩家,用2∗aj+12*aj+12∗aj+1个兵显然是最优的,对原数组排一个序,就成为了我们可以使用的物品代码:...

2019-11-10 13:08:01 409

原创 2019/11/8~9两场考试总结

Day1:凉的一批T1是一道由高考题改编而来的数学题,给定一个ai-1,ai,ai+1的关系,a0=0,a2n=1,求an当时脑子可能是抽了,没有想到可以用a0=0转为递推式,后面每个数与a1的倍数关系可以确定T2模拟小猫钓鱼,但是我的做法因为手写队列,指针会越界导致只有35pts……下次不能再皮了T3省选难度神题,我不会正解,只能咕咕咕了Day2:乱搞AC?T1就是排兵布阵...

2019-11-10 12:59:29 177

原创 [FROM LUOGU]Mivik的神力

传送门SOL首先max的答案改变肯定是在每一个数的右边第一个比它大的位置,用单调栈记录一下,连个边就好了说白了,就是从l开始,每次跳边去找右边第一个比它大的数,依次统计答案显然可以倍增实现跳链的过程(然而我一开始并没有意识到我写的是倍增)注意 一定一定一定要加有向边,否则多半要挂的代码:#include<bits/stdc++.h>#define re register...

2019-11-10 12:41:03 332

原创 [FROM LUOGU][Violet]蒲公英

传送门SOL暴力枚举肯定会T因此我们需要思考如何快速维护区间众数线段树之类的数据结构复杂度较好,但是在这种情况下不能够区间合并(区间众数合并之后不一定还是众数),而且这道题也没有修改操作再看看这个不大不小的数据规模,应该是O(N∗N)O(N*\sqrt N)O(N∗N​)的算法,于是考虑分块分块虽然也不能支持区间合并,但是我们可以利用分块特性预处理出每个块的答案用一个intintin...

2019-11-08 20:22:18 103

原创 [FROM BZOJ]最假女选手

传送门SOL这不是普通的线段树,要使用线段树Beats(又称吉司机线段树)其他操作都好说,主要来讲一讲2、3操作,也就是Beats的不同之处2、3其实是一样的,这里以 操作2 为例讲一讲具体实现操作2:把一个区间[L,R] 里小于x 的数变成x如果暴力修改叶子节点,复杂度就是O(N2logN)O(N^2logN)O(N2logN)的,肯定炸了,Beats的优点在于它额外维护了几个值——...

2019-11-07 14:26:33 270

原创 [FROM WOJ]#2161 罗马游戏(bzoj1455)

#2161 罗马游戏可并堆模板题题面罗马皇帝很喜欢玩杀人游戏。 他的军队里面有n个人,每个人都是一个独立的团。最近举行了一次平面几何测试,每个人都得到了一个分数。 皇帝很喜欢平面几何,他对那些得分很低的人嗤之以鼻。他决定玩这样一个游戏。 它可以发两种命令:Merger(i, j)。把i所在的团和j所在的团合并成一个团。如果i, j有一个人是死人,那么就忽略该命令。Kill(i)。...

2019-11-07 09:55:10 151

原创 [JSOI2018]潜入行动

传送门这道题是别人来问我的时候我xjb口胡的,结果写了1.5h才AC,wtcl首先状态定义是显然的:dp[u][i][0/1][0/1]dp[u][i][0/1][0/1]dp[u][i][0/1][0/1]表示uuu的子树除自己都已经保证被监听,用了iii个监听器,当前节点是否安装监听器,是否被监听很显然的有这么几个状态转移dp[u][i][0][0]=∑dp[v][j][0][1]∗...

2019-11-07 09:51:23 291

原创 2019/11/5 考试总结

2019/11/5 爆零总结T1大概就是一个打牌的过程,你有nnn种兵符,对手有m1m1m1种御符和m2m2m2种兵符,给出每种符的能力值和数量,你为进攻方,你的兵符只对能量值相同或更小的有作用,打御符时不得分,打兵符时得分为能力值之差,御符全部清除后可以直接走脸,得分为你的兵符的能力值,最大化你的得分其实这就是一个贪心,考虑先打兵还是先破防,不过细节贼多,而且还有负数,巨坑……T2题面...

2019-11-05 21:45:49 194

原创 [FROM VIJOS]安装服务器

传送门SOL看起来是变成了二维,其实仔细观察会发现两维的坐标是独立的,于是分别对两个维度求一次带权中位数即可代码:#include<bits/stdc++.h>using namespace std;#define re register#define int long longinline int rd(){ int re data=0;static char ch...

2019-11-04 19:20:17 169

原创 [FROM WOJ]#2133 紧急召集

传送门【模板复习】SOL中位数是在(i+1)/2(i+1)/2(i+1)/2的位置取得,而带权中位数是在∑a[i]>=sum(a[i])/2\sum a[i]>=sum(a[i])/2∑a[i]>=sum(a[i])/2的位置取得,与两点距离无关,只与权值相关证明:设最优位置为ttt则:∑i=1t−1a[i]∗dis[i,t]+∑i=t+1na[i]∗dis[i,t]&...

2019-11-04 19:14:15 106

原创 [FROM LUOGU][NOI2011]阿狸的打字机

传送门SOL首先构建AC自动机,然后建一棵Fail树Fail树就是把Fail指针反转后重新建的树,这样查询(x,y),y会出现在x的子树中对于询问(x,y),即统计在x的路径上的节点中有多少个在y的子树中一边模拟打字过程,一边用树状数组维护每个节点在其子树中出现次数代码:#include<bits/stdc++.h>#define re registerusing n...

2019-11-04 18:06:31 91

原创 [FROM LUOGU]【模板】AC自动机(简单版)

传送门【模板复习】SOLAC自动机其实就是利用KMP算法的线性性,得到的可以支持多模式串匹配多母串的算法,可以简单理解为Trie+KMP,fail指针的意义其实与KMP的nxt数组相似,就是前缀=后缀算法流程:1.用模式串构建Trie树2.在Trie树构造fail(失配指针)链,如果该节点不存在就将其指向其父亲的fail的相应儿子,否则其fail值为其父亲的fail的相应儿子3.查询...

2019-11-04 17:15:10 88

原创 [FROM LUOGU]同余方程

传送门【模板复习】SOL对于ax+by=gcd(a,b)ax+by=gcd(a,b)ax+by=gcd(a,b),我们可以得到bx′+(a mod b)y′=gcd(a,b)bx'+(a~mod~b)y'=gcd(a,b)bx′+(a mod b)y′=gcd(a,b)进一步化简:bx′+(a−(a/b)∗b)y′=gcd(a,b)bx'+(a-(a...

2019-11-04 16:58:53 112

原创 [FROM WOJ]#2210 上升序列

题面给一个长度10^5的非负序列,序列中的0可以任意换成任何数字(包括负数),问最长严格上升子序列长度。输入第一行有一个数n代表序列长度第二行有n个数字ai代表序列每个值是多少。输出一行一个数字代表答案样例输入72 0 2 1 2 0 5样例输出5数据规模30pts:n<=500030pts: n<=500030pts:n<=5000100pts:n&...

2019-11-04 16:39:04 157

原创 2019/11/2测试总结

2019/11/2 爆零总结T1:大意,给定质数ppp,数列ananan,求解三元组数量(x,y,z)(x,y,z)(x,y,z),使得x<=y<=z,x,y,z属于数列anx<=y<=z,x,y,z属于数列anx<=y<=z,x,y,z属于数列an且x∗y∗z mod p=1x*y*z~mod~p=1x∗y∗z mod&nbs...

2019-11-02 20:31:52 121

原创 2019/11/1测试总结

2019/11/1 爆零 总结T1:大意:给定一个数列CnCnCn,给出QQQ个询问m,类型1比较gcd(ci)(1<=i<=n)gcd(ci)(1<=i<=n)gcd(ci)(1<=i<=n)与mmm的大小,类型2判断是否min(ci)>m∗mmin(ci)>m*mmin(ci)>m∗m唯一的坑点就是读进来的数可能爆long ...

2019-11-01 21:19:05 123

原创 [FROM LUOGU]解方程

传送门SOL首先有很大的数据规模,所以只能取模判断是否为0其次计算这个多项式的值可能比较复杂,如果用pow函数或者快速幂复杂度就肯定炸了,常数小的话可以过70分所以可以迭代:计算第一次:an∗x+an−1计算第一次:an*x+an-1计算第一次:an∗x+an−1计算第二次:(an∗x+an−1)∗x+an−2计算第二次:(an*x+an-1)*x+an-2计算第二次:(an∗x+an...

2019-10-31 16:51:17 103

原创 [FROM LUOGU]逛公园

传送门SOL这道题的记忆化搜索、最短路DP有很多被卡了的,原因在于没有考虑0边不在路径上的情况,或者按照0边建图跑拓扑导致非0环上的点被误伤这个分层图(其实还是DP)的做法没有被卡:跑拓扑我们在最短路边集(所有dis<=K的路径上的边)上进行(当然你得先跑正反图的最短路)那么显然非0环至少有一条边不会被加进去,而0环会,这也就是导致−1-1−1的原因,所以跑完拓扑判断一下有没有入...

2019-10-28 16:40:19 100

原创 [FROM LUOGU]列队

传送门SOL注意到每次离队只涉及某一行以及最后一列于是可以考虑维护n+1棵线段树,动态开点即可前n棵维护每行前m-1个数第n+1棵维护第m列的数每次(x,y)离队如果y=m,直接丢到第n+1棵线段树最后否则先丢到第x棵线段树最后,转为(x,m)离队之后再执行上述操作代码:#include<bits/stdc++.h>using namespace std;#de...

2019-10-28 11:59:15 74

原创 [FROM LUOGU]开车旅行

传送门SOL70pts的很好做,暴力预处理之后直接回答即可,复杂度O(N2)O(N^2)O(N2)100pts的其实只需要加一个倍增(和一个Set/双向链表)先说说预处理,设nxt[i][0]nxt[i][0]nxt[i][0],dis[i][0]dis[i][0]dis[i][0]表示从iii出发到最近的点及到这个点的距离设nxt[i][1]nxt[i][1]nxt[i][1],di...

2019-10-28 11:00:26 90

原创 [FROM LUOGU]火柴排队

传送门为什么是提高+/省选- 啊(SOL其实怎样的顺序最优是很显然的,不过这里我还是给出一个证明要证明aiaiai和bibibi按大小顺序一一对应为最优,我们只需证明一个子问题即可设在排过序后的火柴序列中选取i<ji<ji<j,那么ai<aj,bi<bjai<aj,bi<bjai<aj,bi<bj,若调换其位置,那么答案的变化即为:...

2019-10-26 21:38:24 176

原创 [FROM LUOGU]跳房子

跳房子传送门被普及组爆踩Orz这个题的DP方程很显然,每次二分出g值,带入验证如果mn<=x[i]−x[j]<=mxmn<=x[i]-x[j]<=mxmn<=x[i]−x[j]<=mx,答案就可以进行转移:f[i]=max(f[j]+s[i])f[i]=max(f[j]+s[i])f[i]=max(f[j]+s[i])由于任意时刻均可以结束游戏,需要...

2019-10-25 11:18:06 126

原创 [FROM LUOGU]P1758 [NOI2009]管道取珠

P1758 [NOI2009]管道取珠SOLwoc什么神题Orzai2ai^2ai2可以理解为两个人用两对一模一样的管道然后各自进行一个操作序列之后产生相同输出序列的即为ai2ai^2ai2设f[k][i][j]f[k][i][j]f[k][i][j]表示第一个人在上管取了iii个,第二个人在上管取了jjj个,输出序列长度为kkk且相同的答案然后就可以转移了代码:#include...

2019-10-24 20:50:13 90

原创 [FROM LUOGU][HAOI2008]硬币购物

[HAOI2008]硬币购物传送门SOL最初可能会考虑一个完全背包,然而会T考虑完全背包是不是只用做一次?答案是肯定的对于一个限制d[i],我们用d[i]+1个i硬币就不合法那么对于一个询问s,i硬币不合法的情况数就是f[s-(d[i]+1)*c[i]]也就是说我们先用够总面值为s-(d[i]+1)*c[i]的硬币,剩下的再用c[i]补足,那么就一定不合法对于其他几种硬币显然,然...

2019-10-24 20:46:43 108

空空如也

空空如也

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

TA关注的人

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