20201029题解

t1

\(t\)组数据,\(inf(s)\)表示字符串s的无限重复。比较\(inf(a)\)\(inf(b)\)

\(|a|,|b|<=10^5,t<=10\)

直接把\(a\)\(b\)扩大二倍然后把短的重复对齐到长的比较即可。

\(std\)做法:比较\(a+b\)\(b+a\)

t2

给出\(n,m\)。问可以构造出多少序列\(x\)满足:

\(\sqrt{x_1}+\sqrt{x_2}+...+\sqrt{x_n}=\sqrt{m}\)

求方案数模\(1e9+7\).

先把\(\sqrt{m}\)提出最大的系数k,使其根号下剩的数不能表示成\(\sqrt{x}+\sqrt{x}\)的形式。
提k的方法:枚举完全平方数,判断m可以整除的最大ii,提出i。
或者质因数分解,若cnt>=2将k
=i*cnt/2。
然后问题转化成经典问题:
k个相同的球,放进n个不同盒子,可以有空盒的方案数。

\(C^{n-1}_{n+k-1}\)
组合数的\(O(n)\)求法:先预处理出阶乘,然后直接带入组合数公式,注意除法取模要求逆元。

posted @ 2020-10-29 19:22  zdxx  阅读(105)  评论(0编辑  收藏  举报