AE酱的摸鱼记录1(2021.11.7-9)

Codeforces 1385E Directing Edges

题目大意
给你一张图,一部分边是已经定向的,一部分边为定向。要求给未定向的边定向,使得形成的有向图是一个DAG。
题解
只用定向的边建图,跑一遍拓扑排序,若有环则不可能。否则就给未定向的边从拓扑序小的点向拓扑序大的点连边。

Codeforces 439E Devu and Birthday Celebration

题目大意
\(n\) 个糖果分给 \(f\) 个人,求每个人都分到糖果且每个人分到的糖果数的gcd为1的方案数。
题解

\[ans=\sum_{a_1=1}^n\sum_{a_2=1}^n\cdots\sum_{a_f=1}^n[a_1+a_2+\cdots+a_f=n][\gcd(a_1,a_2,\cdots,a_f)=1]\\ =\sum_{a_1=1}^n\sum_{a_2=1}^n\cdots\sum_{a_f=1}^n[a_1+a_2+\cdots+a_f=n]\sum_{d|\gcd(a_1,a_2,\cdots,a_f)}\mu(d)\\ =\sum_{d|n}\mu(d)\sum_{a_1=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum_{a_2=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\cdots\sum_{a_f=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\left[a_1+a_2+\cdots+a_f=\left\lfloor\frac{n}{d}\right\rfloor\right]\\ =\sum_{d|n}\mu(d)\binom{\frac{n}{d}-1}{f-1} \]

时间复杂度 \(O(n+q\sqrt n)\)

题目大意
靶场里面有一个垂直于水平面的板子,目标会从这个板子上出现。我们使用笛卡尔坐标系来描述这个板子和目标,具体的,第 \(i\) 个板子的坐标是\((x_i,y_i)\),它会在第 \(t_i\) 秒出现并立刻消失。国王有可能打中一个目标,当且仅当国王的枪口在这一刻恰好指向它。如果在这一刻枪口指向它,那么打中它的概率为 \(p_i\) 。国王枪口移动的速度为每秒一个单位长度,(注:枪口可以不沿着坐标轴移动),同时枪口可以再任何时刻停下来不移动。现在给你所有目标的信息,求国王期望最多得到多少分。

题解

点数只有 1000。那么对于 \(i\) 号点和 \(j\) 号点,如果 \(dis(i,j)\leq t_j-t_i\),就从 \(i\)\(j\) 连边。显然形成一个DAG,然后 \(i\) 号点点权是 \(p_i\),按拓扑序dp,\(dp[v]=\max(dp[v],dp[u]+p_v)\)。时间复杂度 \(O(n^2)\)

CodeForces 839D Winter is here

题目大意
给定一个序列 \(\{a_n\}\),定义一个长为 \(k\) 的子序列\(a_{i_1},a_{i_2},\cdots,a_{i_k}\)的价值为 \(k\cdot\gcd(_{i_1},a_{i_2},\cdots,a_{i_k})[\gcd(_{i_1},a_{i_2},\cdots,a_{i_k})>1]\),求所有子序列的价值的和。

题解
套路题。设 \(m=\max_{i=1}^n a_i\),则

\[ans=\sum_{k=1}^nk\sum_{d=2}^m d \sum_{i_1\lt i_2\lt \cdots \lt i_k}[\gcd(a_{i_1},a_{i_2},\cdots,a_{i_k})=d]\\ =\sum_{k=1}^nk\sum_{d=2}^m d \sum_{i_1\lt i_2\lt \cdots \lt i_k}\left[\gcd\left(\frac{a_{i_1}}{d},\frac{a_{i_2}}{d},\cdots,\frac{a_{i_k}}{d}\right)=1\right]\\ =\sum_{k=1}^nk\sum_{d=2}^m d \sum_{i_1\lt i_2\lt \cdots \lt i_k}\sum_{p|\gcd\left(\frac{a_{i_1}}{d},\frac{a_{i_2}}{d},\cdots,\frac{a_{i_k}}{d}\right)} \mu(p) \]

\(f(d)=\sum_{i=1}^n [d|a_i]\),则

\[ans=\sum_{k=1}^nk\sum_{d=2}^m d \sum_{p=1}^{\lfloor\frac{m}{d}\rfloor} \mu(p) \binom{f(dp)}{k}\\ =\sum_{d=2}^m d \sum_{p=1}^{\lfloor\frac{m}{d}\rfloor} \mu(p)\sum_{k=1}^n k\binom{f(dp)}{k} \]

这个东西应该也可以算,但还有更简单的方法。

\(g(i)\) 表示 \(\gcd\)\(i\) 的子序列的数量,则

\[g(i)=\sum_{k=0}^{f(i)} k\binom{f(i)}{k}-\sum_{j=2}^{\lfloor\frac{m}{i}\rfloor} g(ij)\\ =f(i)2^{f(i)-1}-\sum_{j=2}^{\lfloor\frac{m}{i}\rfloor} g(ij) \]

这里用了一下容斥原理,注意计算顺序。

最后

\[ans=\sum_{i=2}^m g(i)\cdot i \]

Codeforces 451E Devu and Flowers

题目大意
\(n\) 个盒子,第 \(i\) 个盒子里有 \(a_i\) 个球,每个盒子里的球是相同的,盒子与盒子之间的球是不同的。求取出 \(s\) 个球的方案数。 \((1\leq n\leq 20,0\leq s\leq 10^{14},0\leq a_i\leq 10^{12})\)

题解
显然可以用生成函数做,答案为

\[[s]\prod_{i=1}^n(1+x+x^2+\cdots+x^{a_i})\\ =[s]\prod_{i=1}^n\frac{1-x^{a_i+1}}{1-x}\\ =[s]\left(\frac{1}{1-x}\right)^n\prod_{i=1}^n(1-x^{a_i+1}) \]

因为 \(n\) 只有20,所以后一半连乘可以 \(O(2^n)\) 暴力展开得到系数。设后一半的 \(i\) 次项系数为 \(c_i\),则我们只需要计算

\[[s-c_i]\left(\frac{1}{1-x}\right)^n=[s-c_i]\left(\sum_{i=0}^\infty x^i\right)^n \]

考虑使用组合意义来计算前一半的 \(m\) 次项系数,则相当于从 \(n\) 个装有无限多球的盒子中取出 \(m\) 个球的方案数,使用隔板法可以计算出方案数为 \(\binom{n+m-1}{n-1}\)

Codeforces 540D Bad Luck Island

题目大意
\(r\) 个石头,\(s\) 把剪刀,\(p\) 块布,他们之间会等概率随机相遇,相遇时按石头剪刀布游戏规则干掉输的物品,问最终只剩同种物品的概率是多少。
题解
平凡的概率dp,只要考虑 \(dp[r][s][p]\) 是如何转移到 \(dp[r-1][s][p],dp[r][s-1][p],dp[r][s][p-1]\) 即可。

posted @ 2021-11-09 21:50  AE酱  阅读(109)  评论(1编辑  收藏  举报