地址:acm.hust.edu.cn/vjudge/contest/view.action?cid=62706#overview
A:
两个人用进行n场比赛,赢得1分,否则输1分,问最后得分为k的有多少种情形。
先把它变成一个队列,记dp[i][j][k]表示到第i-1个数为止,a赢了j场,b赢了k场
显然,对于第i个数来说,他可以和前面剩下的匹配,即:
dp[i][j][k] += dp[i-1][j][k](第i个空着)
dp[i][j][k+1] += dp[i-1][j][k](第i个是b的)
dp[i][j+1][k] += dp[i-1][j][k](第i个是a的)
最后答案就是dp[i+1][(n+k)/2][(n-k)/2],特判一奇偶
B:
水题
C:
贪心,将龙的财富值从大到小取,取的时候,所有龙后面的公主-1,当为0的时候,即左边不能再取了。
D:
只要知道分为几个集合就可以了(从大到小排序之后的第k个数就是)
E:
水题
F:
直接暴力把每种组合记下来即可:
比如width=5 ht=3 len=10,排完序后直接二进制枚举一下就可以了
G:
贪心,先开始取左边的
H:
记忆化搜索或者拓扑排序
I:
数位dp,dfs(depth,n3,n5,e)表示从前到后搜索到第depth个数的时候,mod(3^b)=n3,mod(3^b)=n5 ,e=1表示当前>x,否则<=x 时的状态。
J:
二分答案就可以了
K:
水题