hdu - 4651 - Partition
2013-08-07 19:35
281 查看
题意:把一个整数N(1 <= N <= 100000)拆分不超过N的正整数相加,有多少种拆法。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4651
——>>好经典的问题,但数好大,比赛卡住了。。。
原来,这个问题有个公式计算:
q[i]为第i个广义五边形数。
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4651
——>>好经典的问题,但数好大,比赛卡住了。。。
原来,这个问题有个公式计算:
q[i]为第i个广义五边形数。
#include <cstdio> using namespace std; const int maxn = 100000; const int mod = 1000000007; int p[maxn+10]; void init(){ int i, j, k, l; long long sum; p[0] = 1; for(i = 1; i <= maxn; i++){ sum = 0; for(j = 1, k = 1, l = 1; j > 0; k++, l = -l){ j = i - (3*k*k - k) / 2; if(j >= 0) sum += l * p[j]; j = i - (3*k*k + k) / 2; if(j >= 0) sum += l * p[j]; sum = (sum % mod + mod) % mod; } p[i] = sum; } } int main() { int T, n; init(); scanf("%d", &T); while(T--){ scanf("%d", &n); printf("%d\n", p ); } return 0; }
相关文章推荐
- HDU-4651 Partition 整数拆分,递推
- HDU 4651 2013多校联合第5场 Partition 数论
- hdu 4651 Partition(公式)
- hdu 4651 Partition
- HDU 4651 数论 partition 求自然数的拆分数
- hdu 4651 Partition 五边形数定理
- HDU:4651 Partition
- hdu 4651 Partition 整数划分+公式
- hdu_4651_Partition(公式)
- hdu 4651 Partition 多校第五场
- HDU 4651 Partition
- hdu_4651_Partition(公式)
- [五边形数定理 DP] 51Nod 1259 整数划分 V2 & HDU 4651 Partition
- HDU 4651 Partition 整数划分,可重复情况
- HDU 4651 Partition
- HDU 4651 Partition(整数拆分)
- hdu 4651 Partition (利用五边形定理求解分割数)
- 【公式题】HDU 4651—— Partition
- hdu 4651 - Partition(五边形数定理)
- hdu - 4651 - Partition(五边形数定理)