上一页 1 2 3 4 5 6 7 8 9 ··· 21 下一页
摘要: 因为只有四种棋子,而且每种最多40颗,所以设dp[i][j][k][l],表示分别使用了i,j,k,l,颗1,2,3,4的棋子所获最大值 则方程为 int r=i+j*2+k*3+l*4+1; if(i) dp[i][j][k][l]=max(dp[i][j][k][l],dp[i-1][j][k] 阅读全文
posted @ 2018-08-13 21:48 lmjer 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 马拉松冰球赛 (marathon.pas/c/cpp) (marathon.pas/c/cpp) 马拉松冰球锦标赛的日子就要到了。正如马拉松冰球比赛中经常出现的那样,比赛时间是 M 分钟。和常规的冰球比赛一样,在每一给定时刻,场上两队各有 6 名球员。然而,一场马拉松冰球比赛可以持续很长时间,所以教 阅读全文
posted @ 2018-08-13 20:56 lmjer 阅读(148) 评论(0) 推荐(0) 编辑
摘要: Description 折叠的定义如下: 1. 一个字符串可以看成它自身的折叠。记作S  S 2. X(S)是X(X>1)个S连接在一起的串的折叠。记作X(S)  SSSS…S(X个S)。 3. 如果A  A’, BB’,则AB  A’B’ 例如,因为3(A) = AAA, 2(B) = 阅读全文
posted @ 2018-08-11 20:34 lmjer 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 区间dp模板题 外面一层控制长度 内层控制左端点l 最内层控制切点k 阅读全文
posted @ 2018-08-08 19:13 lmjer 阅读(132) 评论(0) 推荐(0) 编辑
摘要: Strategic game Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 9313 Accepted: 4368 Description Bob enjoys playing computer games, especiall 阅读全文
posted @ 2018-08-04 17:07 lmjer 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 即在树上做背包 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct my{ int next; int v; }; const int maxn=1000+10; int adj[max 阅读全文
posted @ 2018-08-04 16:09 lmjer 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 换根法思想为, 1,随便找一个点作为根进行dp, 2,再以原来点为根进行dp,此次dp,设最优解为 f[x],那么f[root]=d[root],这是显而易见的 然后再通过找d[son]与f[x]之间关系进行dp 比如本道题,若f[x]已知最优解,那么把son换成根,f[x]的最优解即为 d[v]+ 阅读全文
posted @ 2018-08-04 16:03 lmjer 阅读(1379) 评论(1) 推荐(1) 编辑
摘要: 4867: 没有上司的舞会 Description 有个公司要举行一场晚会。 为了能玩得开心,公司领导决定:如果邀请了某个人,那么一定不会邀请他的上司 (上司的上司,上司的上司的上司……都可以邀请)。 题目 每个参加晚会的人都能为晚会增添一些气氛,求一个邀请方案,使气氛值的和最大。 Input 第1 阅读全文
posted @ 2018-08-03 09:41 lmjer 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 直接爆搜+状压dp即可 设dp[i] 表示为状态为i时的最大值 则dp[i]=max{dp[x]+deep[i]*w[i]} 阅读全文
posted @ 2018-08-03 09:37 lmjer 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 同样设计出状态后判断是否相容即可 设1为竖放长方形上面一半,0为其他情况 那么状态可转移,当且仅当下面情况 1.两个与运算后值为1,保证上下形成竖放长方形 2.两个 或 运算后0的个数为偶数,保证形成横放长方形 阅读全文
posted @ 2018-08-02 20:17 lmjer 阅读(165) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 21 下一页