摘要:
ZOJ_3213 我是用最小表示法写的这个插头dp,相比于回路问题来讲,变简单的地方是不用考虑合并两个相同的连通分量这一情况了,变复杂的地方就是多出了两个个独立插头。 为了搞定独立插头的问题,我在编码的时候额外加了一个状态num,表示当前已经使用的独立插头的数目,这样只要保证num不超过2而且不合并相同的连通分量就能保证最后是一条简单路径。 在dp的时候因为多了独立插头,所以分的情况就更多一些。#include<stdio.h>#include<string.h>#define MAXD 15#define HASH 30007#define SIZE 1000010i 阅读全文
摘要:
FZU_1977 对于必须要走的点,那么在那个点就一定要有插头。而对于不必走的点,如果dp到该点时没有插头,那么既可以在这个点放两个插头开辟一个新的连通分量,也可以不放插头,相当于不经过这个点。 此外由于回头只能有一条,而形成回路的最后一个点又是不确定的,所以可以再额外记录一下当前是否已经形成了回路,这样如果已经形成了回路而后面又遇到了插头或者必须要走的点,那么这个方案自然就是不合法的。#include<stdio.h>#include<string.h>#define MAXD 15#define HASH 30007#define SIZE 500010int N, 阅读全文