摘要: 题意: 求1~n以内的无平方因子数的个数。思路: 利用类似筛选法把100010的素数标记出来(预处理) 然后通过容斥原理,把有平方因子数的个数算出来,那总个数-有平方因子个数 = 答案了 n之内有平方因子的数的个数sum =n/(2^2) + n/(3^2)+……+n/(k^2) - n/(2^2 * 3^2)-……+……。Tips: 所谓容斥原理,其实举一个简单的例子就是:一个班里a个同学喜欢吃苹果,b个同学喜欢吃香蕉。问这个班有多少个同学。 如果自己算的话就是a + b - a∩b 这题也一样,把含2的k次方的个数算出来,含3的k次方的个数算出来,含5的k次方的个数算出来,含... 阅读全文
posted @ 2013-03-17 09:46 Griselda. 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出n个数,让你用最少次数把所有的数都摞成一堆。 其中当把arr[i]摞在第j堆上时,得扣分arr[i] 题目有要求每个数上面不许摞超过k次,有m个k,让你求出m种情况下限制为k时的最优解,即最少扣分。思路: 经过多次推算会发现,如果要最后扣分最少,则应该尽量让arr[i]小的摞的次数比较多,而arr[i]大的摞的次数比较少。 然后还有一个规律是,如果想让扣分最少,那每次应该尽量让值大的堆上摞的次数比较多,本身则尽量少摞。即尽量满足 一次摞足够多的物品。Tips: 如果k = 1,则答案就是arr[1] + (arr[1]+arr[2]) + (arr[1]+arr[2]+... 阅读全文
posted @ 2013-03-17 08:44 Griselda. 阅读(273) 评论(0) 推荐(0) 编辑