清华集训2014 day1 task2 主旋律】的更多相关文章

题目 这可算是一道非常好的关于容斥原理的题了. 算法 好吧,这题我毫无思路,直接给正解. 首先,问题的正面不容易求,那么就求反面吧: 有多少种添加边的方案,使得这个图是DAG图(这里及以下所说的DAG图都是指这个图不是整个强连通的). 利用容斥原理,DAG图的特征是有至少一个入度为\(0\)的点并且这个图不止一个点(这里及以下所说的点都是指求强连通后的点),就根据这个进行容斥. 设\(g(set)\)为集合里的点都是入度为\(0\)的方案数,注意,这个有点特别,比如这个: 它的值应该为\(0\)…
题目 这可算是描述很简单的一道题了!但是不简单. \(S\)是一个可重集合,\(S = \{a_1, a_2, \dots, a_n \}\). 等概率随机取\(S\)的一个子集\(A = \{a_{i_1}, \dots, a_{i_m}\}\). 计算出\(A\)中所有元素异或\(x\), 求\(x^k\)的期望. 要点 要点 1 所有异或出来的不同结果的数量是同样多的(这句话可能有点不清楚). 我的意思是说,假如异或出来的结果有\(5\).\(3\).\(4\),那么结果是\(5\)的异或…
题目 题目看起来好像很难的样子!其实不然,这是最简单的一道题. 算法 首先要注意的是: \(number \cdot x + product \cdot y = 1\) ,那么我们称\(number\)与\(product\)不相冲. 等价于 当\(number\)和\(product\)互质时,那么我们称\(number\)与\(product\)不相冲. 所以求与\(product\)不冲突的\(number\)个数,即是求\(\varphi (product)\)(即\(product\)…
[清华集训2014]矩阵变换 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/41 Description 给出一个 N 行 M 列的矩阵A, 保证满足以下性质: M>N.    矩阵中每个数都是 [0,N] 中的自然数.    每行中, [1,N] 中每个自然数都恰好出现一次.这意味着每行中 0 恰好出现 M−N 次.    每列中,[1,N] 中每个自然数至多出现一次. 现在我们要在每行中选取一个非零数,…
#38. [清华集训2014]奇数国 思路: 题目中的number与product不想冲: 即为number与product互素: 所以,求phi(product)即可: 除一个数等同于在模的意义下乘以一个数的逆元: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define maxn 100005…
传送门 分析 清华集训真的不是人做的啊嘤嘤嘤 我们可以考虑按操作时间把每个操作存进线段树里 如果现在点x正好使一个整块区间的右端点则更新代表这个区间的点 我们不难发现一个区间会因为不同的操作被分成若干块,每块对应序列上不同的区间 于是查询时对于每个线段树上区间查询时二分查找当前点在哪一块中即可 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include&…
清华集训2014sum 求\[∑_{i=1}^{n}(-1)^{⌊i√r⌋}\] 多组询问,\(n\leq 10^9,t\leq 10^4, r\leq 10^4\). 吼题解啊 具体已经讲得很详细了(找了好久才找到的良心题解.) 首先看到向下取整的式子要会拆开. 然后套类欧几里德. 这里的类欧几里德比较简单,因为可以看作是\(y=kx\)的正比例的向下整点. 如果\(k>1\),那么就相当与直接算上面的点,然后把直线砍到\(k\leq 1\). 否则取反函数,相当于减小了\(n\)而增大了\(…
题目大意: 传送门 题解: 神题……Orz. 首先正难则反. 设$f_S$表示选取点集状态为s时,这部分图可以构成非强联通图的方案数. 设$p_{S,i}$表示点集s缩点后有i个入度为0点的方案数,保证$i<|S|$. 设$e[S,T]$表示从S集合到T集合的边数. 很显然有. 好吧,并不显然……还是来解释一下…… 考虑求$f_S$,我们知道缩点后必然会有一些点环的入度为0,但数量并不确定,我们强制性的让一部分图构成一部分缩点后为i个入度为0的子图.然后将这部分图随意连向剩余子图,至于剩余子图内…
Description Solution f[i]表示状态i所代表的点构成的强连通图方案数. g[i]表示状态i所代表的的点形成奇数个强连通图的方案数-偶数个强连通图的方案数. g是用来容斥的. 先用f更新g.枚举状态i的编号最小点k所在连通块大小i-j,$g[i]=-\sum _{j\subset i}f[i-j]*g[j]$(此处g中不更新强连通图个数为1的. 设点集i中有sum条边,则: $f[i]=2^{sum}-\sum _{j\subset i}2^{sum-w[j]}*g[j]$.…
题目描述 求一张有向图的强连通生成子图的数目对 $10^9+7$ 取模的结果. 题解 状压dp+容斥原理 设 $f[i]$ 表示点集 $i$ 强连通生成子图的数目,容易想到使用总方案数 $2^{sum[i]}$ 减去不为强连通图的方案数得到强连通图的方案数,其中 $sum[i]$ 表示点集 $i$ 中边的数目. 考虑什么样的图不是强连通图:缩点后入度为0的强连通分量对应的点集不是全集. 枚举这些入度为0的强连通分量对应的点集,由于无法保证只有这些点构成的入度为0的强连通分量,因此需要进一步容斥.…
题解 一道,神奇的题= = 我们考虑正难则反,我们求去掉这些边后有多少图不是强连通的 怎么求呢,不是强连通的图缩点后一定是一个DAG,并且这个DAG里面有两个点 我们想一下,如果我们把1当成入度为0的点,随便造出个图,可以是这个图吧 如果把2当成入度为0的点,随便造出个图,也可以是这个图吧 把1和2当成入度为0的点,随便造出个图,还可以是这个图吧-- 那么这像什么,容斥啊 以下的点说的都是缩点后的点 奇数个入度为0的点就是+,偶数个入度为0的点就是- 那么我们就有了一个精妙的容斥! 设\(f[S…
直接求出强联通生成子图的数量较难,不妨用所有生成子图的数量减去非强联通的. 非强联通生成子图在所点后满足编号最小的点所在的强联通分量不是全集. 由于$n$很小,我们可以考虑状态压缩. 对于点集$S$,我们钦定一个它的子集$K$入度数为$0$,希望除去$K$以外的$S$度数不为$0$ 设钦定$K$的度数为$0$其他随意的方案数为$H_{S,K}=2^{sum_S-sum_{\{S^K\}\rightarrow\{k\}}}$ 设$G_S$表示$S$分为奇数个强联通分量的方案数减去分为偶数个强联通分…
传送门 第一眼容斥,然后我就死活容不出来了-- 记\(f_i\)为点集\(i\)中的点强联通的方案数,那么就是总的方案数减去使\(i\)不连通的方案数 如果\(i\)不连通的话,我们可以枚举缩点之后拓扑序最小(也就是入度为\(0\))的强连通分量,然而这种强联通分量可能不止一个,需要容斥,不难发现这里的容斥系数在强联通分量个数为奇数时为正,为偶数时为负(也就是强联通分量为奇数时要减掉方案数,为偶数时要加上方案数) 设\(g_i\)为点集\(i\)中形成奇数个强连通分量的方案数\(-\)形成偶数个…
题目链接 题目描述 给定一张强联通图,求有多少种边的存在情况满足图依然强联通. \(n\leq15\) Sol 首先正难则反,考虑用总数减去不强联通的. 考虑一张不强联通的图,缩点后一定是一个 DAG,好像可以对 DAG 进行计数. 诈一看这个做不了,因为缩点后计数是不可能在dp过程中实现的. 但我们按照 DAG 计数的思路的话其实并不需要真的知道 DAG 缩点后的形态. 我们类似 DAG 计数的话那么枚举这些缩完点后的点至少有多少个入度为 0 的点,然后容斥计算. 过程中我们用到的只是有 奇数…
http://uoj.ac/problem/37 题解 题目是让我们求出有多少个边集可以使这张图强连通. 先补集转化一下,求这张图不强连通的方案数. 我们考虑这样的图缩完点之后的情况,既然不强连通,那么它就是个\(DAG\). 回顾一下有向图\(DAG\)计数的方法. 每次新加入一层入度为\(0\)的点,向之前的点连边.但这时我们不能保证我们枚举的点就是全部入度为\(0\)的,所以我们还需要容斥. \[ f[S]=\sum_{T\subset S}(-1)^{|T|}f[S-T]2^{edge(…
题目 如题. 算法 就是刚学习的插头DP. 从前往后和从后往前分别进行一次DP. 要点 合法的括号序列只有103个 如何合并两次dp的信息 一开始犯傻了,以为当且仅当两个轮廓线的状态相同才是合法的方案.其实很容易举出反例. 如果直接枚举的话,每次询问的时间复杂度是\(O(103^2 m)\). 为了加快速度,可以把所有合法的方案先列举出来(就是预处理),只有\(103^2\)个.每次询问的复杂度优化为\(O(103^2)\). 时间复杂度 \(O(103 \cdot n \cdot m + 10…
题目 算法 稳定婚姻系统(其实就是贪心) 一个方案不合法,当且仅当下面这种情况: 设第\(i\)行选了数字\(x\),如果第\(j\)行有一个\(x\)在第\(i\)行的\(x\)后面,并且第\(j\)行所选的数字在第\(j\)行的\(x\)后面. 分析到这里就是典型的稳定婚姻系统了. 代码 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #inclu…
 number⋅x+product⋅y=1  有整数x,y解的条件是gcd(number, product) == 1. product用线段树维护一下,然后现学了个欧拉函数. 可以这样假如x = p1^a1 * p2^a2 * p3^a3 * ... * pn^an,那么phi(x) = (p1 - 1) * p1^(a1 - 1) + (p2 - 1) * p2^(a2 - 1) + (p3 - 1) * p3^(a3 - 1) + ... + (pn - 1) * pn^(an - 1).…
Description 给出一个 $N$ 行 $M$ 列的矩阵A, 保证满足以下性质: $M > N$. 矩阵中每个数都是 $[0, N]$ 中的自然数. 每行中, $[1, N]$ 中每个自然数都恰好出现一次.这意味着每行中 $0$ 恰好出现 $M - N$ 次. 每列中,$[1, N]$ 中每个自然数至多出现一次. 现在我们要在每行中选取一个非零数,并把这个数之后的数赋值为这个数.我们希望保持上面的性质4,即每列中,$[1, N]$ 中每个自然数仍然至多出现一次. Input 第一行一个正整…
题目大意:给n个数字,求子集的异或和的k次方的期望(n<=10^5,k<=5,保证答案小于2^63) 做法:首先如果从集合中拿出a和b,把a和a xor b放回集合,子集的异或和与原来是一一对应的,用高斯消元的思想可以消到只剩log个数,其他都是0,对答案没有影响.然后考虑k次方的期望,我们把二进制下每一位拆开,假设第i位的数字为xi,答案为(x1+x2+...+xlog)^k的期望,展开式子后发现是选k次x1~xlog中的数(可以重复选),每种选法选的位的乘积的期望的和,暴力枚举每种选法,复…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ41.html 题解 首先写个乱搞: 一开始每一行都选择第一个非0元素,然后,我们对这个方案不断做更新,直到任意两行选择的值不同.更新方法:如果有两行选了相同的值,那么让靠前的那行选择后一个有0的值. 交上去. 过了. wtf? 然后发现证明这个结论我花的时间远远大于AC这题QAQ 现在我们来证明一下: 首先,如果这个算法算出解了,那么肯定合法.这个比较显然就不证明了. 然后,我们来分两步证明一定有解.…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ42.html 题解 首先我们把式子改写一下: $$(-1)^{\lfloor a\rfloor} \\=1-2(\lfloor a\rfloor \bmod 2)\\=1-2(\lfloor a\rfloor -2\lfloor \frac a2 \rfloor)$$ 于是问题就变成了求解: $$f(a,b,c,n) = \sum_{i=1}^n \left\lfloor \frac {a\sqrt{r…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ36.html 题解 按照 $k$ 分类讨论: k=1 : 我们考虑每一位的贡献.若有至少一个数第 $i$ 位为 $1$ ,则对答案的贡献为 $2^i/2$ . k=2 : 发现每个异或和的平方为 $\sum_i\sum_j2^{i+j}bit_ibit_j$.那么考虑第 $i$ 位和第 $j$ 位的积的期望值.如果所有的数中,第 $i$ 位和第 $j$ 位均相等且非全零,那么参考 k=1 的情况,期望为…
题目描述 给出一个\(n\)行\(m\)列的矩阵\(A\), 保证满足以下性质: 1.\(m>n\). 2.矩阵中每个数都是\([0,n]\)中的自然数. 3.每行中,\([1,n]\)中每个自然数都恰好出现一次.这意味着每行中\(0\)恰好出现\(m−n\)次. 4. 每列中,\([1,n]\)中每个自然数至多出现一次. 现在我们要在每行中选取一个非零数,并把这个数之后的数赋值为这个数.我们希望保持上面的性质4,即每列中,\([1,n]\)中每个自然数仍然至多出现一次. \(n\leq 200…
题目描述 给你一个长度为\(n\)的数列,第\(i\)个数为\(a_i\).每个数的质因子都只有前\(60\)个质数.有\(q\)个询问,每次给你\(l,r\),求\(\varphi(\prod_{i=l}^ra_i)\) 模数为\(19961993\),是个质数 \(n=100000,q\leq 100000\) 题解 水题 \[ \phi(x)=x\prod_{p_i|x}(1-\frac1{p_i}) \] 用线段树维护区间乘积和这个区间的乘积的质因子(每个质数有没有出现) 然后乱搞 时间…
题目描述 给你一个\(n\times m\)的网格图和\(k\)个障碍,有\(q\)个询问,每次问你有多少个不同的不经过任何一个障碍点且经过\((x,y)\)与\((x+1,y)\)之间的简单回路 \(n\leq 1000,m\leq 6,q\leq 10000\) 题解 简单插头DP 先用DP求出前面\(i\)行的的方案数和后面\(i\)行的方案数,询问时暴力合并. 其实状态数很少的(不到\(200\)) 时间复杂度:\(O(???)\) 代码 #include<cstdio> #inclu…
这怎么想得到啊......... UOJ #36 题意:求随机一个集合的子集的异或和的$k$次方的期望值,保证答案$ \lt 2^{63},1 \leq k \leq 5$ $ Solution:$ 首先考虑$ k=1$的时候怎么做:如果某位上有$ 1$则有$ \frac{1}{2}$的概率可以取到这一位 $ k=1$时每一位都是独立的,可以直接做 然后考虑$ k=2$时怎么做 如果一个集合中有元素$ a,b$,则产生的贡献为$ a^2+2ab+b^2$ 我们把$ a^2$和$2ab$分开讨论…
传送门 令\(\sqrt r = x\) 考虑将\(-1^{\lfloor d \sqrt r \rfloor}\)魔改一下 它等于\(1-2 \times (\lfloor dx \rfloor \mod 2)\),也就等于\(1 - 2 \times \lfloor dx \rfloor + 4 \times \lfloor \frac{dx}{2} \rfloor\) 那么我们现在就要求\(\sum\limits_{i=1}^n \lfloor ix \rfloor\)的值,求\(\sum…
Description Solution 考虑k=1的情况.假设所有数中,第i位为1的数的个数为x,则最后所有的子集异或结果中,第i位为1的个数为$(C_{k}^{1}+C_{k}^{3}+...)$*2原本的数中第i位为0的数的个数.同理,所有子集异或结果中第i位为0的个数为$(C_{k}^{0}+C_{k}^{2}+...)$*2原本的数中第i位为0的数的个数. 由于二项式定理,可得前后两个式子大小相等.即对于每一位i,如果该位有某个(些)数为1,ans+=10i-1/2. k=2同理. 对…
题目链接 稳定婚姻问题:有n个男生n个女生,每个男/女生对每个女/男生有一个不同的喜爱程度.给每个人选择配偶. 若不存在 x,y未匹配,且x喜欢y胜过喜欢x当前的配偶,y喜欢x也胜过y当前的配偶 的完备匹配,则称这是一个稳定匹配. 稳定匹配一定存在,且存在一个\(O(n^2)\)的算法: 任选一个未匹配的男生x,按x的喜爱程度从大到小枚举每个女生,若当前女生没有配偶或喜欢x胜过喜欢当前配偶,则与x匹配.直到所有男生都匹配. 这一题我们用行表示男生,n个数表示女生.喜爱程度为:行更喜欢靠前的数,数…