在无向连通图中,若一条边被删除后,图会分成不连通的两部分,则称该边为割边。
求满足如下条件的无向连通图的数量:
- 由 个结点构成,结点有标号。
- 割边不超过 条。
- 没有重边和自环。
答案对 取模。
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
CF553E Kyoya and Train 做题记录
给定一张 n 个点 m 条边的无重边无自环的有向图,你要从 1 号点到 n 号点去。
如果你在 t 时刻之后到达 n 号点,你要交 x 元的罚款。
每条边从 ai 到 bi,走过它需要花费 ci 元,多次走过同一条边需要多次花费。
走过每条边所需的时间是随机的,对于 k∈[1,t],105pi,k 表示走过第 i 条边需要时间 k 的概率。因此如果多次走过同一条边,所需的时间也可能不同。
你希望花费尽可能少的钱(花费与罚款之和)到达 n 号点,因此每到达一个点,你可能会更改原有的计划。
求在最优决策下,你期望花费的钱数。
n≤50,m≤100,t≤2×104,x,ci≤106,∑k=1tpi,k=105,答案精度误差 ≤10−6。
CF528D Fuzzy Search 做题记录
给出一个门限值 k 和两个只包含 AGCT 四种字符的基因串 S 和 T。现在你要找出在下列规则中 T 在 S 中出现了几次。
T 在 S 的第 i 个位置中出现,当且仅当把 T 的首字符和 S 的第 i 个字符对齐后,T 中的每一个字符能够在 S 中找到一个位置偏差不超过 k 的相同字符。
即对于所有的 j∈[1,∣T∣],都存在一个 p∈[1,∣S∣] 使得 ∣(i+j−1)−p∣≤k 且 Sp=Tj 。
例如 k=1 时,ACAT 出现在 AGCAATTCAT 的 2 号, 3 号和 6 号位置。 (编号从 1 开始。)