[51Nod1769]Clarke and math2(数论,组合数学) 题面 51Nod 题解 考虑枚举一个\(i_k\),枚举一个\(i\),怎么计算\(i_k\)对\(i\)的贡献. 把\(\frac{i}{i_k}\)拆掉,维护一个长度为\(k\)的数组,表示\(\frac{i_{k-1}}{i_{k}}\),对于每一个质因子,假设其出现次数为\(a\),那么就是把\(a\)个元素放进\(k\)个盒子里,盒子可以空,这个的方案数是\({a+k-1\choose k-1}={a+k-1\c…
[51Nod 1769]Clarke and math2 题面 51Nod 题解 对于一个数论函数\(f\),\(\sum_{d|n}f(d)=(f\times 1)(n)\). 其实题目就是要求\(g=f\times 1^k\). 考虑\(1^k(n)\)怎么求,因为\(1(n)\)是个积性函数,所以\(1^k(n)\)也是个积性函数. 我们考虑对于\(n\)的每个质因子\(p\)和它的次数\(r\),求出对应函数的值. 那么就相当于在每个不同的\(i_{j-1}\)及\(i_j\)中插入一个…
51Nod 1769 Clarke and math2 http://www.51nod.com/Challenge/Problem.html#!#problemId=1769 要算的是\(G=F*I^k\),考虑怎么求\(I^k\) \(I^k(n=\prod_{i=1}^mp_i^{e_i})=\prod_{i=1}^mC_{e_i+k-1}^{e_i}\) \(C_{e_i+k-1}^{e_i}\)显然可以直接求. 直接线性筛\(I^k\),然后卷\(F\). #include<bits/…
Solve the puzzle, Save the world! Problem Description In the popular TV series Heroes, there is a tagline "Save the cheerleader, Save the world!". Here Heroes continues, "Solve the puzzle, Save the world!".Finally, alien invaders visit…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4497 解题思路:将满足条件的一组x,z,y都除以G,得到x‘,y',z',满足条件gcd(x',y',x') = 1,同时lcm(x',y',x') = G/L. 特判,当G%L != 0 时,无解. 然后素数分解G/L,假设G/L = p1^t1 * p2^t2 *````* pn^tn. 满足上面条件的x,y,z一定为这样的形式. x' = p1^i1 * p2^i2 *```* pn^in.…
题意:给你N个数,求把他们的全排列加和为多少 思路:对于这道题,假设数字k1在第一位,然后求出剩下N-1位的排列数num1,我们就可以知道k1在第一位时 排列有多少种为kind1, 同理,假设数字k2在第一位然后求出剩下N-1位的排列数num2, 我们就可以知道k2在第一位时的排列有多少种为kind2, k1*num1+k1*num2.....+kn*numn 就是我们要求的这些数对第一位的所有贡献, 我们知道第一位的贡献=对第二位的贡献=第三位的贡献..... 把所有贡献加和,就能求出结果 知…
B. Ralph And His Magic Field time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Ralph has a magic field which is divided into n × m blocks. That is to say, there are n rows and m columns on th…
题意非常easy,求不是那么好求的,k非常大 要操作非常多次,所以不可能直接来的.印象中解决操作比較多无非线段树 循环节 矩阵 组合数等等吧,这道题目 也就仅仅能多画画什么 的了 就以第一个案例为主吧 . 3 1 2 3 k我们根据画的次数来自己定好了 以下的每一个数表示这个位置的 数由最初的 数组num[]中多少个数加起来得到的 当k为0的时候呢.就是 1 1 1 k为1的时候呢 1 2 3 k为2的时候呢 1 3 6 那么k为3的时候 1 4 10 这里看一下 从数组下标0開始.那么事实上就…
题目 实际上就是要求\(f*I^k\). 因为\(I^k\)是一个积性函数,所以我们只需要考虑如何求\(I^k(p^a)\). 把这个东西转化成一个长度为\(k\)的序列,每一位是\(\frac{i_k}{i_{k-1}}\),这东西就变成了长度为\(k\)的值域为\([0,a]\)的单调不降序列的方案数,也就是把 \(a\)个球放入\(k\)个盒子里的方案数,即\(a+k-1\choose a\). #include<bits/stdc++.h> using namespace std; i…
LINK:成绩比较 大体思路不再赘述 这里只说几个我犯错的地方. 拉格朗日插值的时候 明明是n次多项式 我只带了n个值进去 导致一直GG. 拉格朗日插值的时候 由于是从1开始的 所以分母是\((i-1)!(n-1)\) 但是一直写成i! 心态炸裂. 还有就是 明明是分母 要求逆啊 直接乘 然后人没了. 最后是 关于答案的统计 由于被碾压的同学 每一科分数永远小于B神 所以 可以不考虑顺序的 将成绩分配给他们. 而 没有被碾压的同学 不可以直接分配 对于每一种方案来说 他们都是可以选择自由分配的…