摘要: 分析(官方题解): 假设根已确定,可以发现新树若合法,需满足以下性质:根节点是n;儿子的值不大于父亲;具有相同值的节点形成一条链,并且链不会发生“分叉”(即有多个最低点)。所以对于新树中有出现的值x,原树在新树x链的最低点应为x,而其他新值为x的点,原值应小于x。那么我们先将所有链的最低点放上对应值 阅读全文
posted @ 2016-07-31 17:41 shuguangzw 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 分析(官方题解): 一点感想: 首先上面那个等式成立,然后就是求枚举gcd算贡献就好了,枚举gcd当时赛场上写了一发O(nlogn)的反演,写完过了样例,想交发现结束了 吐槽自己手速慢,但是发了题解后发现,这题连O(n)欧拉函数前缀和的都卡了,幸亏没交,还是太年轻 对于官方题解说sqrt(n)优化( 阅读全文
posted @ 2016-07-31 14:26 shuguangzw 阅读(567) 评论(1) 推荐(0) 编辑
摘要: 分析(官方题解): 一点感想:(这个题是看题解并不是特别会转移,当然写完之后看起来题解说得很清晰,主要是人太弱 这个题是参考faebdc神的代码写的,说句题外话,很荣幸高中和faebdc巨一个省,虽然本弱渣高中都没搞过oi) 最短路不等于k,所以根本不存在最短路>=k的,因为存在的话,由最短路知识可 阅读全文
posted @ 2016-07-31 14:12 shuguangzw 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 分析:y是一个无平方因子数的平方,所以可以从sqrt(x)向上向下枚举找到第一个无平方因子比较大小 大家可能觉得这样找过去暴力,但实际上无平方因子的分布式非常密集的,相关题目,可以参考 CDOJ:无平方因子数 http://acm.uestc.edu.cn/#/problem/show/618 这个 阅读全文
posted @ 2016-07-31 13:54 shuguangzw 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 分析:最终的结果肯定会分成若干个区间独立,这些若干个区间肯定是独立的(而且肯定是一边倒,左右都一样) 这样想的话,就是如何把这n-1个值分成 k份,使得和最小,那么就是简单的排序,去掉前k大的(注意longlong) #include <cstdio> #include <cstdlib> #inc 阅读全文
posted @ 2016-07-31 13:45 shuguangzw 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 分析:就是判断简单的前缀有没有相同,注意下自身是m的倍数,以及vis[0]=true; #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <iostream> #include <alg 阅读全文
posted @ 2016-07-31 12:38 shuguangzw 阅读(197) 评论(0) 推荐(0) 编辑