m113

今天的比赛颇有感触,因此来写一下题解:函数

T1能够发现一些规律是:面积扩大的速度显然比周长扩大的速度快,而后就能够枚举周长来看能为成的面积,其实最优的状况必定是六边型的状况,经过手膜咱们能够发现对于边长是c的六边型,每增长一个周长,也就是增长6次就会变成c+1的六边型,这其中的六次增长每次所围成的面积的增长量分别是c-1,c,c,c,c,c+1,具体的画一下图就能够看出来了!测试

 

 然而考试的时候我并无画图,我来大概的说一下考试的思路,其实若是不想看能够直接看下一道T2,能够自动跳过,反正也不是啥正解,并且WA了spa

考试的时候我就想必定是六边型的状况是最优的,可是我是枚举中间的最长的那个的长度,而后就会发现这其中就是一个多峰函数(注意不严谨,打表发现会出现断崖式降低的状况,反正对拍的时候三分锅了!)而后我就经过找到最优的中间值来求解这个问题,可是我少考虑了一种极其sb的状况就是n==3的时候,会发现,我只会构造类6边形的的图形,因此锅了(此时发现$n==3$锅了的时候是距考试结束还有4分钟的时候,心态已经没了!)blog

正解就是上面说的,个人代码打的比较鬼畜!bfc

 

 T2 其实本身以为挺大神的,大佬勿喷!im

T2咱们把它建出来边就会发现他是一棵内向基环树:就是这样的一棵树d3

 

 然而在题目的部分测试环境中,会由于其中有不优的边而变成一棵数,那么咱们想一下一个点会不会被取的状况:其实对于一棵树来讲咱们均可以取到,(注意又是不严格的,准确的说是除了叶子节点都能取到)由于要取他只会取他的父亲,可是他自己的数量并不改变,对于树的状况就直接硬搞就能够了(然而我太弱了,考试的时候硬搞都写错了!)db

那么对于一棵基环树咱们应该咋办能!套路式的断掉一条环上的边,那么咱们究竟断哪条边呢? img

咱们能够对于一棵基环树若是环上的边小于树上的边,那么这个边必定不优,就能够断掉这条边,从而变成一棵树,而后就能够硬搞了,比赛

对于没有这种状况的,就要找环上的边与树上的边的权值差最小的边,而后干掉他!

这样作显然是对的!

至于实现,咱们不妨维护每个点的最大的和次大的儿子,而后直接dfs,就这样就能够了;维护最大和次大的思路仍是没有想到!

T3 鸽鸽鸽咕咕咕!

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息