[LOJ 6185]烷基计数】的更多相关文章

Description 众所周知,大连 24 中是一所神奇的学校,在那里,化竞的同学很多都擅长写代码. 有一天,化学不及格的胡小兔向化竞巨佬晴岚请教化学题: “n 个碳原子的烷基共有多少种同分异构体?” 刚刚得了化竞全市第一的晴岚听了,认为这道题十分简单,建议胡小兔写个程序解决这个问题.但胡小兔弱得连什么是同分异构体都不知道,于是晴岚给胡小兔画了个图——例如 n=4 时(即丁基),有 4 种同分异构体: 同理,其他常见烷基同分异构体数目如下表: n 1 2 3 4 5 6 同分异构体数目 1 1…
传送门. 不妨设\(A(x)\)表示答案. 对于一个点,考虑它的三个子节点,直接卷起来是\(A(x)^3\),但是这样肯定会计重,因为我们要的是无序的子节点. 那么用burnside引理,枚举一个排列,一个环的选择要相同,如果环的大小是y,则对应\(A(x^y)\). 最后可以得到: \(A(x)=x{A(x)^3+3A(x^2)A(x)+2A(x^3)\over 6}+1\) 分治NTT可以解这个方程,不过因为有3次的,比较复杂,考虑用牛顿迭代: \(F(A(x))=x{A(x)^3+3A(x…
别问我为啥突然刷了道OI题,也别问我为啥花括号不换行了... 题目描述 求含 $n$ 个碳原子的本质不同的烷基数目模 $998244353$ 的结果.$1\le n\le 10^5$ . 题解 Burnside引理+多项式牛顿迭代 不考虑同构的话,很容易想到dp方程 $\begin{cases}f_0=1\\f_i=\sum\limits_{j+k+l+1=i}f_jf_kf_l\end{cases}$ . 考虑同构,可以通过容斥原理,大力讨论一下容斥系数.一个更简单的方法是考虑Burnside…
一道mst-- 最开始是毫无头绪,于是就点开了--->题解 大部分题解都是矩阵树--然而第一篇题解告诉了我们暴搜也能过( 思路大概是说,对于一个图\(G\),它的所有最小生成树的相同权值的边的数量是相等的. (这里批评自己一下(虽然AC了但是最终没有证明这个思路的正确性() (不过花了一些时间来尝试--最后没能成功举出反例,于是就默认这是对的了() 对边的权值排序,直接跑一遍mst,用结构体来记录相同权值的边出现的次数.然后暴搜一通边就完了qwq 神仙数据 #include <algorith…
解:讲一个别的题解里我比较难以理解的地方,就是为什么可以把这两个东西合起来看成某一个连通块指数是2m而别的指数都是m. 其实很好理解,但是别人都略过了......把后面的∑提到∏的前面,然后展开,也可以理解成把∏塞到∑里面. 然后我们就发现对于每个生成树,我们其实有n种选择,分别把某个块的次数变成2m,且每种选择都作为一棵生成树计入贡献,且这回的贡献,一个树内部各个块全部是乘积的形式. 发现贡献与度数有关,又要求所有生成树,于是考虑prufer序列. 如何看待每个点是一个连通块?就是对于一种生成…
$ \color{#0066ff}{ 题目描述 }$ hsezoi 巨佬 olinr 喜欢 van 毛毛虫,他定义毛毛虫是一棵树,满足树上存在一条树链,使得树上所有点到这条树链的距离最多为 1. 给定 n .现在请你求出 n 个点.有标号的毛毛虫的数量.答案对 998244353 取模. \(\color{#0066ff}{输入格式}\) 输入只有一行一个整数 n . \(\color{#0066ff}{输出格式}\) 输出一行,表示答案. \(\color{#0066ff}{输入样例}\) 5…
LOJ 思路 这种计数题显然是要先把每一个合法的串用唯一的方法表示出来.(我连这都没想到真是无可救药了) 如何唯一?容易想到把前缀尽可能多地在第一个串填掉,然后填第二个,第三个-- 如何做到这样?可以建出SAM,然后用\(nxt\)数组判断是否还能往后填. 那么如何计数呢?如果从前往后DP要记录一个二进制串表示哪些字符在\(nxt\)里面,或者直接记录用了哪个SAM节点,复杂度爆炸. 从后往前DP,这样就只需要记录最前面那个字符是什么.即设\(dp_{i,c}\)表示用了后面\(i\)个串,最前…
Loj 2320.「清华集训 2017」生成树计数 题目描述 在一个 \(s\) 个点的图中,存在 \(s-n\) 条边,使图中形成了 \(n\) 个连通块,第 \(i\) 个连通块中有 \(a_i\) 个点. 现在我们需要再连接 \(n-1\) 条边,使该图变成一棵树.对一种连边方案,设原图中第 \(i\) 个连通块连出了 \(d_i\) 条边,那么这棵树 \(T\) 的价值为: \[ \mathrm{val}(T) = \left(\prod_{i=1}^{n} {d_i}^m\right)…
目录 题目链接 题解 代码 题目链接 loj#2665. 「NOI2013」树的计数 题解 求树高的期望 对bfs序分层 考虑同时符合dfs和bfs序的树满足什么条件 第一个点要强制分层 对于bfs序连续的a,b两点,若a的bfs序小于b的bfs序,且a的dfs序大于b的,那么它们之间肯定要分层,对答案贡献为1 对于dfs序连续的a,b两点,若a的dfs序小于b的,且a的bfs序也小于b,那么它们的深度差不超过1,也就是说它们在的bfs序上之间最多分一层 先把前两个条件都判一下,然后把第2个条件…
题目大意: 给定\(a, b, c\),求\(\sum \limits_{i = 1}^a \sum \limits_{j = 1}^b \sum \limits_{k = 1}^c [(i, j) = 1][(j, k) = 1][(i, k) = 1]\) $a, b, c \leq 5*10^4 $ 首先莫比乌斯反演 $Ans = \sum \limits_{i = 1}^a \sum \limits_{j = 1}^b \sum \limits_{k = 1}^c [(i, j) = 1…
题解 我,理解题解,用了一天 我,卡常数,又用了一天 到了最后,我才发现,我有个加法取模,写的是while(c >= MOD) c -= MOD 我把while改成if,时间,少了 六倍. 六倍. 六倍!!!! maya我又用第一次T的代码改掉了while,我第一次T的代码也A了= = 那我,改单位复根,FFT循环展开,分治内部循环展开,为了啥= = 好吧,但是我最后上榜了...LOJ第四的样子.. \(\prod_{i = 1}^{N} d_{i}^{m}\sum_{i = 1}^{N}d_{…
题目链接 https://loj.ac/problem/2731 题解 首先一个很自然的思路是,设\(dp[i][j]\)表示选了前\(i\)列,第\(2\)行第\(i\)列的格子是第\(j\)个被填上的. 还要加个第三维\(0/1\),表示第\(2\)行第\(i\)列不是/是这一列最后一个被填上的(这决定了它是被上下填上还是被左右填上). 转移: 若第\(2\)行第\(i\)列是棋子,则所有的都转移到\(f[i][0][0]\). (1) \(0\rightarrow 0\), 两个互不影响,…
题目链接 https://loj.ac/problem/6358 (另外一道\(4\)的倍数题左转loj #6356) 题意 题面写得就像一坨X一样,我来复述一下吧. 有\(N\)个元素构成的集合,要从\(2^N\)个子集中选出若干个使得交的大小为\(4\)的倍数.不选算交为空. 样例解释: 选空集有\(8\)种方案,不选空集方案只有\(\{ 1\} \{ 2\}\)和\(\{ 1\} \{ 2\} \{1,2\}\), 还有一种什么都不选,共\(11\)种. 题解 这道题真的神仙得令我目瞪口呆…
好神的一道计数题呀. code: #include <cstdio> #include <algorithm> #include <cstring> #define N 5000003 #define ll long long #define mod 998244353 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int invg[N],dp[N]…
题意:给你DFS序和BFS序,求树的期望高度. 解:先分析性质. 考虑到BFS序是分层的,DFS序的子树是一段,那么我们遍历BFS序并在DFS序上标记对应点的话,就会发现BFS序每一层都会把若干棵子树每个都分成若干个小子树,且换层的时候一定会是DFS序上第一个非空位置. 设每个点的期望深度为hi,那么就是要求BFS序最后一个点的h.考虑每个点的深度怎么算.如果当前点不是新一层的开头,那么它的h一定等于他在BFS序前面一个点的深度.如果是开头,那么就要等于它父亲的深度 + 1,我们可以在DFS序上…
题意 题目链接 Sol 质数的限制并没有什么卵用,直接容斥一下:答案 = 忽略质数总的方案 - 没有质数的方案 那么直接dp,设\(f[i][j]\)表示到第i个位置,当前和为j的方案数 \(f[i + 1][(j + k) \% p] += f[i][j]\) 矩乘优化一下. #include<bits/stdc++.h> #define LL long long using namespace std; const int MAXN = 2e7 + 10, mod = 20170408,…
题意 题目链接 Sol 神仙反演题.在洛谷上疯狂被卡常 Orz shadowice #include<bits/stdc++.h> #define Pair pair<int, int> #define MP make_pair #define fi first #define se second #define LL long long const int MAXN = 2e5 + 10, mod = 1e9 + 7; using namespace std; template…
题解 我们统计深度对于bfs序统计,树结构出现分歧的地方必然是BFS序的最后一段,这个最后一段同时还得是dfs序上连续的一段 如果不是bfs序的最后一段,那么必然下一层会有节点,如果树结构分歧了,那么dfs序是不一样的 如果不是dfs序上连续的一段,如果分歧那么bfs序会改变... 好的,知道了这两点,这题就非常可做了 我们记录一下u点在dfs序中的位置和bfs序中的位置,从前往后扫bfs序 假如u在BFS序中前一个点是v,如果v的dfs序在u的后面,说明换了一层,深度+1 如果v的dfs序正好…
题意 小 \(C\) 有一棵 \(n\) 个结点的有根树,根是 \(1\) 号结点,且每个结点最多有两个子结点. 定义结点 \(x\) 的权值为: 1.若 \(x\) 没有子结点,那么它的权值会在输入里给出,保证这类点中每个结点的权值互不相同. 2.若 \(x\) 有子结点,那么它的权值有 \(p_x\) 的概率是它的子结点的权值的最大值,有 \(1-p_x\) 的概率是它的子结点的权值的最小值. 现在小 \(C\) 想知道,假设 \(1\) 号结点的权值有 \(m\) 种可能性,权值第 \(i…
「LOJ 556 Antileaf's Round」咱们去烧菜吧 最近在看 jcvb 的生成函数课件,顺便切一切上面讲到的内容的板子题,这个题和课件上举例的背包计数基本一样. 解题思路 首先列出答案的生成函数: \[ \prod_{1\leq k \leq m}\left(\sum_{0\leq i\leq b_k} x^{ia_k}\right) \\ =\prod_{1\leq k\leq m}\left(\dfrac{1-x^{a_k{(b_k+1)}}}{1-x^{a_k}}\right…
[BZOJ 5252][LOJ 2478][九省联考2018] 林克卡特树 题意 给定一个 \(n\) 个点边带权的无根树, 要求切断其中恰好 \(k\) 条边再连 \(k\) 条边权为 \(0\) 的边重新连成一棵树, 最大化新树上某条路径的权值和. \(0\le k<n\le 3\times 10^5\). 边权的绝对值不超过 \(1\times 10^6\). 提示: 题目并不难 题解 当时场上做这题的时候根本不知道有wqs二分这种高端套路...看到提示之后果断跑路了qaq... 首先切断…
第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按照右端点排序,每次贪心的从区间的最右边种,然后检查下一个区间是否缺少,缺的话就在最右边继续补. 3):「一本通 1.1 例 3」喷水装置:这题可以发现每个装置所能覆盖的区间是一个矩形,所以这题就变成了给了一堆线段,选出最少线段覆盖整个区间,按照右端点排序然后贪心就可以了. 4):「一本通 1.1 例…
[LOJ 2133][UOJ 131][BZOJ 4199][NOI 2015]品酒大会 题意 给定一个长度为 \(n\) 的字符串 \(s\), 对于所有 \(r\in[1,n]\) 求出 \(s\) 的所有LCP不小于 \(r\) 的后缀对的个数以及这些后缀对所能组成的最大权值. 一个后缀对 \((a,b)\) 的权值是它们左端点的权值的积. \(n\le 3\times 10^5\). 题解 很久以前写的SAM沙雕题 因为要求LCP所以我们把这个串reverse一下用SAM搞. 根据后缀自…
[LOJ 6433][PKUSC 2018]最大前缀和 题意 给定一个长度为 \(n\) 的序列, 求把这个序列随机打乱后的最大前缀和的期望乘以 \(n!\) 后对 \(998244353\) 取膜后的值. 前缀和不能为空. \(n\le 20\). 题解 首先这个期望显然是逗你玩的...只是计数而已 然后我们把一个序列拆成两部分, 一部分前缀和都不大于总和, 一部分前缀和都不大于 \(0\). 那么显然这样的一个序列的最大前缀和就是第一部分的和. 我们只要知道有多少个这样的序列就好了. 后面的…
Loj #3042. 「ZJOI2019」麻将 题目描述 九条可怜是一个热爱打麻将的女孩子.因此她出了一道和麻将相关的题目,希望这题不会让你对麻将的热爱消失殆尽. 今天,可怜想要打麻将,但是她的朋友们都去下自走棋了,因此可怜只能自己一个人打.可怜找了一套特殊的麻将,它有 \(n(n \ge 5)\) 种不同的牌,大小分别为 \(1\) 到 \(n\),每种牌都有 \(4\) 张. 定义面子为三张大小相同或者大小相邻的麻将牌,即大小形如 \(i, i, i(1 \le i \le n)\) 或者\…
LOJ#3043. 「ZJOI2019」线段树 计数转期望的一道好题-- 每个点设两个变量\(p,q\)表示这个点有\(p\)的概率有标记,有\(q\)的概率到祖先的路径上有个标记 被覆盖的点$0.5p + 0.5 \rightarrow p ,0.5q + 0.5\rightarrow q $ 被覆盖的点子树中的点\(p\rightarrow p,0.5q + 0.5 \rightarrow q\) 经过的点\(0.5p \rightarrow p,0.5q \rightarrow q\) 未…
目录 分块9题 出题人hzw的解析 数列分块入门 1 修改:区间加 查询:单点值查询 代码 数列分块入门 2 修改:区间加 查询:区间排名 代码 数列分块入门 6 修改:单点插入 查询:单点值 代码 数列分块入门 7 修改:区间加,区间乘 查询:单点查询 代码 数列分块入门 8 修改:区间赋值 查询:区间计数 代码 [总集] LOJ「分块」数列分块入门1 – 9 分块9题 出题人hzw的解析 (tips.以下代码中IO优化都已省去,想看可以点传送门) 数列分块入门 1 修改:区间加 查询:单点值…
T1 题意:\(n\)个变量,\(0 \leq x_i \leq c_i\),求\(\sum x_i = A\)方案数.\(n \leq 32\). Sol: \(n \leq 10\)的时候容斥很水,然而生成函数掉线了. \(n \leq 32\)的时候,dls:"显然Meet in Middle."然后我又掉线了 全世界就我不会生成函数 T2 题意:求\(0\)到\(2n-1\)的排列\(p\)的个数,使得对于任意的\(i\),\(n^2 \leq i^2+p_i^2 \leq 4…
\(2019\)国家集训队论文<整点计数>命题报告 学习笔记/\(Min25\) 补了个大坑 看了看提交记录,发现\(hz\)的\(xdm\)早过了... 前置知识,\(HAOI\)<圆上的整点> 题目要求计算所有\((x,y),\)满足\(x^2+y^2=r^2\)的点数 这个题尽管原来做过,但是当时式子都是别人带着推的,并不知道深层原因,今天才发现这个和复数有关 先自己推一下式子 \(x^2+y^2=r^2\) \(y^2=r^2-x^2\) \(y^2=(r-x)(r+x)\…
1. 比较排序算法的下界 (1) 比较排序     到目前为止,我们已经介绍了几种能在O(nlgn)时间内排序n个数的算法:归并排序和堆排序达到了最坏情况下的上界:快速排序在平均情况下达到该上界.     如果仔细观察,我们会发现:在排序的最终结果中,各元素之间的次序依赖于它们之间的比较.我们把这类排序算法统称为比较排序.到目前为止我们介绍的排序算法都是比较排序.下面我们来论证一个事实:任何比较排序算法在最坏情况下都要经过Ω(n lgn)次比较. (2) 决策树模型     在证明之前,我们先介…