自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [NOI2001] 食物链(扩展域并查集,证明)

方式和网上很多的都一样,就是建立三个域“A”“B”“C”,对于每个给定的条件,将其中能够提取到的所有条件都在并查集上体现出来(我们可以发现每个结论的得出都是依据这个类型的基本条件“设X为P类可以得出Y为Q类”,而每个条件对应在并查集上连的一条线),每次检测某个情况的时候,比如询问“Z是否吃X”,可以假设Z为A类,看能不能得出X为B类,可以看出假设有可行的推导方式得出这个结论,那么推导过程中所利用到的每一个条件必然在并查集中都有体现(连线),最终能够推出则并查集中从Z_A到X_B之间必然连有一条线。

2023-01-11 11:31:54 207

原创 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest F.Philosopher’s Walk

这道题虽然题面有点长,但是图片含义清晰,规律一眼可见,签到题。

2022-12-06 20:07:02 238

原创 洛谷P2763 试题库问题

经典的最大流,注意输出答案的时候。

2022-09-13 14:01:19 210

原创 洛谷P2065 [TJOI2011] 卡片

首先这道题不难想到是用O(n^2)的方法来给二分图建边,然后再跑一个最大匹配,然而对于这种做法,假设一种最简单的情况就是两种颜色各有500张,每张上的数字都为2,那么就乱了,因为边的数量有500^2即250000条,而一边点又有500个,那么跑二分图的时候假设每个未盖点都去把对面的已盖点都遍历一遍再找到一个未盖点,那么这个过程中就又浪费了一些时间,总之就是对于每个点都会大概把前面的很多条边全部遍历一遍,复杂度O(nm),这样最差可以到1e9以上的水平,就很容易超时,因此要采用洛谷题解中大佬展示的最大流算法。

2022-09-13 00:01:38 289

原创 洛谷P4316 绿豆蛙的归宿

这道题是我在洛谷某用户分享的《拓扑排序》题单中遇到的,然而这不是一道拓扑排序题啊,应该要归为记忆化深度优先搜索才是。

2022-09-12 14:47:25 110

原创 博弈小游戏严谨的正确的完整的证明

首先这个游戏原型就是牛客上的某一道题,但是题目利用到的博弈方面的知识只是判断能否先手必胜,就算题解也没有给出证明而是说什么显然(听闻大佬说做这种题是靠感觉的),只是给出说通过控制减一异或和为0以及要分个数为奇偶的情况讨论。作为犯有证明强迫症的我,就硬生生把一天给搭进去了,为的就是寻找一个可以解释得通的办法,并且最终还把它实现成一个小游戏。

2022-09-08 17:36:24 215

原创 CF125E. MST Company详细解答

WQS二分+kruskal的经典题型,为您提供最详细的解释!

2022-09-04 16:59:56 330

原创 Codeforces Round #818 (Div. 2) D - Madoka and The Corruption Scheme

考查完整二叉树、组合数计算。

2022-09-03 16:18:03 307

原创 1584 ZJOI2008 骑士

​首先声明:下面是关于这道题的某位大佬博主的解答代码作解释,代码出处为1584 ZJOI2008 骑士(Bzoj1040 LOJ10162 LUOGU2607 省选/NOI-) 枚举组合数30分 类01背包树上DP10分 基环树有向图(强制不选某点正确性证明)100分_mrcrack的博客-CSDN博客

2022-09-03 14:18:31 154

原创 洛谷P1131 [ZJOI2007] 时态同步

树形dp题

2022-09-01 22:47:52 118

原创 洛谷P1270 “访问”美术馆

思路:还是比较明显的树上背包题目,主要就是在输入边的时候是按照深度优先搜索给出的,这配合一个stack来读取则很好;至于其他的注意点就是这里的size是在于每个子树的来回时间以及偷东西需要的时间(也是离散的,记得处理好),由于边来回时间,不再是经典的dp[u][i+j]=max(dp[u][i+j],dp[u][i]+dp[y][j])了,而是dp[u][i+j+2*w]=max(dp[u][i+j+2*w],dp[u][i]+dp[y][j]),由于从u到v的来回还要2*w的时间;还有就是输出的是要警察到

