摘要:        
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)
        
 
                     
                    
                 
                    
                 
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号