随笔分类 - 动态规划——状压DP/状态压缩
摘要:https://ac.nowcoder.com/acm/contest/11168/E 如果没有区间翻转操作 那就直接枚举区间左或右端点, 因为要求数不能重复,每个数字又都是2的幂 所以固定一个端点后,区间长度是log(值域)级别的,这里就是24 可以翻转一个区间,相当于可以选任意2个不相交的区间
阅读全文
摘要:https://pintia.cn/problem-sets/994805046380707840/problems/994805048175869952 搜索,状压判重 f[s][i]:状态为s,i为最后一个 用f记录某个状态是不是已经不合法了 因为对于一个有x位的状态t,确定好最后一个,有(x-
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4568 题意: 网格图中有若干个宝藏,探索每个方格都有相应的代价 每个途径的格子都要进行探索 告诉你宝藏的位置 问从方格外开始探索到所有宝藏并回到出发点的最小代价 spfa求出从方格外到每个宝藏的最小代价,以及每两
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5067 题意: 二维网格图中有若干块石头,从左上角出发,搬走所有石头,再回到左上角的最短距离 旅行商问题 参考上一篇博客 #include<cstdio> #include<algorithm> using nam
阅读全文
摘要:https://www.luogu.com.cn/problem/P1171 经典的旅行商问题 dp[i][j]表示从j出发,去遍历状态为i的点,并且回到起点的最短路径长度 初始化:dp[0][i]=dis(i,起点),即从点i哪儿哪儿也不遍历,直接回到起点的路径长度 对于每一个状态i,枚举要从哪个
阅读全文
摘要:https://codeforces.com/problemset/problem/1073/E 题意:[l,r]中,出现0—9数字的种类数不超过k的数的和 dp[i][j][0/1] 表示 dfs到第i位以后,数字出现的情况状态为j能转移的状态,是否有上界限制的数字的和 f[i][j] 表示 df
阅读全文
摘要:http://poj.org/problem?id=2411 题意: 用1*2骨牌完美覆盖n*m棋盘,求方案数 将列的状态压缩, 一个骨牌有三种摆放方式 1表示骨牌竖着放且骨牌的上端在这一列,即这一列向下凸出 0表示骨牌竖着放且骨牌的下端在这一列,即这一列被上一列的一个竖着的骨牌覆盖,或者是骨牌横着
阅读全文
摘要:http://codeforces.com/contest/662/problem/C 题意:n行m列01矩阵,每次可以反转一行或一列,问最后最少可以剩下多少个1 n只有20,把行状态压缩 操作奇数次相当于1次,操作偶数次相当于不操作 所以可以枚举对行的操作,将操作也状态压缩 A[i] 表示有多少列
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1226 关键点:一个人只能忍受 ‘紧跟’ 在他 后面的b个人比他先打到饭 dp[i][j][k] 前i-1个人已经打完了饭,第i个人和他后面的7个人 是否打上饭的状态为j,当前最后一个已经打到饭的人是k
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4352 题意: 设一个数的LIS为该数各位拆开来后的最长上升子序列。例如1324的LIS为3。 求l~r中LIS为k的数的个数。 如果能想办法将“最长上升子序列”这个状态压缩为s,那就可以数位dp dp[i][s]
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5079 题意: n*n网格,每个格子可以涂黑色或白色,有的格子必须涂黑色 问最大白色正方形边长分别为0,1,2,……n 的涂色方案数 令ans[i]表示最大白色正方形边长小于i的方案数 最大边长=i 的就是ans[
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3864 题意: 给你一个DNA序列,求有多少个长度为m的DNA序列和给定序列的LCS为0,1,2.... 求LCS方式:f[i][j]=max(f[i-1][j],f[i][j-1],f[i-1][j-
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3900 dp[i]表示让状态为i的鹿满足要求的最少交换次数 不能枚举两头鹿交换,因为一头鹿可能交换多次后转移到下一个状态 那就枚举子集 dp[i]=min { dp[j]+dp[j^i] } 初始化:将
阅读全文
摘要:http://poj.org/problem?id=2404 题意: 一张带权无向图,求选择一个起点,每条边至少被经过一遍,再回到起点的最小代价 加最小代价的边,使图变成欧拉图 无向图欧拉图:所有点的度数为偶数 抽离所有度数为奇数的点,状压dp dp[i] 表示 状态为i的奇度数的点,度数变成偶数的
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1879 f[i][j] 表示匹配了i个字符,匹配字符串的状态为j的方案数 枚举下一个字符是什么 计算加上这个自字符之后新匹配到的状态s f[i+1][s]+=f[i][j] 转移的时候判断如果f[i][
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1076 很容易想到方程 dp[i][j]表示抛出了i个宝物,已选宝物状态为j的期望最大得分 初始化dp[0][0]=0,其余都为负无穷 设宝物i的前提宝物集合为pre[i] 枚举第i次抛,当前已选宝物状
阅读全文
摘要:期望得分:100+100+30=230 实际得分:100+100+30=230 1. 三向城 题目描述 三向城是一个巨大的城市,之所以叫这个名字,是因为城市中遍布着数不尽的三岔路口。(来自取名力为0的出题人) 具体来说,城中有无穷多个路口,每个路口有唯一的一个正整数标号。除了1号路口外,每个路口都连
阅读全文
摘要:https://vjudge.net/problem/UVA-1603 题意: 一个由火柴棒组成的正方形网络 现在拿走一些火柴 问在剩下的火柴里还要最少拿走几根火柴 才能够破坏所有的正方形 n=5,火柴棒最多60根,状态压缩 我们先只考虑没有拿走火柴棒的网格图 设base[i][j] 表示第i行第j
阅读全文
摘要:https://www.luogu.org/problem/show?pid=2831 题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔。 简单来说,这款游戏是在一个平面上进行的。 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如y=ax^
阅读全文
摘要:NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第一轮Day2 期望得分:100+100+ =200+ 实际得分:100+40+70=210 T1天天寄快递 直接模拟,代码丢了。。。。。。 T2天天和不可描述 splay可A 正解dfs+list #include<iostream> #include
阅读全文