2022-09-01 17:17:43 72

原创 洛谷P2619 [国家集训队]Tree I

WQS二分,我的新知识

2022-08-31 13:57:45 164

原创 HDU-2196 Computer

​严正声明:本文虽不是直接抄袭吾仄lo咚锵大佬的,但是完全是从他的推文中学来的,而且这里我也不具体讲解题方法,只提供我个人的代码,和大佬的差不多。

2022-08-30 19:59:20 89

原创 信奥一本通1272:【例9.16】分组背包

思路:类似于0/1背包,就是每次加上的时候是考虑整一组中加上后能对于当前这个V有最大效益的那个物品。

2022-08-29 17:00:46 273

原创 洛谷P1967 [NOIP2013 提高组] 货车运输

这道题的解法是先求出最大生成树,然后把这个树存起来,再来这棵树上面求lca即可,cost则为最小边权值,合理性等具体看代码及其注释。

2022-08-27 21:55:58 360

原创 信奥一本通1554:【例 3】异象石

思路:这里求树上连接多个点的最短路径运用了很巧妙的做法,就是先根据各个异象石结点在树上的时间戳排序(dfs遍历顺序),然后每相邻的两个结点(包括首尾)之间求最短路,最后把这些路求和就是答案的两倍,由于这个过程相当于围绕着要求的路径走了一圈,每条路都走过并且是走两遍!然后注意开long long,并且注意不能每次直接从头遍历到尾去找那个插入或者删除的地方,这样会超时,应该用find。...

2022-08-27 15:42:08 403

原创 信奥一本通1558:聚会

思路:三个点中,任意两个点组成一组可以有三组,求出这三组的公共祖先,那么必然至少有两个是重叠的,如果三个相等那么就是三个同个共同祖先,如果两个相等就是有一组是先于三个的共同祖先能找到共同祖先的,那么最优点永远是这个点,在这个点的话三个点来此汇聚所经过的路径必然是只踏过一遍,而其他点,比如在该点的子结点,那么就有一段要被第三个点(除这组外的那个点)和这组两个中的一个点同时踏两遍,而在这个点的上方肯定这组两个点都要踏,也是有地方踏两遍,而其他点又更加不可能,综上所述就是在三组的lca中最深的那个点。

2022-08-25 14:29:03 179

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

思路:首先是要求到合理路径上的最大收费的最小值,此时优先想到能否把一个个点相关的边一条条加入,然而显然是行不通的,除非是floyd,但是时间复杂度承受不了。其次应该考虑到是否能使用二分算法,发现可以,就是每次设置好最大收费的上界,然后跑Dijkstra,检测dis[n]是否会大于或者是小于等于歪嘴哦的最大体力值,以此逐渐缩小范围,便可在log(所有体力的最大值)次(不大于10次)Dijkstra后找到答案!

2022-08-23 19:45:50 293

原创 洛谷P1144 最短路计数

由于是酷暑时期,头脑晕眩,一开始看到题目没有发现是无权的,在那里想了很久,最后知道无权后很明显一个bfs就是找最短路顺便还有条数,具体如下。

2022-08-23 15:40:24 325

原创 洛谷P1629 邮递员送信

思路:来、回各一次spfa,首先去到的肯定找到的是正确的最短路,而返回的则把所有边转为反方向,找到的最短路在实际上都是反过来的,那么到的最短路就是回的最短路(应该很好接受,因为方法是对的,就是全反过来而已,结果都是对应的)。

2022-08-23 13:26:29 99

原创 信奥一本通1390:食物链【NOI2001】

然而这个只能是一个方向的,毕竟x吃y和y吃x是两种意义,比如x和y+n绑定之后肯定是有方向的,要么x指向y+n要么反过来,如果要达到无向的效果,那么要两个互相指向(y和x+n,因为y+n再指向x不合理,这样相当于在循环,互相当对方爸爸),所以其实有一定的局限性。想象一种情况就是x->y+n且z->y+n,此时明显x和z是同类,但是很明显如果来了个2 x z的话,我们并不能找到x和z有同样的祖先,从而不认为这是一个谎言,所以上面转载的题解还是有局限性的,然而在信奥上面是能完全过的。

