自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Reparameterization Trick

从正态分布到Gumbel Softmax

2024-06-11 21:05:46 759

原创 ABC 357 G Stair-like Grid

个点无法经过,求从左上角到右下角的方案数。其中每次移动只能向右或向下。表示两点之间的所有最短路的方案数(不考虑中间是否经过障碍)表示从起点到第i个障碍,中间不经过其它障碍的方案数,还是将障碍按横纵坐标排个序,同时不妨将终点也放入。,这样就还原成了经典模型,可以直接用容斥来做。一个比较显然的思路是把原图还原为。个方块,总共有n行。中,显然排序后它会是最后一个点。但是这样做的时间复杂度是。表示S中的第i个障碍,其实是我之前写的一篇。

2024-06-09 16:10:42 907

原创 Dilworth 定理

这是一个关于偏序集的定理,事实上它也可以扩展到图论,dp等中,是一个很有意思的东西。

2024-05-25 12:11:52 537

原创 GraphMAE 简介

当前的自监督学习领域主要分为对比式自监督学习以及生成式自监督学习,这篇文章主要聚焦于生成式对比学习。事实上后者在图领域的进展是远远不如前者的,但是在cv,nlp领域却是以生成式自监督学习为主,所以作者想要重振生成式学习的荣光。生成式自监督学习又主要分为:自回归以及自动编码,目前是后者用的比较多。自动编码技术的主要目的就是在给定上下文的基础上重建输入的特征,图领域的自动编码器就叫做GAE。以上几点可以在图中看出来。

2024-04-26 21:32:19 755

原创 一道推起来很爽的组合优化题

莫比乌斯反演+欧拉反演

2024-04-02 11:48:00 923

原创 Attention Mechanism

注意力机制,借鉴了实际生活中的注意力的概念,还是有点意思的

2024-04-01 10:18:31 987

原创 LightGCN:简化和增强图卷积网络的推荐

在NGCF上的一些改进,简化了模型的基础上提高了推荐的性能

2024-04-01 10:16:22 1130

原创 编译原理 sql简易编译器

一个比较综合的东西,我愿称之为究极大分类讨论,还是有点意思的

2024-01-03 10:33:07 810

原创 【学习笔记】环论

环论基础知识,加了一点自己的理解

2024-01-02 22:40:28 1110

原创 【学习笔记】Burnside引理,Pólya定理及其应用

好东西+1

2023-12-08 18:06:50 1047

原创 【学习笔记】群作用与轨道-稳定化子定理

好东西

2023-12-04 21:51:11 1606

原创 EGF中多项式exp的组合意义

仔细理解一下,众所周知,一个大小为n的排列一定可以拆成若干个环,每一个环内部的排列数就是一个圆排列的方案数,所以大小为n的排列的方案数就是把。EGF一般用来处理多重集的排列问题,在其上可以定义多项式的exp运算,在处理一类问题的时候有独特的作用。分成若干个非空集合,每一个集合的圆排列方案数之积,这与我们上面讲到的exp的组合意义相符合。的个数,这是一个只跟集合大小有关的值),那么根据生成函数的定义,我们不难得到下式。是因为这k个集合是无序的,而原本的多个多项式卷积显然是有序的。考虑大小为n的排列的个数是。

2023-10-24 22:30:48 332

原创 【学习笔记】 LGV引理

虽然但是,我们的终点是不确定的,所以直接枚举每一个起点对应的终点然后再算行列式的话,是不行的。,n秒钟,每一秒对于每一个点来说,有一半概率保持不动,有一半的概率前进1个单位,求k个点两两碰撞的概率。对于左式,我们实际上是要算逆序对个数为偶数的所有置换对应的方案数减去逆序对个数为奇数的方案数。是一个偶数,就意味着加入i不会改变当前序列逆序对数的奇偶性,所以直接加就好了,否则要取负。),此时右式只有一个因子,含义就是整张图的不相交路径组数,就可以用左式的行列式表示了。,这样就相当于求k条不相交路径的方案数了。

