摘要:
HDU_2795 尽管h的范围很大,但有一个有效的优化就是如果h>n那么可以直接令h=n,因为即便每行只贴1张海报,最后也只会占n行。 之后就是将每行看成一个点,用线段树记录每行还剩多少空间即可。#include<stdio.h>#include<string.h>#define MAXD 200010int H, W, N, tree[4 * MAXD];void build(int cur, int x, int y){ int mid = (x + y) / 2, ls = 2 * cur, rs = 2 * cur + 1; tree[cur] = W; 阅读全文
posted @ 2012-04-04 21:59
Staginner
阅读(272)
评论(0)
推荐(0)
摘要:
SGU_214 这个题目和最长公共子序列dp的过程是类似的,可以用f[i][j]表示λ匹配到i,μ匹配到j时的最优解。那么f[i][j]只会由三种情况得到:一种情况是λ[i]和某个字符去匹配(显然应该和匹配后增加的值最小的字符去匹配),一种情况是μ[j]和某个字符去匹配(也应该和匹配后增加的值最小的字符去匹配),还有一种情况是λ[i]和μ[j]匹配。#include<stdio.h>#include<string.h>#define MAXD 2010#define INF 0x7fffffffchar a[MAXD], b[MAXD], alph[300];long 阅读全文
posted @ 2012-04-04 00:13
Staginner
阅读(433)
评论(0)
推荐(0)
浙公网安备 33010602011771号