2016年10月26日
摘要: 先考虑化简f函数 发现,f函数可以写成一个递归式,化简后可以先递推求出所有f函数的值, 所以可以先求出所有S函数的值,对于询问,O(1)回答 代码: //File Name: hdu5382.cpp //Author: long //Mail: 736726758@qq.com //Created 阅读全文
posted @ 2016-10-26 14:44 _fukua 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 知道对于一个数列,如果以x为左(右)端点,往右走,则最多会有log(a[x])个不同的gcd,并且有递减性 所以会分成log段,每一段的gcd相同 那我们可以预处理出对于每一个位置,以这个位置为左端点和右端点的时候,分别产生的gcd的值和分界处 那么这道题就可以用莫队算法了,O(n * sqrt(n 阅读全文
posted @ 2016-10-26 14:40 _fukua 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题意: 对于一个长度为n的排列P,如果P在所有长度为n的排列中,按照字典序排列后,在第s位,则P的value为s 现在给出一个长度为n的排列P,P有一些位置确定了,另外一些位置为0,表示不确定。 现在问,P的所有可能的排列的value之和 n <= 500000 思路: 对于一个可能的排列,它的va 阅读全文
posted @ 2016-10-26 14:31 _fukua 阅读(335) 评论(0) 推荐(0) 编辑