有 个 (),每次从所有未选的数中等概率随机选出一个,接在最后面,求连续 个互不相同的数的组数的期望。
,。
P6694 强迫症 做题记录
一天,他问了小 H 和小 W 这样一个问题:
如果在一个圆上有 n 个不同的点,依次标号为 1 到 n,有多少种方案能把它们连成一棵树?
小 H & 小 W:这不是sb题吗?
小 L:那如果连边不能相交呢?
小 H & 小 W:这不是sb题吗?
小 L:那如果把「树」换成「图」呢呢?
小 H & 小 W:这不是sb题吗?
小 L:那如果给每个点一个权值 ai,连接 (i,j) 的边权值为 ai×aj,求满足上面的图的期望所有边权值之和呢?
小 H & 小 W:这不是sb题吗?
小 L 见自己辛苦做了许久都没写出的题目被 dalao 轻松秒杀后十分郁闷。为了安慰他,你需要帮他做出这个问题。
注意
- 两条边在端点处不视作相交。
- 没有边的图(即只有 n 个点,之间没有边相连)也合法
- 点按顺时针从 1 到 n 编号。
- 图中不能有自环和重边
P3321 [SDOI2015]序列统计 做题记录
小C有一个集合 S,里面的元素都是小于 m 的非负整数。他用程序编写了一个数列生成器,可以生成一个长度为 n 的数列,数列中的每个数都属于集合 S。
小C用这个生成器生成了许多这样的数列。但是小C有一个问题需要你的帮助:给定整数 x,求所有可以生成出的,且满足数列中所有数的乘积 mod m 的值等于 x 的不同的数列的有多少个。
小C认为,两个数列 A 和 B 不同,当且仅当 ∃i s.t. Ai=Bi。另外,小C认为这个问题的答案可能很大,因此他只需要你帮助他求出答案对 1004535809 取模的值就可以了。
CF773F Test Data Generation 做题记录
生成测试数据并非简单的任务!生成大的随机数据通常不能够完全保证解法的正确性。
举个例子,考虑以前 Codeforces round 的一道题。它的输入格式如下:
第一行是一个整数 n(1≤n≤maxn) 表示集合的大小,第二行包含 n 个互不相同的整数 a1,a2,…,an(1≤ai≤maxa) 表示集合中的元素,升序排列。
如果你不注意题目的解法,看起来生成一个好的测试数据是非常容易的。令 n=maxn,从 1∼maxa 中生成 n 个不相同的数,并排序。但是马上你就会知道这不那么简单。
下面是这道题目的真实解法。令 g 为 a1,a2,…,an 的最大公约数,令 x=an/g−n,如果 x 是奇数输出
Alice,如果 x 是偶数输出Bob考虑这道题两个错误的解法,它们与正解只在计算 x 中不同。
第一个解法令 x=an/g (不减去 n)
第二个解法令 x=an−n(不除以 g)
如果一个测试数据令这两个解法都输出错误的答案,称这个数据是有趣的。
给定 maxn,maxa,q 求满足限制且有趣的测试数据的数量对 q 取模的结果。
1≤maxn≤30000,maxn≤maxa≤109,104≤q≤105+129
