我设计的状态及转移过程dp[i][j]代表前i分钟最多走j次所能获得苹果的最大值则可以由 前i-1分钟最多走j次 前i-1分钟最多走j-1次 这两个状态转移过来注意,第二种的转移第j次可以选择走或者不走。因为是最多走j次跟以前做过的一个树形DP神似View Code #include<cstdio>#include<cstring>int dp[1010][35];int num[1010];int max(int a,int b){ return a>b?a:b;}int main(){ int T,W,i,j; while(scanf("%d%d&q Read More
posted @ 2012-04-03 22:55 Because Of You Views(1314) Comments(2) Diggs(0) Edit
题目链接http://www.codeforces.com/problemset/problem/145/E蛮好的题目一连串由4、7组成的字符串两种操作:count 输出整个区间内最长的不下降子序列的长度switch a b 将a、b之间的数4变成7 7变成4注意,最长不下贱子序列不一定要连续一般情况下,不连续的最长不下降子序列的长度是无法维护的,但是这道题目的特殊性显而易见,只有4 7 两种数字,相当于0 1做法:1:分别记录区间最长不下降和最长不上升的序列的长度,这样子进行异或操作的时候可以直接互换2:记录区间0的个数和1的个数,利用这两个信息可以 在将信息往上传的时候 维护区间最长的.. Read More
posted @ 2012-04-03 18:45 Because Of You Views(447) Comments(0) Diggs(0) Edit
可以用来锻炼线段树基本功这种题思路基本不用怎么想,固定好代码框架,往里面填代码就好了,但要绝对仔细因为有异或操作,所以要把白色和黑色的信息都记录下来,在更新的时候可以互换View Code #include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxn = 111111;int sum[maxn<<2];int lb[m Read More
posted @ 2012-04-03 10:07 Because Of You Views(1329) Comments(0) Diggs(0) Edit