2022-08-22 22:38:47 205

原创 信奥一本通1386:打击犯罪(black)

由于打击顺序从1开始,因此只需要把边按照它所连接的两个点中小值大的排在前面,然后从前往后遍历各条边,再逐渐建立并查集,且每次遍历到两个点中小值比上一条边的两个点中小值小的时候就检测一下当前是否不符合要求,不符合则输出边界并返回,然后注意如果只要删除一个的还要在所有边遍历完以后再检测一遍,如果不符合则输出1,还符合则输出0,时间复杂度O(n^2log(n^2))。

2022-08-22 17:43:29 769

原创 信奥一本通1387:搭配购买(buy)

首先是利用并查集把各组归类,但是归类完要记得还需要利用0/1背包,因为不一定只买一组,选定那些组合,再最终得出答案。

2022-08-22 15:56:22 299

原创 洛谷P1002 [NOIP2002 普及组] 过河卒

记忆化深度优先搜索,相当于从右下角到左上角加个杨辉三角出来,复杂度O(n^2),稳的一批。

2022-08-21 17:33:55 198

原创 洛谷P1802 5 倍经验日

首先失败的经验是直接就能得到的,其实就是药水在打架中的花费其实都是在于最高的高于最低的那个部分。所以直接相减,然后基础答案就是最低的和,后面那个差值去装背包。

2022-08-21 16:50:20 144

原创 01背包、完全背包证明(合理+简洁)

这里只提供合理性证明(严谨的),有关知识和代码原理全网可以找到很多可以学习的地方,我就不再赘述。但是有关证明就很难找到了,尤其一些说是证明,但是都是在叙述方法的过程(还是在说方法),所以这里提供我个人对于这个方法的证明。

2022-08-20 16:33:00 252

原创 洛谷P2196 [NOIP1996 提高组] 挖地雷

首先本题目的路径是单向的(当然是测试过才敢这么说,一开始确实调了挺久,还加vis等等),并且只有前面的指向后面的而后面的不可能指向前面的,所以任何单条路径的深度优先搜索不可能形成环,因此非常简单

2022-08-20 13:50:25 214

原创 益智游戏日历拼图解法:搜索+回溯

先把盘子还有各个小块的形状记录起来,盘子用一个全局数组,而小块则用一个结构体node,还要存储长宽,并且有旋转等函数,然后采用深度优先搜索算法(DFS,这是一个很基础的算法,还没了解的应该先了解),注意回溯,然后就能罗列所有的情况,再加上一些剪枝、排序等等,5分钟内可以跑出结果!

2022-08-19 17:19:37 1972

原创 (OI wiki、洛谷)KM算法模板及详细解释

代码是从OI wiki中获取的,但是OIwiki中并没有添加代码解释,这里我基本上把每一句该解释的都解释了!,写得非常直白,建议看完这个再看百度百科或者蓝书也有,然后细心推敲,再看模板以及解释。该算法相关资料的搜集和证明(甚至有部分还得自己推)都比较难,这里提供。......

2022-08-18 11:30:02 493

原创 POJ 3020. Antenna Placement

首先必定可以形成二分图,利用反证法,不行则说明有“*”连通块形成环且环上的“*”后面染的颜色和前面染的不一样(比如三颗成环,当然这里不存在),但是环一定是偶数个点所以不可能前后染的颜色不一样,因此必定可以形成二分图,所以就随便找未盖点(未连接匹配边的点)直接走增广路,用匈牙利算法得出最大适配。而运用二分图最大适配的原因是它能找到对于任一联通区中最多的能两两匹配的点对(不交叉),剩余的肯定是一个孤立的就占多一个圈圈,由此计算总圈数即可。利用二分图的最大适配方法。......

2022-08-17 13:04:06 106

原创 POJ3041 Asteroids(详细解答)

