码迷,mamicode.com
首页 > 其他好文 > 详细

数学专题测试3

时间:2020-01-10 21:55:47      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:最小   另一个   limits   就是   测试   专题   its   统计   字典序   

A. young

  大概的意思是,将原图根据最高的二进制位分成两个部分,那么只要在这两个部分之间连一条边,统计这条边的方案数就可以统计贡献。

  为了辅助转移,可以考虑枚举最小边的权值,之后就可以根据最高位的不同继续分成两个集合,于是可以递归下去求解。

  然而并没有改。

B. Simple

  难点大概在于第一步。

  如果这个数中出现了循环节,那么一定不合法。如果没有循环节,那么将所有排列枚举出来,发现只有字典序最小的那一个数是合法的。于是所有没有循环节的数循环同构之后都必然会对答案贡献1。

  于是只要求没有循环节的数的个数,发现这个东西和约数有很大关系,推一推可以发现是莫比乌斯,于是直接容斥就好了。

  然后再推一推式子,发现要求的是$i*\mu(i)$的前缀和,卷上$id$就变成了$e$,于是直接杜教筛就好了。

C. 小 H 爱染色

  似乎没有想象中那么难。

  推式子,发现只需要$ans(n)=\sum\limits_{i=0}^{n-m} f(i)*C_{n-i}^{m}^{2}$,将相邻两项做差就是答案。

  由于组合数是个$m$次多项式,$f$是个m次多项式,所以ans是个$3*m+1$次多项式,所以只要求出前$3m+2$项就可以暴力插值出第N项。

  所以直接暴力NTT优化插值求出$f$然后暴力NTT求出$ans$就可以愉快的TLE了,然后去卡一年常就可以AC了。

  然而这似乎并不是正解。由于我们只需要求两项的值,所我们并不需要$ans$这个多项式,实际上只要在n处的取值正确就可以了。

  于是可以构造另一个多项式,使得这个多项式与$ans$在n处的取值相同即可,并且这个多项式的前$3m+2$项易于求出。

  所以可以省掉一次NTT。

  并不是很理解。

数学专题测试3

标签:最小   另一个   limits   就是   测试   专题   its   统计   字典序   

原文地址:https://www.cnblogs.com/hzoi-cbx/p/12178260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!