最近几次考试题
NOI题乱做

BZOJ2005能量采集

HJWJBSR posted @ 2015年6月09日 19:17 in 题解 , 976 阅读

本来打算放到“数学相关”里面,但是太影响排版了,而且这种神题还是单独放比较好。

一共有四种做法:

首先题目可以化成一个2*ΣΣgcd(i,j)-nm是显然的,至于前面的求法听说有好几种做法

  做法一:From KZF:

       首先线性筛出欧拉函数,然后直接求解,时间也是线性的。

  做法二:From 小狗:

   对于左式可以将其化成

     然后[n/x][m/x]可以分成O(sqrt(n)+sqrt(m))段,可以预处理u(x)前缀和在根号时间内求解

     所以代入kzf的第一行的式子中O(nsqrt(n))级别的。

  做法三:From wulala:

     要求每个数是多少个数对的gcd,可以用类似容斥但更SB的方法:首先最多这个数可以作为(n/i)*(m/i)个数对的公因数,然后减去所有gcd是i的倍数的数对,所以时间复杂度就是Σn/i,也就是调和级数,O(n log n)

  做法四:From KZF:

       可以先预处理出n^(2/3)的F(n),然后将KZF最后面的那个式子分成根号块,每块求值据说是O(n^(1/6)),然后复杂度就喜闻乐见O(n^(2/3))

    神奇的是,上面四种做法复杂度都不一样= =,但是水B的数据范围应该是都能让过的。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter