2012年9月30日
摘要: BZOJ_2272 可以用f[i][j][k]表示递推到第i个字符时,大写字符已经有了j个,且最后一个字符是k,这样总状态一共约有500*250*52,总的状态转移次数约有500*250*200,是可以承受的。#include<stdio.h>#include<ctype.h>#include<string.h>#include<vector>#define MOD 97654321int N, U, L, P, f[2][260][128];std::vector<int> g[128];void init(){ N = U + L 阅读全文
posted @ 2012-09-30 12:13 Staginner 阅读(281) 评论(0) 推荐(0)
摘要: BZOJ_2274 这个题目不难得到dp的递推方程,f[i]=sum{f[j](A[i]-A[j]>=0)},但是如果裸着做显然是O(N^2)的复杂度,但如果我们把每次计算的f[i]依A[i]的值的大小存到对应的位置时,每次就可以O(logN)求得sum{f[j](A[i]-A[j]>=0)}了。#include<stdio.h>#include<string.h>#include<algorithm>#define MAXD 100010#define MOD 1000000009int N, S, a[MAXD], A[MAXD], sum[ 阅读全文
posted @ 2012-09-30 11:10 Staginner 阅读(460) 评论(0) 推荐(0)