清华集训2014 day2 task1 简单回路】的更多相关文章

题目 如题. 算法 就是刚学习的插头DP. 从前往后和从后往前分别进行一次DP. 要点 合法的括号序列只有103个 如何合并两次dp的信息 一开始犯傻了,以为当且仅当两个轮廓线的状态相同才是合法的方案.其实很容易举出反例. 如果直接枚举的话,每次询问的时间复杂度是\(O(103^2 m)\). 为了加快速度,可以把所有合法的方案先列举出来(就是预处理),只有\(103^2\)个.每次询问的复杂度优化为\(O(103^2)\). 时间复杂度 \(O(103 \cdot n \cdot m + 10…
题目 这可算是描述很简单的一道题了!但是不简单. \(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\)的异或…
题目 算法 稳定婚姻系统(其实就是贪心) 一个方案不合法,当且仅当下面这种情况: 设第\(i\)行选了数字\(x\),如果第\(j\)行有一个\(x\)在第\(i\)行的\(x\)后面,并且第\(j\)行所选的数字在第\(j\)行的\(x\)后面. 分析到这里就是典型的稳定婚姻系统了. 代码 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #inclu…
[清华集训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…
题目描述 给你一个\(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…
清华集训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\)而增大了\(…
传送门 分析 清华集训真的不是人做的啊嘤嘤嘤 我们可以考虑按操作时间把每个操作存进线段树里 如果现在点x正好使一个整块区间的右端点则更新代表这个区间的点 我们不难发现一个区间会因为不同的操作被分成若干块,每块对应序列上不同的区间 于是查询时对于每个线段树上区间查询时二分查找当前点在哪一块中即可 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include&…
题目 题目看起来好像很难的样子!其实不然,这是最简单的一道题. 算法 首先要注意的是: \(number \cdot x + product \cdot y = 1\) ,那么我们称\(number\)与\(product\)不相冲. 等价于 当\(number\)和\(product\)互质时,那么我们称\(number\)与\(product\)不相冲. 所以求与\(product\)不冲突的\(number\)个数,即是求\(\varphi (product)\)(即\(product\)…
题目链接 题目描述 给定一张强联通图,求有多少种边的存在情况满足图依然强联通. \(n\leq15\) Sol 首先正难则反,考虑用总数减去不强联通的. 考虑一张不强联通的图,缩点后一定是一个 DAG,好像可以对 DAG 进行计数. 诈一看这个做不了,因为缩点后计数是不可能在dp过程中实现的. 但我们按照 DAG 计数的思路的话其实并不需要真的知道 DAG 缩点后的形态. 我们类似 DAG 计数的话那么枚举这些缩完点后的点至少有多少个入度为 0 的点,然后容斥计算. 过程中我们用到的只是有 奇数…