"洛咕" 题意:约翰家有$N(4m$. 然后我就意难平了.详情请见代码. cpp include include include include include include include include define ll long long using namespace std; inli ...
分类:
其他好文 时间:
2019-10-23 11:46:28
阅读次数:
67
T1: 把每一行状压,按行DP。设fi,j,k,i表示第几行,j是当前行的1覆盖状态,k是当前行选择按钮的状态。转移的时候枚举j和k,再枚举下一层的按钮选择情况l。如果l和j可以全覆盖当前层则转移合法,根据下一层选择l状态的代价进行转移。预处理一行每一种选法i可以覆盖到的状态di,各行选择按钮状态i ...
分类:
其他好文 时间:
2019-10-21 20:51:41
阅读次数:
115
题目链接 大意:不解释 思路:由于n极小,k也小,考虑状压后迭代乱搞.设状态dis[i][j]表示终点为i状态为j的最小路径长,将每个点的初始态扔进队列里迭代更新即可. 代码: 光坂小镇是一个由 nn 个点(编号为 11 ~ nn),mm 条有向边构成的图,每个节点上都有一个光玉,光玉共有 kk 种 ...
分类:
其他好文 时间:
2019-10-20 19:54:20
阅读次数:
81
联赛前该练什么?~~DP,树型,状压~~当然是爆搜啦 双向BFS就是两个普通BFS通过一拼接函数联系,多多判断啦 ...
分类:
Web程序 时间:
2019-10-18 10:52:57
阅读次数:
175
学校食堂 题目链接:https://www.luogu.org/problem/P2157 数据范围:略。 题解: 发现$B$特别小,很容易想到状压。 即在$dp$的时候弄出来$f_{(i,j,k)}$表示前$i - 1$个都打完了饭,状态$j$也已经打完饭了,当前打饭的是$i$,上一个打饭的是$i ...
分类:
其他好文 时间:
2019-10-15 21:25:48
阅读次数:
79
大神题。 每个部分分的算法都值得思考。 50pts:状压dp 把节点按深度排序,一定是深度连续的几段,即对应的差分数列只有0/1,在差分数列上进行状压dp,在中间加0,末尾添1。 最外层枚举节点编号保证顺序。 70pts:背包dp 设f[i][j]为含有i个点,深度为j的树的方案数。用带限制的完全背 ...
分类:
其他好文 时间:
2019-10-15 19:26:46
阅读次数:
71
P2831 愤怒的小鸟 抛物线过原点,只要再找两个就能确定抛物线; 处理出两两之间的抛物线能过哪些点,状态压缩; 但是直接枚举每一条抛物线常数太大会T,所以我们需要预处理一个low_bit表示当前状态下第一个没选的,即是二进制下第一个不是1的位置; 因为我们早晚都要把它变成1,所以先处理他就可以达到 ...
分类:
其他好文 时间:
2019-10-15 09:39:01
阅读次数:
92
大意: 给定串$s$, 字符集为字母表前$m$个字符, 求一个$m$排列$pos$, 使得$\sum\limits_{i=2}^n|{pos}_{s_{i-1}}-{pos}_{s_{i}}|$最小. 状压$dp$, 费用提前计算一下, 预处理$cost_{i,j}$表示与字符$i$相连的状态为$j ...
分类:
其他好文 时间:
2019-10-09 23:47:32
阅读次数:
280
链接:https://vjudge.net/problem/HDU-4352思路:一直在想怎么状压表示最长上升子序列,还是对nlogn的那种替换的方法不熟悉啊,对于每一个当前数字,我们找到目前最长上升子序列中第一个比他大的位置,然后替换掉,最后统计数字的个数即可知道最长上升子序列长度是多少了,那么这... ...
分类:
其他好文 时间:
2019-10-09 19:14:30
阅读次数:
98
传送门 注意到 $m$ 只有 $20$ ,考虑一下状压 $dp$ 设 $f[S]$ 表示当前确定的字符集合为 $S$ ,那么转移就考虑从最右边加入的下一个字符 $c$ 那么问题来了,代价如何计算 考虑每次加入一个字符以后对于所有字符间的移动$(c_i,c_{i+1})$产生的代价 那么显然只有当 $ ...
分类:
其他好文 时间:
2019-10-09 17:38:19
阅读次数:
82