P6596 How Many of Them 做题记录

在无向连通图中,若一条边被删除后,图会分成不连通的两部分,则称该边为割边。

求满足如下条件的无向连通图的数量:

  1. nn 个结点构成,结点有标号。
  2. 割边不超过 mm 条。
  3. 没有重边和自环。

答案对 109+710^{9}+7 取模。

2n50,0mn(n1)22≤n≤50,0≤m≤\dfrac{n(n-1)}{2}

阅读全文 »

P6694 强迫症 做题记录

一天,他问了小 H 和小 W 这样一个问题:

如果在一个圆上有 nn 个不同的点,依次标号为 11nn,有多少种方案能把它们连成一棵树?

小 H & 小 W:这不是sb题吗?

小 L:那如果连边不能相交呢?

小 H & 小 W:这不是sb题吗?

小 L:那如果把「树」换成「图」呢呢?

小 H & 小 W:这不是sb题吗?

小 L:那如果给每个点一个权值 aia_i,连接 (i,j)(i,j) 的边权值为 ai×aja_i\times a_j,求满足上面的图的期望所有边权值之和呢?

小 H & 小 W:这不是sb题吗?

小 L 见自己辛苦做了许久都没写出的题目被 dalao 轻松秒杀后十分郁闷。为了安慰他,你需要帮他做出这个问题。

注意

  1. 两条边在端点处不视作相交
  2. 没有边的图(即只有 nn 个点,之间没有边相连)也合法
  3. 按顺时针从 11nn 编号。
  4. 图中不能有自环和重边
阅读全文 »

P3321 [SDOI2015]序列统计 做题记录

小C有一个集合 SS,里面的元素都是小于 mm 的非负整数。他用程序编写了一个数列生成器,可以生成一个长度为 nn 的数列,数列中的每个数都属于集合 SS

小C用这个生成器生成了许多这样的数列。但是小C有一个问题需要你的帮助:给定整数 xx,求所有可以生成出的,且满足数列中所有数的乘积 mod m\bmod \ m 的值等于 xx 的不同的数列的有多少个。

小C认为,两个数列 AABB 不同,当且仅当 i s.t. AiBi\exists i \text{ s.t. } A_i \neq B_i。另外,小C认为这个问题的答案可能很大,因此他只需要你帮助他求出答案对 10045358091004535809 取模的值就可以了。

阅读全文 »

CF923E Perpetual Subtraction 做题记录

黑板上有一个整数 xx,初始时它的值为 [0,n][0,n] 中的某一个整数,其中为 ii 的概率是 pip_i

每一轮你可以将 xx 完全随机地替换成 [0,x][0,x] 中的一个数。

mm 轮后,对于每个 i[0,n]i\in[0,n]x=ix=i 的概率。

n105n \le 10^5m1018m \le 10^{18},答案对 998244353998244353 取模。

阅读全文 »

CF773F Test Data Generation 做题记录

生成测试数据并非简单的任务!生成大的随机数据通常不能够完全保证解法的正确性。

举个例子,考虑以前 Codeforces round 的一道题。它的输入格式如下:

第一行是一个整数 n(1nmaxn)n(1\leq n \leq max_n) 表示集合的大小,第二行包含 nn 个互不相同的整数 a1,a2,,an(1aimaxa)a_1,a_2,\dots,a_n(1\leq a_i\leq max_a) 表示集合中的元素,升序排列。

如果你不注意题目的解法,看起来生成一个好的测试数据是非常容易的。令 n=maxnn=max_n,从 1maxa1\sim max_a 中生成 nn 个不相同的数,并排序。但是马上你就会知道这不那么简单。

下面是这道题目的真实解法。令 gga1,a2,,ana_1,a_2,\dots,a_n 的最大公约数,令 x=an/gnx=a_n/g-n,如果 xx 是奇数输出 Alice,如果 xx 是偶数输出 Bob

考虑这道题两个错误的解法,它们与正解只在计算 xx 中不同。

第一个解法令 x=an/gx = a_n/g (不减去 nn

第二个解法令 x=annx=a_n-n(不除以 gg

如果一个测试数据令这两个解法输出错误的答案,称这个数据是有趣的。

给定 maxn,maxa,qmax_n, max_a, q 求满足限制且有趣的测试数据的数量对 qq 取模的结果。

1maxn30000,maxnmaxa109,104q105+1291\leq max_n\leq 30000, max_n\leq max_a\leq 10^9, 10^4\leq q\leq 10^5+129

阅读全文 »

CF623E Transforming Sequence 做题记录

对于一个整数序列 {a1,a2,,an}\{a_1, a_2, \ldots, a_n\},我们定义它的变换为 {b1,b2,,bn}\{b_1, b_2, \ldots, b_n\},其中 bi=a1a2aib_i = a_1 | a_2 | \ldots | a_i,其中 | 表示二进制按位或运算。

现在求有多少个长为 nn 的序列 aa,满足 1ai2k11\leq a_i \leq 2^k - 1,使得它的变换 bb严格单调递增的,对 109+710^9+7 取模。

1n10181\leq n \leq 10^{18}1k3×1041\leq k \leq 3 \times 10^4

阅读全文 »

CF553E Kyoya and Train 做题记录

给定一张 nn 个点 mm 条边的无重边无自环的有向图,你要从 11 号点到 nn 号点去。

如果你在 tt 时刻之后到达 nn 号点,你要交 xx 元的罚款。

每条边从 aia_ibib_i,走过它需要花费 cic_i 元,多次走过同一条边需要多次花费。

走过每条边所需的时间是随机的,对于 k[1,t]k \in [1,t]pi,k105\frac{p_{i,k}}{10^5} 表示走过第 ii 条边需要时间 kk 的概率。因此如果多次走过同一条边,所需的时间也可能不同。

你希望花费尽可能少的钱(花费与罚款之和)到达 nn 号点,因此每到达一个点,你可能会更改原有的计划。

求在最优决策下,你期望花费的钱数。

n50n \le 50m100m \le 100t2×104t \le 2 \times 10^4x,ci106x,c_i \le 10^6k=1tpi,k=105\sum_{k=1}^t p_{i,k} = 10^5,答案精度误差 106\le 10^{-6}

阅读全文 »

CF528D Fuzzy Search 做题记录

给出一个门限值 kk 和两个只包含 AGCT\texttt{AGCT} 四种字符的基因串 SSTT。现在你要找出在下列规则中 TTSS 中出现了几次。

TTSS 的第 ii 个位置中出现,当且仅当把 TT 的首字符和 SS 的第 ii 个字符对齐后,TT 中的每一个字符能够在 SS 中找到一个位置偏差不超过 kk 的相同字符。

即对于所有的 j[1,T]j \in[1,|T|],都存在一个 p[1,S]p \in [1,|S|] 使得 (i+j1)pk|(i+j-1)-p| \leq kSp=TjS_p=T_j

例如 k=1k=1 时,ACAT\texttt{ACAT} 出现在 AGCAATTCAT\texttt{AGCAATTCAT}22 号, 33 号和 66 号位置。 (编号从 11 开始。)

阅读全文 »