开学前的作文
by Starzxy
首先,光标移动范围不可能超出
算法一
枚举每一种不同的操作,时间复杂度
算法二
设
设
用
算法三
对于只有一行或者一列的情况,多枚举一些就能找到规律。(啊啊啊就在右(下)边我要拼命按右(下)按Fn!
可以获得20分,结合算法二可以获得70分。
算法四
若没有 Fn,最优操作序列必然是
由于加入了 Fn,我们就希望通过改变序列排列使得重复的尽可能多的靠在一起被 Fn 消去。
设
开学前的日历
by loriex
算法1
10pts,应该讲什么呢。。。
算法2
10pts,直接暴力搞每个操作,组合数预处理,
算法3
10pts,注意到
算法4
20pts,再次考虑每一个操作,定义新的操作
算法5
20pts,对于
算法6
30pts,对于
其本质是有
但是加上了距离限制
出题人很良心的设了梯度数据XD
开学前的涂鸦
by jiry_2
其实这题根本不是我出的..本来给了vfk一道傻逼题想弥补我从来没有出过A题的遗憾,结果和懒癌一样喜闻乐见的被改成了C。
这道题目不算特别难,但是不同的做法还是有很多的..这儿就简单介绍一下(其实是为了拖篇幅让它显得很厉害的样子)。
算法一
对于
期望得分10分。
算法二
对于
算法三
把额外加的边的两端作为关键点,然后建原树上这些节点的虚树,再把额外加的边连上去。这样就得到了一个点数至多
所以只要枚举所有生成子图,判断一下这一张图是否联通,如果联通就计算一下贡献然后累计到答案中。时间复杂度
算法四
其实题面是拿来误导你的,树边和额外边根本没有区别。所以可以直接把最终的图连出来,然后随便找一棵DFS树当成初始树然后非树边当成额外边。
这样的好处在于所有的额外边都变成了返祖边。这样算法三建出来的虚树点数至多为
再使用算法三中的算法,时间复杂度就变成了
算法五
算法三和算法四在处理的问题其实就是对于一张没有特殊性的图,怎么求它的联通生成子图的权值和。
这个显然是可以容斥的,因为这个算法对处理这个问题来说没有什么好的效果,就不多说了。时间复杂度
算法六
因为这张图的边数相对点数来说是很少的,只比点数多一点点,可以猜测可能联通生成子图的数目很少。所以算法三算法四的枚举大部分都是无用功。只要有一种快速的搜索方法也许就能得到比较高的分数。
接下来就是普及组内容咯..我们把所有边标个顺序,然后按照顺序来搜索删边或者不删边,如果发现删了这条边图已经不连通了,那么就退出。
这样时间复杂度最坏是
算法七
这个算法由鏼鏼鏼友情提供..
删掉一些边,然后判断一张图连不连通。这个问题大家是不是和眼熟呢?对,就是DZY loves chinese II。
在这题中我们可以把每一条非树边分配一个二进制位,每一条树边的权值为覆盖它的所有非树边的权值和,这样最多有
于是就可以枚举每一个不同的权值的子集,表示删掉这个子集中每种权值各一条边,消元一下看一下是否线性无关。如果用搜索的方式进行,复杂度最坏是
当然我们也可以用这个方法来优化算法六判断连不连通的部分,时间复杂度最坏可以降到
算法八
最后来讲一下标算。这个算法是叉姐玩出来的!
缩点之后的图依然是有树边和非树边的区分的。我们依然保留树的形态,把其它的边视为额外边,因为所有额外边都是返祖边,所以可以对所有额外边定义下端点和上端点。
令
至于复杂度,一个节点的状态数最多为
然而考虑合并的过程,考虑合并一个上端关键点个数为
容易发现的是
所以可以得到复杂度的一个上届是
这个算法的细节比较多,由于比赛时间比较紧,如果我每一个subtask都放十几个数据的话可能大部分考场上写标算的人都拿不到比暴力高的分数,所以除了最后一个subtask以外每一个subtask都是随机的五个数据左右,也是希望大家可以得到一个更高的分数。
当然最后一个subtask也只有20个不到的数据,可能会有一些错误的程序AC,到之后就要靠hack的力量咯。
当然我的标程也不见得是对的(大雾)。
最后扯点题外话,最近总有人说我毒瘤,我自己其实很不理解啊..1.毒瘤题基本都不是我出的。2.从数据的分配就可以看出其实我一点也不毒瘤啊。3.不管怎么样也不能再比赛结束看到自己的题目被很多人碾过去之后发出这样的叹息:
最后还是谢谢大家对UOJ的支持啦~(≧▽≦)/~!