摘要:
题目链接 题目解析 根据$k$的范围,不难想到我们$2^k$枚举所有新边是否在$MST$中,然后再加入原始边,计算出答案取最值。 但是这样做复杂度过不去。 先考虑把$k$条新边加进去,然后再按照$Kruskal$算法加入$n-1-k$条原始边,形成一棵树。由于原始边的权值各不相同,那么目前加入的这些 阅读全文
摘要:
(博客园第$100$篇博客合影~ 题目链接 题目解析 被拿来作为考试题,我以为我会做来着,然而并不会(怎么好多人都做过这道题,果然是我太菜了嘤嘤嘤 (三种做法的代码都放在了最后面 法一 如果你什么都不会,就像我一样,那么可以先敲出一个大暴力出来。 $a[i][j]\(表示点\)(i,j)$前面一列最 阅读全文
摘要:
题目链接 题目解析 啊咧,是一道卡时间卡空间的好题目(划掉 我们可以先找到最后那只小动物最多能走过的结点,就是和左上角相连的一整个四联通连通块。(以下所有连通块都是指四联通 然后发觉这个连通块就可以让所有的小动物随便走了,因为无论如何走,最后总会被最后一只小动物覆盖。 那么把和这个连通块相连的其它连 阅读全文
摘要:
题目链接 算法分析 (我似乎之前学过两遍$prufer$,但是我咕咕咕了,而且板子也不知道丢到哪里去了(难怪我这么菜 树 → prufer 序列 算法流程: 找到树中编号最小的入度为$1$的结点(叶结点) 删去该结点,并将与该结点相邻结点的标号加入$prufer$序列 重复$1,2$操作$n-2$次 阅读全文
摘要:
题目链接 题目解析 刚开始想到了加边然后破圈法,但我似乎不会统计答案。 有个结论:所有$MST$中,同一权值的边的个数是不会变的。 简单说明一下: 我们想想$Kruskal$的算法流程,是按照边权从小到大进行排序加边,然后直到整个图联通我们就得到了$MST$。如果再选一个$MST$出来,假设我们删掉 阅读全文
摘要:
题目链接 题目解析 简单理解一下题意,发现题意就是尾字母和首字母相同的两个长度为$2$的单词可以拼在一起,问是否能把所有的单词拼成一个长串。 把字母看成点,容易发现一个单词描述了一条有向边,而题目要求就是问你是否有一条路径,每条边经过次数有且仅有一次。 和 这道题有点像,不过那道题是欧拉回路,这道题 阅读全文
摘要:
(其实我不会念这个算法的名字 题目链接 题目解析 我如果说我现在才会欧拉路还有救吗 毕竟我关于欧拉路径的题只做过这个-骑马修栅栏,其他时候最多做到过判断是否是欧拉路的题,并没有输出方案过 考试的时候脑子里完全没有蹦出来这四个字过,然后自己在那儿瞎写(从零开始自己推这个算法,不过我这么菜当然是没有成功 阅读全文
摘要:
简化题意:求至少有一条线段覆盖的最大区间和没有线段覆盖的最大区间(注意题目是左闭右开区间(好像左开右闭也可以?)) 第一反应:线段树(wu) 这道题做法好像很多的样子啊。 虽然以这道题“渺小”的数据范围来说,不需要特别优秀的解法。 法一 比较直观的一个方法。 对所有的线段按照左端点从小到大进行排序。 阅读全文
摘要:
题目链接 题意简述 Description 小Y 有一个$n$点的无向图,图中的每个点从$1$到$n$标号。图中还有$m$条边,每条边有一个长度。 小Y 有$Q$个询问,每次询问两个点的所有路径中最长的边最小值是多少若这两个点之间没有任何路径,输出$-1$。 Input 第一行三个整数$n,m,Q$ 阅读全文
摘要:
第一类问题:当前决策对未来的贡献只与当前决策有关 SDOI2008 Sue的小球 关路灯 BalticOI 2009 Day1甲虫 小结: 新增一维状态表示过去决策的影响,状态数过大无法承受。于是将影响在过去决策时计算,通过状态传递。 影响是必然的,后面无论发生什么,都会对未来结果产生贡献,即这个影 阅读全文