题目:LINK
题意:求满足题目要求的x序列的种类数。
可以发现符合条件的序列去重后是一个0, 1, ..., k的连续序列(k满足k*(k+1)/2 <= n) ,则这个去重后的序列长度最长为sqrt(n)规模大小。
可以DP。dp[i][j]表示用到1~i的连续数字当前和为j的方法数。不用考虑长度是否满足n个,因为前面可以用0补上去。
dp[i][j] = dp[i][j-i] + dp[i-1][j-i];
ans = sum(dp[i][n]) for i in range(1, k)
【HDU 5185 Equation (DP)】
/* ***********************************************
Author: Napoleon
Mail: tyfdream@163.com
Created Time: 2015-03-14 10:55:36
Problem: BC_32_D.cpp
************************************************ */
#include
#include
#include
#include
#include
#include
#include
#include
#include
推荐阅读
- 题目|C. Ayoub and Lost Array(思维dp)
- dp|AC Challenge(状态压缩DP)
- 题解|【HNOI2017】大佬-dalao
- CodeForces - 1282B2 B2. K for the Price of One (Hard Version)
- 经典题|3462: DZY Loves Math II
- Android|【常用工具类】DensityUtils(dp px 互相转换)