2023-09-25 19:18:03 438

原创 【学习笔记】Prufer序列

起源于对Cayley定理的证明,但是其功能远不止于此

2023-09-22 20:22:51 540

原创 【学习笔记】各类基于决策单调性的dp优化

个人认为已经非常非常全了,从入门到入土的知识点都在里面了,以及本人踩过的所有坑的(泪目

2023-09-16 20:00:14 608

原创 [学习笔记]斜率优化dp 总结

我们学过不少优化类的算法了,大部分都是基于凸函数的性质给出的优化,比如Slope Trick,Wqs二分,又比如今天的斜率优化(不知道什么时候会有空把Slope Trick写掉)当dp式子满足cy−cxby−bx≤−aiby​−bx​cy​−cx​​≤−ai​的时候,我们要维护的是一个下凸包i

2023-09-02 09:27:17 662

原创 离谱事件&解决方法2 无法定位程序输入点XXX于动态链接库XXX.dll

发现anaconda里面也有一个clang.cll文件,然后又查了一下libLLVM-16.dll文件,果然,anaconda里面也有。这里的dll文件就是动态链接库,它并不是一个可执行文件,里面存放的是程序的函数实现过程(公用),当程序想要执行某个函数的时候,就要先载入dll文件,然后调出对应的函数地址再调用函数。系统在搜索.dll文件的时候,先在anaconda的子目录下找到了clang.dll等两个文件,因此调用了错误的文件,也就没有找到对应函数的地址。用别人的两个对应dll文件替换掉原本的文件。

2023-08-26 21:12:46 328

原创 势函数和鞅的停时定理

鞅是一类特殊的随机过程,假设我们从一开始就在观察一场赌博游戏,现在已经得到了前t秒的观测值,那么当第t+1 秒观测值的期望等于第t秒的观测值时,我们称这是一个公平赌博游戏。表示当前的剩余人数,显然它不是一个固定的值。

2023-08-17 10:35:44 518

原创 容斥原理 训练笔记

​记录训练中的容斥问题,以及一些基本原理

2023-07-29 22:18:27 304

原创 二分图博弈学习笔记

因为黑白棋是轮流操作的,黑棋走过的点白棋是无法走的,反之同理。假设当前P不在最大匹配中,那么先手移动之后P一定会到达一个匹配点,否则我们就有了一个新的匹配,与最大匹配这一点矛盾。每次操作之后整张图都不一样了,我们要判断的起始点也不一样了,所以我们每次要重新建图,因为图比较小,所以该方法是可行的。在该图的残量网络中,1->5的流量为1,匹配边5->2的反向流量为1,因此我们判断两条边可以互换。由此,对于一个二分图博弈,只要我们能够判断先手所在局面是否处在二分图的最大匹配上,即可判断必胜状态。

2023-07-22 19:06:04 765

原创 Petrozavodsk Winter 2023. Day 1 部分题解

尝试将i的映射变成j,我们需要验证i->j的权值贡献加上图的其他部分的贡献与ans相同。那么将i连向其他点的权值置为0,再将其他点连向j的权值置为0,重新跑一遍KM,加上i到j的权值贡献,即可。第一个值其实比较好维护,我们只需要记录每一个人的分数,然后每一次操作的时候维护一下排名,贡献就是排名的变化了,具体实现用一个树状数组T1来维护分数。但是下一次又轮到id操作的时候,它并不是从一开始就待在当前的now这个位置的,所以我们先提前减去T2(now),下一次就可以放心加上对应的值了,实现起来也比较容易。

2023-07-08 16:00:55 301

原创 奇怪的数位dp CF908G New Year and Original Order

然后我们看一下每一行的1的个数,其实也不难发现,第i行的1的个数=大于等于i的数字的个数,手模一下就可以验证了。所以在第d行,计数字x中>=d的数字的个数为k,则x在第d行的贡献就是(10^k-1)/9(其实就是在构造k个1)在此基础上,我们分9次来计算每一行的贡献。首先这种题目是存在一定套路的,但是没见过基本是想不出来的(估计也是其rating高的原因)所以此题的关键就是用1来组成数字,剩余的工作就都是很基础的了。求区间[L,R]内每一个数字在各数位排序后得到的数的和,答案对1e9+7取模。

2023-06-25 20:43:55 75

原创 一道有点仙的数位dp 方伯伯的商场之旅

为了防止越界,我们可以在一开始就判断一下,如果sum

2023-06-22 11:40:11 152

原创 回文串+数位dp 萌数

所以可以反过来考虑,那就是统计不含回文字串的个数,不难发现其性质就是每一位都与前两位不同。所以设一个三维的dp,i表示当前位数,j表示前一位,k表示前一位的前一位。做数位dp的话,转移就按照正常的转移来就好了,只是中间遍历时要特判一下前导0时的情况,需要将前两位都置为-1。如果正着想的话,显然所有回文串都满足有相邻两位相等或者间隔一位的两个数字相等,但是这样计数的话还要考虑到相等的位置以及第二种情况时中间数字与两边数字是否相等等一系列情况,想想也不是1e1000能解决的。

2023-06-18 19:43:01 119

原创 可重元素集的康托展开&数位dp [HAOI2010]计数

具体来说,当前在第i位,值为val,之前枚举得到的数字出现情况为a[],然后我们遍历取代这一位的数字x,x属于0~val-1,此时a[x]先-1,相应的,val放入后面的序列中,所以对应的方案数就是一个可重集的全排列。如果我们去掉一个0,可以看成它变成了前导0,所以转化一下题意,就是求一个可重数集的康托展开,这个数集的大小是10。先放0,方案数是C(n,a[0]),然后放1,方案数就是C(n-a[0],a[1]),以此类推。回到这题,我们的思路其实是差不多的,我们也得算一个可重集的全排列,

2023-06-04 18:40:40 522

原创 数位dp训练笔记

依稀还记得去年寒假的时候对数位dp的恐惧达到了顶峰,打死也不想做一题,也是怎么学都学不会,甚至板子也只是真的去网上copy了一份,自己也都不理解。考虑dp状态dp[i][j][k]表示枚举到前i位,前i位数字的和是j,前i位组成的数字是k。g[i][j]表示当前枚举到第i位,出出现过的数码种类的状态为j的合法数字个数,也就是板子。f[i][j]表示当前枚举到第i位,出现过的数码种类的状态为j,也就是我们要求的答案数组。考虑枚举贡献,枚举二进制1的个数为j,假设有k个这样的数字,答案就是。

2023-06-04 10:03:13 217

原创 cf1750E Bracket Cost

假定L>=R,对于每一个没有匹配的左括号,如果我们能找到一个尚未匹配的右括号,则它一定在该左括号的前面,所以我们直接取以它们为端点的字串,执行操作1,这就实现了一个匹配。如果这个左括号找不到尚未匹配的右括号,我们就直接执行操作2即可。注意到每次操作都不会浪费,都达到了对应操作所能消去的最多的括号数,所以该操作是最优的,此时总操作次数是L-x。,L+R的求和是比较简单的,就是类似于上一个的求法,考虑每一个位置的贡献。我们令L表示串内左括号的数量,R表示右括号的数量,x表示串内已经匹配的括号对的数量。

2023-05-26 22:14:33 864

原创 离谱事件&解决方法1 WALN网络不存在?

本人尝试了包括网络重置在内的许多办法,以及n多次重启,问题仍然得不到解决。网上说fn+f1~f6中的某一个键可以进入BIOS系统,但是我都进不去。这张是修好之后的图,但是当时所有包括蓝牙,waln在内的设备的状态都是。然后选择Exit中的Exit Saving Changes(保存退出)如果它的状态是Enable,就先调成Disable,再调回来。遂重启,结果事情更糟了,WALN就没了,没了,没了...如果它的状态是Disable,就调成Enable。找到无线网卡模块Wireless Lan模块。

2023-05-17 15:17:41 362

原创 NTT入门 开拓者的卓识

以此类推,我们的k阶字段和就是在区间[l,r]内找到满足条件的l',r',使得有k个区间包含它们对应区间。所以我们考虑一下在一个长度为i的区间里放k-1个数的方案数,其中这k-1个数可以取等。二阶子段和[l,r]就是在找l',r',使得l

2023-04-28 15:37:09 611

原创 逆天思维题 CF741C

我们会发现,每一个点都被两种边连接,一个来自它的伴侣,一个来自它的其中一个相邻点,所以最后如果有环的话,一定是两种边交替出现的,所以不可能有奇环(一个特殊情况是情侣相邻坐,但不难发现此时也不是奇环)。有2n个人围成一圈坐在桌子边上,每个人占据一个位子,对应这2n个人是n对情侣,要求情侣不能吃同一种食物,并且桌子上相邻的三个人的食物必须有两个人是不同的,只有两种食物(1或者是2),问一种可行分配方式。因为只有两种颜色,所以是要我们构造一张二分图,其中情侣之间要连边,关键就是如何处理任意三个点之间的关系。

2023-04-06 21:40:29 285

原创 树上启发式合并+点分治思想 CF741D

再加上字母数不是很多,我们直接按位状压,某一位为1就代表改字母出现了奇数次(特意强调只有22个字母,摆明了就是要状压),那么,如果点对u,v之间的路径的异或和等于0或者是2的幂次,这条路径重排之后就是一个回文串了。显然,如果u,v之间的路径满足条件的话,我们同样可以O(1)的得到路径长度=dep[u]+dep[v]-2*dep[lca]其实就是第一种情况,只不过过的根是u的子孙节点,我们只要在dfs的时候让父节点的答案更新一下就可以了。的话,会发现这种树上点对异或的东西还是比较套路的。

2023-04-06 21:04:31 330

原创 另类推柿子 Crypto Lights

不难发现,si表示在第i次,第i+1次,...第n次结束的概率之和,这其实也就等于第i-1次无法结束的概率(这个应该不难想)n-(i-1)-(k-1)(i-2)个小球,这些相同的小球要放进i个位置里,可以有位置为空,所以直接隔板法即可。中间的i-2个位置每一个至少要有k-1个小球,所以我们先放进去(k-1)*(i-2)个小球,还剩下。不妨先将i-1个小球摆好,这样整个集合被分成了i个位置,我们还有n-(i-1)个小球可以放进去。现在有n个小球,要求选择i-1个小球,两两之间有至少k-1个小球。

2023-04-02 13:32:56 287

原创 基础二项式反演 [已经没有什么好害怕的了]

转移方程也很好想,如果a数组的第i个数字不选,方案数就是dpi-1,j,如果选上它,我们要为其找一个比它小的数字,那么方案数显然就是dpi-1,j-1*(ri-(j-1))给定两个数组a,b,要求对两个数组中的元素两两配对,使得恰好有ai>bi的组数恰好比aibi的组数恰好为k的方案数。设ai>bi的组数为x,则有x+x-k=n,推出x=(n+k)/2。我们令fi表示a>b的组数恰好为i的方案数,显然答案就是fk。

2023-04-02 13:09:30 329

原创 下降幂+第二类斯特林数 推柿子大题

然后还有一个东西极大阻碍了我们的推柿子进程,就是f(k),它跟外面的组合数并不能进行什么神奇操作,所以我们可以考虑将其转化一下形式。可以稍微想一想,不难发现,有了上述的性质,我们可以把一个跟k有关的下降幂变成与k无关的一个下降幂,就多了很多操作的空间。,没错它其实就是组合数,只是换了一个名字,但正是因为它与幂函数有许多可以类比的地方,所以也叫它下降幂。不难发现,前面已经是一个二项式定理的样子了,这也就意味着我们成功把n的复杂度降下来了!考虑这样一个组合意义:有k种颜色,每一个人选择任意一种的方案数。

2023-03-31 18:27:09 351 1

原创 一点小发现

主要是,这其实是一个数列的高次前缀和,然后这应该也就是它的通项了。我记得好像是可以用生成函数来推的,但是有点忘了,先放着,以后也许用得到。做题的时候在推柿子,突然发现一个可以延申的结论。然后i=4的时候小推几个,感觉就是。如果有懂的佬,欢迎来指导我。

2023-03-26 22:11:14 45

原创 高维前缀和 学习笔记

显然一种暴力的方法就是枚举i的所有子集,考虑优化的话,我们可以尝试前缀和,因为显然如果有,我们可以将j的贡献都先算在z上面再传给i,而不必一个个来但是这样的话,就涉及到了高维的前缀和处理先来看看一维前缀和是怎么写的。

2023-03-25 21:29:53 1613

原创 妙妙子树上好题 XOR, Tree, and Queries

每一个连通块内,我们从任意一个起点出发(不妨假设它的pi值为0,这当然是合理的,因为想要修改它为x的话,我们只要让连通块内的点的p值都异或上x就可以了),可以推出其余点的p值,然后,如果里面有环,并且发现某一个点从不同路径走有不同值时,意味着该情况无解,这题就结束了。如果某一个连通块的大小是偶数,意味着我们要修改的值x会异或上偶数次,相当于没有操作。所以,看起来是一道很伤脑筋的构造题,其实最后的结果只有三种情况:无解,0,一个常值。所以我们把所有度数为1的节点找出来,它们的异或和,就是我们的答案。

2023-03-16 11:33:42 541

原创 Codeforces Round 857 (Div. 2) 题解

我们就需要维护从1走到n的过程中的卖艺收入最多的点,中间更新的时候就直接拿该点的权值除一下就好了。枚举到第i个位置的时候,对于第i个数组的每一个元素j,我们看一下前面i-1个数组丢弃掉一些之后,在最大值不大于j的情况下,最大贡献是多少,然后我们再加上j到该数组结束能产生的贡献,就可以更新到第i个数组位置的最大值了。然后我们枚举放在第一堆的最大值,枚举到第i个物品的话,假设当前第一堆的最大值是ai,i+1~n的位置都只能选第二个价值,1~i-1的位置就可以选第一个价值,也可以选第二个价值。

2023-03-15 17:49:03 791

原创 Codeforces Round 843 (Div. 2) VP题解

如果当前的数字a大于0,我们至少要a次--操作,那么我们就留给了后面的第一个数字a次++操作,同时也会消耗掉之前的数字留给我们的a次--操作。那么在这个过程中,如果需要的次数不够了,我们就直接加,因为这就是我们不得不额外做的操作。对于一个正数来说,如果某一次操作能让他--,我们肯定会做,如果是让他++,我们肯定不会做,这是显然的,因为这里不会有比直接减更好的策略,毕竟我们每次操作改变的值是固定的。如果没有,就可以构造。选出一个子序列,将奇数位 +1,偶数位 −1,或将奇数位 −1,偶数位 +1。

2023-03-08 16:37:20 491

原创 Educational Codeforces Round 143 (Rated for Div. 2) 题解

如果能向上走的话(父亲没有需要走的步数),就是将父亲的所需步数更新为该点所需步数-1.注意,一个父亲只能让一个儿子踩一遍,第二个儿子再过来就不能走了。hj

2023-02-21 21:34:24 512

空空如也

空空如也

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

TA关注的人

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