因此对于每一条匹配边,要么两个端点都同时被标记,要么两个都没被标记(比如就是连接孤立的两个分别位于两个点集的结点,这两个点不与其他任何点连接,不会被标记)则选到了它左边的点,要么两个都被标记到了则选到了它右边的点,因此。而我选的点当中,右边能被标记的点肯定是已盖点(根据刚刚走的“增广路径”的原理),而左边的未盖点显然已经被标记,因此能选中的也必定也是已盖点,即。③这个点集一定是最小的,由于最大适配的定义中就保证了任意两条匹配边都不想交与一个结点,因此若想覆盖这些匹配边,至少就要有等于匹配边的数量的结点。..

2022-08-16 21:41:12 180

原创 信奥一本通 1396:病毒(virus)

现在怎么恢复原来的文档呢!小y很聪明,他在其他没有感染病毒的机器上,生成了一个由若干单词构成的字典,字典中的单词是按照字母顺序排列的,他把这个文件拷贝到自己的机器里,故意让它感染上病毒,他想利用这个字典文件原来的有序性,找到病毒替换字母的规律,再用来恢复其它文档。还好,小y发现这种病毒很弱,只是会把文档中的所有字母替换成其它字母,但并不改变顺序,也不会增加和删除字母。输出仅一行,为恢复后的一串字母。现在你的任务是:告诉你被病毒感染了的字典,要你恢复一个字母串。以下K行,是被病毒感染了的字典,每行一个单词。.

2022-08-16 12:34:30 870

原创 信奥一本通 1395:烦人的幻灯片(slides)

思路:这个虽然看不出很拓扑排序,但是也和拓扑有共同点:比如每个区间可以匹配的点有哪几个,让它去指向那些点,然后所有点里面入度只有1的时候就可以放,对于指向它的那个区间,把它所有指向的点入度都减一即可。把入度为1的把它和对应的字母组合存入ans,最后判断ans的size就行。有个小问题就是可能没有入度为1的,比如两个区间对应两个点,但是这种情况其实是可以pass的,因为这里已经多种可能了,而题目中已经说过“若出现多种对应的情况或是某些数字编号和字母编号对应不起来,我们称对应是无法实现的”,因此思路可行。...

2022-08-16 11:09:13 954

原创 信奥一本通 1394:连接格点(grid)

思路:这道题比较特殊,由于横向和纵向的边权值分别是一样的,由此根据kruskal的原理先逐一遍历纵向的后再逐一遍历横向的即可,至于已经有的直接加在并查集里表示联通即可,后面遍历到不可能再加一遍的。...

2022-08-15 16:12:20 557

原创 信奥一本通 1351:【例4-12】家谱树

思路:这一眼就应该能看出是最裸的拓扑排序,然而我对于图论并不熟悉(初学),加之我是在做最小生成树,而这道题目居然放在那个栏目下。。

2022-08-15 15:22:44 515

原创 信奥一本通 1344:【例4-4】最小花费

思路:找最长“路”,这里的路是比较特殊的,就是一种转化关系,从A转化到某个结点V经过了某些路径,然后就变为了原来的K倍(如样例中1->2,K为0.99),那么这个K就是A到V的距离dis,而要保持dis尽量的大,因此初始值为0,后面逐渐更新,找到A到B的距离dis的最大值。...

2022-08-15 11:14:20 286

原创 信奥一本通 1380:分糖果(candy)

注意:那个样例解释是完全错误的****!!!!

2022-08-15 10:11:13 796 1

原创 博弈小游戏

做成的取石子博弈小游戏,有关证明比较复杂,有兴趣的可以看我上一条博文。这是一个基于2022牛客多校(七)一道博弈题目。

2022-08-09 20:34:59 1090

原创 2022牛客多校(七)K. Great Party博弈方法证明

一道博弈题目的严谨证明过程!

2022-08-09 12:01:27 173

原创 2022牛客多校(六)M. Z-Game on grid

一道博弈论题目,来源:牛客网。

2022-08-08 22:29:01 123

空空如也

空空如也

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

TA关注的人

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