[CSP-S模拟测试]:装饰(状压DP)】的更多相关文章

传送门 状压dp好题. 怎么今天道道题都有点东西啊 对于今天题目神仙出题人先膜为上策:%%%%DzYoAk_UoI%%%% 设f[i][j]f[i][j]f[i][j]表示选取点的状态集合为iii,当前在jjj号点的状态总数. 然后枚举一个不在集合中的点转移. 但是直接这样做会算错. 为什么呢? 因为我们没有考虑状压时其它子树的影响. 因此再记一个数组g[i][j]g[i][j]g[i][j]表示选取集合为iii当前在jjj号点来进行状态转移. f[sta][p]=∑[E(u,v)]f[sta∣…
这么sb的题考场居然写挂了2233. 假设n=∏iaiki" role="presentation" style="position: relative;">n=∏iakiin=∏iaiki 那么集合中合法的数一定满足: t=∏i(1/aiki)" role="presentation" style="position: relative;">t=∏i(1/akii)t=∏i(1/aiki) 发…
[描述] 小石头喜欢看电影,选择有 N 部电影可供选择,每一部电影会在一天的不同时段播 放.他希望连续看 L 分钟的电影.因为电影院是他家开的,所以他可以在一部电影播放过程中任何时间进入或退出,当然他不希望重复看一部电影,所以每部电影他最多看一次,也不能在看一部电影的时候,换到另一个正在播放一样电影的放映厅. 请你帮助小石头让他重 0 到 L 连续不断的看电影,如果可以的话,计算出最少看几 部电影. [输入格式] 第一行是 2 个整数 N,L,表示电影的数量,和小石头希望看的连续时间 接下来是…
LINK:T3 比较好的题目 考试的时候被毒瘤的T2给搞的心态爆炸 这道题连正解的思路都没有想到. 一看到题求删除点的最少个 可以使得不连通. 瞬间想到最小割 发现对于10分直接跑最小割即可. 不过想要通过n^2需要一些奇技 如从Si跑到Tj 想要得到i到j+1的答案 只需要再从Tj跑到Tj+1即可. 可以发现这样做是有正确性的保证的 这样最多跑n次整张图的最大流. 且增广路不断减小 速度比较快. const int MAXN = 40010; int n, k, id, cc, len; ll…
\(Description\) 给定\(n\)个点\(m\)条边的有向图,求有多少个边集的子集,构成的图没有环. \(n\leq17\). \(Solution\) 问题也等价于,用不同的边集构造DAG,有多少种合法方案.我们考虑怎么构造DAG使得方案不重不漏. 我明知道一个DAG的拓扑序是唯一确定的.所以我们按照拓扑序每次转移一个点集. \(f[s][s']\)表示 构造 已经选择的点集为\(s\),当前最后一层点集为\(s'\)的DAG 的方案数. 转移时枚举不在\(s\)中的子集\(k\)…
题目传送门(内部题114) 输入格式 第一行一个正整数$n$. 接下来一行$n-1$个正整数,第$i$个数为$f_{i+1}$. 接下来一行$n$个数,若第$i$个数为$0$则表示林先森希望$i$号点的彩灯是关闭状态,若第$i$个数为$1$则表示林先森希望$i$号点的彩灯是开启状态. 输出格式 输出一行一个整数,表示林先森最少需要几秒才能看到他期望看到的树. 样例 样例输入1: 41 2 30 1 1 0 样例输出1: 2 样例输入2: 71 1 2 2 3 30 1 1 1 0 0 1 样例输…
题目描述 小w偶然间见到了一个DAG.这个DAG有m层,第一层只有一个源点,最后一层只有一个汇点,剩下的每一层都有k个节点.现在小w每次可以取反第i(1<i<n-1)层和第i+1层之间的连边.也就是把原本从(i,k1)连到(i+1,k2)的边,变成从(i,k2)连到(i+1,k1).请问他有多少种取反的方案,把从源点到汇点的路径数变成偶数条?答案对998244353取模. 输入描述 一行两个整数m,k.接下来m-1行,第一行和最后一行有k个整数0或1,剩下每行有k2个整数0或1,第(j-1)×…
算是一道比较新颖的题目 尽管好像是两年前的省选模拟赛题目.. 对于20%的分数 可以进行爆搜,对于另外20%的数据 因为k很小所以考虑上状压dp. 观察最后答案是一个连通块 从而可以发现这个连通块必然存在一个深度最浅的点且唯一 所以随便找一个点做根然后对自己子树内寻找答案就可以是正确的. 考虑另外的30%的数据k<=3 可是颜色数最多可以有n个 不知道哪个是最终答案. 一次状压dp的复杂度:\(2^{2k}\cdot n\) 容易得到可以暴力枚举一下 然后要做 \(C(n,3)\) 这样会TLE…
第一题: 给出一个长度不超过100只包含'B'和'R'的字符串,将其无限重复下去. 比如,BBRB则会形成 BBRBBBRBBBRB 现在给出一个区间[l,r]询问该区间内有多少个字符'B'(区间下标从1开始)   [1<=l,r<=1e18]解:  没想到第一题这么水.直接前缀和+mod就可以了,再判一下边界.注意1e18不需要高精度.long long 有9*10^18. #include<iostream> #include<cstdio> #include<…
题目大意 你有\(s_1\)种\(1\times 2\)的地砖,\(s_2\)种\(2\times 1\)的地砖. 记铺满\(m\times n\)的地板的方案数为\(f(m,n)\). 给你\(m,l,r,s_1,s_2\),求\(\sum_{i=l}^rf(m,i)\) \(m\leq 6,1\leq l\leq r\leq {10}^{2501}\) 题解 显然是状压DP. 显然可以矩阵快速幂. 怎么矩阵快速幂? 假设矩阵是\(2^m\times 2^m\)的,我们把矩阵扩大一行一列,记录…