2012年4月18日
摘要: HDU_1639 这个题目可以用插头dp的思想去做,由于允许多条回路,那么就只需要用0、1记录每个位置是否有插头,然后逐渐生成合法的状态并记录方案种数。 更多和插头dp相关的题目可以参考胡浩的博客:http://www.notonlysuccess.com/index.php/plug-dp-complete/。#include<stdio.h>#include<string.h>#define HASH 10007#define STATE 1000010#define MAXD 15int N, M, code[MAXD], maze[MAXD][MAXD];str 阅读全文
posted @ 2012-04-18 23:54 Staginner 阅读(433) 评论(0) 推荐(0) 编辑
摘要: URAL_1519 插头dp的处女作终于完成啦^_^ 具体的思路还是参考陈丹琦的论文吧,我也只是处于学习和模仿的阶段。我是仿照胡浩博客用最小表示法敲的代码,更多和插头dp相关的内容可以参考胡浩的博客:http://www.notonlysuccess.com/index.php/plug-dp-complete/。#include<stdio.h>#include<string.h>#define MAXD 15#define HASH 30007#define SIZE 1000010int N, M, maze[MAXD][MAXD], code[MAXD], ch 阅读全文
posted @ 2012-04-18 21:12 Staginner 阅读(466) 评论(0) 推荐(0) 编辑
摘要: SPOJ_1043 今天顿时发现原来GSS系列一共有7道题,这个是其中的一道,只要在网址那改一下GGS*就可以找到其他的题目了。 这个题目可以用线段树去做,一个可行的思路就是计算出三个标记mc[](当前区间内最大的连续子串和),lc[](从当前区间左端点开始向右的最大的连续子串和),rc[](从当前区间右端点开始的向左的最大的连续子串和)。 查询的时候利用这三个标记进行计算就可以了。#include<stdio.h>#include<string.h>#define MAXD 50010int N, A[MAXD], mc[4 * MAXD], lc[4 * MAXD] 阅读全文
posted @ 2012-04-18 12:50 Staginner 阅读(798) 评论(0) 推荐(0) 编辑