ACM知识点分类 (红:完全没听说过 黄:听说过 绿:接触过做过题 蓝:很熟悉刷过专题 紫:见一道秒一道) 第一类:基础算法 (1) 基础算法:枚举,贪心,递归,分治,递推,构造,模拟 (2) 动态规划:背包问题,树形dp,状态压缩dp,单调性优化,插头dp (3) 搜索:dfs,bfs,记忆化搜索
分类:
其他好文 时间:
2016-02-26 18:37:06
阅读次数:
149
卡了一个星期插头dp…… 终于还是卡过去了……算是吧233 插头dp简单地说就是对路径进行状态压缩,记录当前的分段路径…… 首推肯定还是《基于连通性状态压缩的动态规划问题》,真心做得很好: 看完就没啥问题了……实在看不下去的话…… 状态表示:0:无插头 1:“(”,即该联通块的左端点 2...
分类:
其他好文 时间:
2016-01-17 14:54:51
阅读次数:
139
题意:用若干条回路覆盖01矩阵里面所有的1的方案数方法:多回路问题,需要将插头的有无加入状态里,然后沿轮廓线转移即可。简单好写。#include using namespace std;#ifndef ONLINE_JUDGE#include "local.h"#endif // ONLINE_JU...
分类:
其他好文 时间:
2015-12-19 06:32:27
阅读次数:
197
题意:给了一个矩阵图,要求使用回路把图中的树全部吃掉的方案树,没有树的点不能走,吃完了这个点也就没有了,走到哪吃到哪用插头dp搞#include #include #include #include #include using namespace std;typedef long long LL;...
分类:
其他好文 时间:
2015-11-07 17:41:17
阅读次数:
214
#include #include #include #include #include using namespace std;const int INF=100000000;int nrows,ncols;int G[10][10];struct State{ int up[9]; in...
分类:
其他好文 时间:
2015-11-07 17:22:21
阅读次数:
203
轮廓线dp 骨牌覆盖问题 n和m比较小 1 #pragma comment(linker, "/STACK:102400000,102400000") 2 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include ...
分类:
其他好文 时间:
2015-09-23 20:58:07
阅读次数:
281
题意:有一个n*8的蜂房(6边形的格子),其中部分是障碍格子,其他是有蜂蜜的格子,每次必须走1个圈取走其中的蜂蜜,在每个格子只走1次,且所有蜂蜜必须取走,有多少种取法? 思路: 以前涉及的只是n*m的矩阵,也就是四边形的,现在变成了6边形,那么每个格子也就有6个方向可以出/进。为了方便考虑,将蜂.....
分类:
其他好文 时间:
2015-09-10 20:54:21
阅读次数:
248
题意:有一个n*m的矩阵,每个格子中有一个值(可能负值),要从左上角走到右下角,求路径的最大花费。思路: 除了起点和终点外,其他的点可以走,也可以不走。 (2)我用的是括号表示法,所以起始状态为')',即仅有一个右括号,那么到右下角也应该是只有一个右括号。因为,如果碰到()),加粗表示起点的那个.....
分类:
其他好文 时间:
2015-09-08 21:39:08
阅读次数:
294
题意:给一个n*m的矩阵,每个格子都是必走的,且无障碍格子,每对格子之间都有一个花费,问哈密顿回路的最小花费。思路: 这个和Formula1差不多,只是求得是最小花费,这只需要修改一下DP值为花费就行了,主要是在创建新括号,以及延续一个插头的时候花费,因为可能上一个格子有多个状态都可以转移到本格子....
分类:
其他好文 时间:
2015-09-07 22:40:17
阅读次数:
304
题意:有一个n*m矩阵,其中有些格子必走,有些格子不可走,其他格子是可走也可不走,问有多少条哈密顿回路?思路: 本来是一道很简单的题,代码写多了连白痴bug都查不出了,竟然用i>=ex&&j>=ey来判定最后一个必走点后面的点!明显是错的。 其实主要在选走的格子,那么有两种选择,“走”or“不走.....
分类:
其他好文 时间:
2015-09-07 21:14:57
阅读次数:
332