分析最优策略的性质,状压DP,记录结果避免重复计算优化复杂度 ...
分类:
其他好文 时间:
2020-02-17 16:17:24
阅读次数:
70
DAG状压dp的一种 题目: $m$个城市,$n$张车票,第i张车票上的时间是$t_i$, 求从$a$到$b$的最短时间,如果无法到达则输出“impossible” 解法: 考虑状态:“现在在城市$v$,此时还剩下的车票的集合为$S$”这样的状态。从这个状态出发,使用一张车票移动到$i \in S$ ...
分类:
其他好文 时间:
2020-02-15 23:21:34
阅读次数:
103
在mapreduce程序中 //设置输入和输出路径 FileInputFormat.setInputPaths(job,new Path("E:\\Date\\input")); FileOutputFormat.setOutputPath(job,new Path("E:\\Date\\out") ...
分类:
其他好文 时间:
2020-02-15 19:03:16
阅读次数:
111
题意:有两个容量互质的容器,需要用这两个容器量出目标重量的水,找到其中一组解。bfs,使得搜索得到的解是步数最少的,遍历前驱法输出路径~ #include<bits/stdc++.h> using namespace std; const int maxn=1e6+14; struct node { ...
分类:
其他好文 时间:
2020-02-15 13:24:31
阅读次数:
40
"题面" 看到数据范围这么小,第一眼想到爆搜。 然而这样做的复杂度是 $\mathcal{O}(n! \times n)$ 的,明显会 TLE。 于是考虑状压 DP。 我们设 $dp_{i,j}$ 表示当前走过的集合为 $i$,且停留在 $j$ 号点的最短路径长度。 转移的话可以枚举一个点 $k$, ...
题目网址:http://poj.org/problem?id=1038 题意:给出一张N*M的格子纸,其中有一些坏格子,问最多可以在格子纸上切下多少个2*3(3*2)的小矩阵(不包含坏格子)。其中N<=150, M<=10。 做法: 容易发现对于右端在第i列的小矩阵,其能否摆放只和i-1, i-2列 ...
分类:
其他好文 时间:
2020-02-13 18:47:46
阅读次数:
72
题意:n个顶点带权无向图,求最短hamilton路径长度(从起点0走到终点n-1,且经过每个顶点恰好一次的路径) 在看位运算的时候做到这题,觉得状态压缩的思路挺奇特的。本来n<20,O(n!*n)的算法肯定炸了,但是可以二进制表示状态 如果将i表示为二进制,i的第j位走过就为1,没走过就为0(注意二 ...
分类:
其他好文 时间:
2020-02-12 20:31:58
阅读次数:
61
最小路径覆盖=节点数-最大匹配数,拆成二分图跑dinic/匈牙利即可,注意输出路径的时候判断拆成的入点和出点和另加的反向边 #include<bits/stdc++.h> using namespace std; #define lowbit(x) ((x)&(-x)) typedef long l ...
分类:
其他好文 时间:
2020-02-12 12:41:03
阅读次数:
65
高维前缀和 众所周知, FWT可以轻松的算出高维前缀和 本题题解: 考虑状压$dp$(~~题目都说了$2^M$那就状压了~~)因为$\%c[i]$和$\&a[i 1]$这两个操作都和具体的数值有关 $F[i][j]$表示枚举到$i$, 第$i$个数填$j$有多少种方案 $$ F[i][j] = \b ...
分类:
其他好文 时间:
2020-02-11 00:17:26
阅读次数:
70
Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a deadline of handing in the ho ...
分类:
其他好文 时间:
2020-02-09 20:41:02
阅读次数:
59