用户工具

站点工具


2020-2021:teams:farmer_john:2020牛客暑期多校第七场

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
2020-2021:teams:farmer_john:2020牛客暑期多校第七场 [2020/08/07 16:26]
2sozx [题解]
2020-2021:teams:farmer_john:2020牛客暑期多校第七场 [2020/10/07 21:24] (当前版本)
jjleo
行 1: 行 1:
-======比赛名称======+======2020牛客暑期多校第七场======
 [[https://​ac.nowcoder.com/​acm/​contest/​5672|比赛链接]] [[https://​ac.nowcoder.com/​acm/​contest/​5672|比赛链接]]
 =====A.===== =====A.=====
行 8: 行 8:
  
 =====B.===== =====B.=====
-**solved by 2sozx**+**solved by 2sozx JJLeo**
 ====题意==== ====题意====
 $t$ 个询问,每个询问包含两个数 $n,​m$,问将 $n\times m$ 个数分成最少多少个数使得这些数能够组合成 $n$ 个 $m$ 和 $m$ 个 $n$。$n,​m\le 10^4$ $t$ 个询问,每个询问包含两个数 $n,​m$,问将 $n\times m$ 个数分成最少多少个数使得这些数能够组合成 $n$ 个 $m$ 和 $m$ 个 $n$。$n,​m\le 10^4$
行 54: 行 54:
 **solved by JJLeo** **solved by JJLeo**
 ====题意==== ====题意====
-求$\sum$+求$\sum_{i=1}^{k}\sum_{j=1}^{n}{[i \mod j \le 1]} \pmod{10^9+7}$。$(n,​k \le 10^{12})$
 ====题解==== ====题解====
 +直接数论分块即可。注意细节!!!
 =====I.===== =====I.=====
-**upsolved by **+**upsolved by 2sozx JJLeo**
 ====题意==== ====题意====
 +$n$个不同的点的生成森林中,每个点权值为该点的度数和平方,问所有生成森林的所有点的权值和是多少,$T$组数据。$(n,​T \le 5000)$
 ====题解==== ====题解====
 +每个点都是对称的,因此只需固定一个点最后乘以$n$即可。首先设$h_i$为$i$个不同的点的生成森林数量,利用purfer序列可以得到$O(n^2)$递推式$$h_i=\sum_{j=0}^{i-1}\binom{i-1}{j}j^{(j-2)}$$接下来设$g_i$为我们所考虑的点所在的树大小为$i$时所有情况该点贡献的权值和,考虑将该点固定为根,然后枚举该点的度数,利用prufer序列算出方案数,再乘以度数的平方和,得到$O(n^2)$递推式$$g_i=\sum_{j=1}^{i-1}\binom{i-2}{j-1}{(i-1)}^{i-2-(j-1)}$$最后设$f_i$为节点数为$i$时一个固定节点对答案的贡献,考虑枚举该点所在树的大小,则剩下的节点组成森林,可以得到$O(n^2)$递推式$$f_i=\sum_{j=2}^{j=i}\binom{i-1}{j-1}g_jh_{i-j}$$对于每个询问,我们只需$O(1)$输出$nf_n$即可。
 =====J.===== =====J.=====
 **upsolved by JJLeo** **upsolved by JJLeo**
行 68: 行 68:
 一共有$26$个对象,每个对象有$26$个指针,此外还有还有$26$个全局指针,现在有$n$条指令,每条指令指明一些指针可以访问一些指针所指向的对象,问以任意顺序重复这些指令无数次,每个全局指针有可能指向的对象的集合。 一共有$26$个对象,每个对象有$26$个指针,此外还有还有$26$个全局指针,现在有$n$条指令,每条指令指明一些指针可以访问一些指针所指向的对象,问以任意顺序重复这些指令无数次,每个全局指针有可能指向的对象的集合。
 ====题解==== ====题解====
-题意理解有点小问题,以为一个指针同一时刻可以指向多个对象,然后就去$dfs$,直接暴毙。\\+题意理解有点小问题,以为一个指针同一时刻可以指向多个对象,然后就去dfs,直接暴毙。\\
 只需要对每个指针状压一下能指向哪些对象,然后不断进行$OR$操作直到一轮不发生变化即可。 只需要对每个指针状压一下能指向哪些对象,然后不断进行$OR$操作直到一轮不发生变化即可。
 =====记录===== =====记录=====
行 82: 行 82:
 =====总结===== ​ =====总结===== ​
   * MJX要练练英语加快读题速度   * MJX要练练英语加快读题速度
 +  * CSK重写J到最后RE了(悲),并且比赛前一定要休息好,不然就会$2h$就宕机
 +  * ZYF要练习更好地理解题意(尤其是大模拟),避免和空气斗智斗勇。另外要加强知识的理解,例如因为对prufer序列一知半解而把I题完全想歪。
2020-2021/teams/farmer_john/2020牛客暑期多校第七场.1596788760.txt.gz · 最后更改: 2020/08/07 16:26 由 2sozx