$solution:$ 思路大家应该都懂: 状压DP:$f[i][j]$,其中 $i$ 这一维是需要状压的,用来记录19个节点每一个是否已经走过(走过为 $1$ ,没走为 $0$ ,用 $2$进制 压缩一下即可)。同时,我们认为状压中已经走过的序号最小的节点为出发节点,$j$ 即数组第二维是路径终点 ...
分类:
其他好文 时间:
2019-01-26 11:13:16
阅读次数:
165
"传送门" $N \leq 19$…… 不难想到一个状压:设$f_{i,j,k}$表示开头为$i$、结尾为$j$、经过的点数二进制下为$k$的简单路总数,贡献答案就看$i,j$之间有没有边。 当然,会有一些问题:①路会算重;②$2^NN^2$的数组开不下(当然②才是重点),所以考虑优化算法 考虑类似 ...
分类:
其他好文 时间:
2019-01-25 21:05:45
阅读次数:
180
题目大意:: 为给你n个点(n<=10,nn<=10,n) 初始时没有边相连 然后有m个操作(m<=30000m<=30000) 每次可以添加一条边或删除一条边 允许有重边 要求每次操作过后输出选这个图中不相交的k条边有多少种不同的方案 (k=1,2,3……n/2) 题目分析: n最大只有10 , ...
分类:
其他好文 时间:
2019-01-25 18:50:30
阅读次数:
141
题意:给一个矩阵(n*n n<=14)求出选择矩阵不同行,不同列,最后加起来和大于m的选择数 状压dp做法: 由于每一行都要选择,那么认为就是从第一行开始顺序选择 。那么一个二进制数,它的1的个数就是选择了的行数,而每个位置的1代表了这一个列选择或则不选择 这样就用一个二进制数表示出来状态了。 dp ...
分类:
其他好文 时间:
2019-01-22 21:49:43
阅读次数:
186
给出n个电脑,每个电脑连着n个服务,然后每个电脑都连着m个邻电脑,如果当前的电脑某个服务被断开了,相邻的电脑的服务也会被断开,每个电脑都只能操作一次,问你最多可以让多少种服务被断开。一种服务被断开的条件就是存在一个破坏第i个电脑的集合,这个集合扩散出去的集合是全集(......语文真的是...... ...
分类:
其他好文 时间:
2019-01-21 00:33:37
阅读次数:
185
"传送门" 今天$PKUWC$试机的题 看着边上的大佬们一个个$A$穿咱还是不会…… 我们考虑枚举最大前缀和,如果一个前缀$1$到$p$是最大前缀和,那么$p$后面的所有前缀和都要小于$0$ 于是我们设$sum_S$为子集$S$中所有元素的和,$f_S$为满足最大前缀和为$sum_S$的$S$的排列 ...
分类:
其他好文 时间:
2019-01-20 20:05:16
阅读次数:
167
状态压缩就是将一行的状态压成一个二进制数,这个数的二进制形式反映了这一行的情况 比如0100111的意义为:这一排的第一个数没被使用,第二个被占用了,第三四个没被占用,第五六七个被占用 我们知道位运算和状压DP一样,也是在二进制下进行的,所以位运算往往可以解决很多问题 我们来看看状压DP(位运算)的 ...
分类:
其他好文 时间:
2019-01-19 21:13:10
阅读次数:
338
题面 "Loj" 题解 ~~感觉挺难的啊~~~ 状压$dp$ 首先,有一个性质 对于一个序列的最大前缀和$\sum_{i=1}^{p} A[i]$ 显然对于每个$\sum_{i=p+1}^{x}A "i" 0$ 那么$sum[S] += sum[S (1 define LL long long de ...
分类:
其他好文 时间:
2019-01-18 18:38:24
阅读次数:
164
题面 "Loj" 题解 先转化题意,其实这题在乘了$n!$以后就变成了全排列中的最大前缀和的和(有点拗口)。$n\leq20$,考虑状压$DP$ 考虑一个最大前缀和$\sum\limits_{i=1}^pa_i$,这个位置$p$是最大前缀和的右界当且仅当对于$\forall r p$有:$\sum\ ...
分类:
其他好文 时间:
2019-01-18 16:25:26
阅读次数:
209
题目分析: 这题瞎搞一个哈密尔顿路,对于起点不同的分开跑就可以过了。 $O(n^3*2^n)$ ...
分类:
其他好文 时间:
2019-01-17 13:59:32
阅读次数:
222