自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OO第一单元总结

作者:Appleuiy 一只greenbird如果有幸,这篇博客在未来被某个学弟学妹看到了,并且你想要学习借鉴我的学习经验,建议你先快速浏览整篇博客,因为我的架构虽然我通过了前两次作业,但不能否认它是一个失败的架构,你可以参考一下,避免自己出现相同问题转眼间4个周过去了,OO第一个单元也迎来了结束。先说一下结果吧:三次作业提交,前两次都非常顺利,被hack次数为0,第三次没有通过中测(留下了悔恨的泪水)。从第一周java语言0基础到现在能够较为熟练。

2023-03-19 10:42:20 699 5

原创 2021-11-04

归并排序的实现打竞赛最常用排序工具的就是归并和快排(sort)归并排序有两个要点递归到底回溯时候统计什么叫做递归到底?我们不断将要划分的区间二分,一直到只有一个元素目的:先排序好 (l,mid)(mid+1,r)再去 给(l,r)排序void gsort(int l,int r){ if(l==r)return ;//递归边界 int mid=(l+r)>>1; gsort(l,mid);gsort(mid+1,r);//不断划分}什么叫做回

2021-11-04 17:37:04 110

原创 AC自动机的理解

题意 多个 B串 匹配 A 串学完ac自动机,发现其实它与KMP有异曲同工之妙。我们知道,KMP要先对B串进行自我匹配求出 F 数组,同样的,AC自动机也要对所有B串进行自我匹配。区别在于KMP中,B串只有一个,所以我们直接循环进行,但是ac自动机中B串有多个,每个都用循环处理的话时间复杂度不支持,所以我们考虑用trie树,在trie树上建立类似于KMP中的 F[ n ] 数组;首先复习一下 F 数组的意义 F[ i ] 表示在trie书上从根节点开始以 i 为结尾的串的后缀 ...

2021-08-28 22:19:31 94

原创 KMP理解加算法模板

首先明确,KMP是用于在字符串A中寻找有多少个字符串B以及他们的位置的算法为了完成要求首先要先对B串进行自我匹配求出 F数组F数组表示的意义是什么呢F[ i ]的意义在于 :表示 位置1~F[ i ] 所形成的子串与(i - F[ i ]+1 ~ i )形成的子串 相同那么我们可以想象 如果 B串与A串在B串(i+1)这个位置 没有匹配上 那么们只需要使 i=F[ i ],便可以继续匹配了为什么呢 因为既然已经匹配到 (i+1)这个位置了 那么 i -F[ ...

2021-08-28 00:14:25 93

原创 Dinic的模板加上简单理解

Dinic是用于求网络流中的最大流的经典算法它的大致思路可以理解为三个步骤第一,判断源点S到汇点T是否联通 ,若联通,求出S到T的最短路径(相连的两点之间距离设为1)第二,在第一步中求出了一条最短路径,那我们就用个笨方法,找出这条最短路径上流量最小的边 假设这条边流量为 z,显然 有z的流量可以通过这条路径从S流到汇点T, 那么答案ans+=z ,由于我们这条路径上流过了z的流量,所以这条路径上所有边的流量上限都要减去 z第三,不断重复上述步骤,直到S与T不再联通,那...

2021-08-21 20:24:38 95

原创 hash的简单应用

需要选取3个数 w t[N] modw表示hash成为一个w进制的数, T[N] 表示 w 的 N 次方 mod 是模数w可以取192608017 mod取1e9+7 _for(i,1,n){ s[i]=( s[i-1] * w % mod+a[i] )%mod; t[i]=t[i-1] * w % mod; // g[i]=(g[i-1]*w1%mod+a[i])%mod; // b[i]=b[i-1]...

2021-08-21 17:47:00 226

原创 2021-08-14 扩展欧几里得算法

扩展欧几里得算法是用来求一个线性方程 ax+by==gcd(a,b) 的解的算法,当然这个解并不一定唯一,但是当你算出一组解之后你就可以算出这个方程的通解,下面来证明ax+by == gcd(a,b) ——1方程bx'+(a%b)y' == gcd(b,a%b) ——2方程因为 a%b==a-a/b*b 带入第二个方程就可以得到 ay' + b(x' - a/b*y') == gcd(b,a%b)与第一个方程构成恒等式 x==y' ...

2021-08-14 18:14:10 76

原创 线性筛素数详解

竞赛中我们很多时候会涉及数论的相关知识,说到数论那就不得不提到素数了。下面我就介绍竞赛中常用的筛选素数的方法。第一种O(sqrt(N))试除法很简单,就是从素数的定义出发。素数只能被1和它本身整除的数(1除外),那么我们就验证1~sqrt(n)之间是否有i能都整除n即可。特殊的要验证1;bool check(int n){ for(int i=2;i<=sqrt(n);i++)if(n%i==0)return 0; return n!=1;}第二种就是用线性筛法筛出

2021-08-14 11:25:15 727

原创 关于__int128_t的输入与输出

__int128_t 所定义的变量并不包含在c++库里所以无法使用cin scanf printf cout 等所以这里要是用快速读入 和 快速输出了输入方法#define llt __int128_tllt in(){ llt ans=0,f=1;char c=getchar(); while(!isdigit(c)){if(c=='-')f=-1;c=getchar();} while(isdigit(c)){ans=ans*10+c-'0';c=get...

2021-08-03 13:38:56 2473

原创 KM算法模板

KM算法是用于求二分图完备匹配下的最大带权匹配正常情况下极限复杂度应该是O(n^3)但是哈,网上有各种坑爹算法,披着n^3的皮,做着n^4的事,至于我怎么知道的,你猜?(显然不可能是我被坑了,我怎么会被坑呢)首先,Km算法需要一下数组cost[N][N]来记录左部点 选 右部点所获得的贡献wa[N] 记录 左部点的期望 wb[N] 记录 右部点的期望vb[N] 记录 当前轮次 哪些右部点已经遍历过了pre[N] 记录 前驱 比如pre[j]表示如果j这个左部点没有匹...

2021-08-03 11:15:51 217

空空如也

空空如也

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

TA关注的人

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