有 $n \times m$ 个物品,让你给一个划分方案,使得既能分成 $n$ 组 $m$ 个又能分成 $m$ 组 $n$ 个
发现最优划分类似于 gcd 的做法,若 $n<m$ , 我们就用 $n$ 去补 $m$ ,补不了的部分就转化为了 $m \% n,n$ 的问题,递归处理。
问平方和是否为完全平方数
开始用python写高精度结果T了(人家用cin都T了更何况py),打了个表发现就只有1和24满足
一下数对是合法的
1、$(1,k)$是合法的
2、如果$(n,k)$合法,那么$(n+k,k)$合法
3、如果$(n,k)$合法,那么$(nk,k)$合法
给定范围$n,k \leq 10^{12}$,求范围内所有合法的数对
容易发现$k$是不变的,那么只需对每个$k$求出$n$的个数
容易发现所有$(1+tk,k)$都是合法的
除此之外所有合法的必然是$k$的倍数,而且$k$的倍数一定能被凑出来
因此合法的只有$(tk,k)$和$(1+tk,k)$其中$t$为非负整数
只需要整除分块即可
记得特判$n,k$分别为$1$的情况= =
定义一个无根树的权值为所有点的度数的平方的和,求有标号的$n$个点形成的所有森林的权值的和。
设$f[i]$表示$i$个带标号的节点有多少种不同的森林,递推式为$f[i]=\sum_{j=1}^i C_i^j*f[i-j]*j^{j-2}$。
设$w[i]$表示$i$个点能形成的所有无根树的权值和,考虑每一个点以及不同的度数对答案的贡献,递推式子为:$w[i]=i*\sum_{d=1}^{i-1}d^2*C_{n-2}^{d-1}*(n-1)*(n-2-(d-1))$
那么最终答案$ans[i]$就是$ans[i]=\sum_{j=1}^iC_i^j*(j^{j-2}*ans[i-j]+f[i-j]*w[i])$
0~1:40 过三题 之后垃圾时间
wxg: 这场发挥很差,c一直执着于一个错误算法。
hxm:菜是原罪,$H$调了很久才调出来特判没判,$A$是模拟退火而却不能正确写对
fyh:J是真的读不懂题,第一英语差,第二额是本身对指针,对象之类的玩意不熟悉。以后帮队友调题的时候要注意几点:特殊情况(n=1等等是否取模!!)