题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2346
题意简述:给定一个偶数n,求n位 lucky tickets 的个数,lucky tickets:n位数可含前导0,前n/2项上数字和等于后n/2项上数字和。
解题思路:最多才那么几组数据,而且就算用暴力全部算出来也就那么几秒钟,如果在比赛首选方法当然是打表。
但是,平时做题过程中,是需要锻炼自己的思维能力的。
看到这题时,觉得应该是个递推,于是想啊想,想到如下思路:
对于前n/2项,其数字和最多也就是9*n/2。那么假设前m项的数字和为value,怎么求每位上的数字(0~9)的分配总数呢?dp。很快想到了一个递推关系:dp[i][j]表示前j项,数字和为i的分配总数;那么转移方程就可以确定为:dp[i][j]=sum(dp[i-v][j-1]); 求出这个参数,这题显然就解决了。(ps:有了思路,代码就可以自己写,不贴代码。有什么问题,希望路过的各位大牛指教)