hdu 4651 Partition,公式题,维基百科上搜五边形定理即可
2013-08-07 13:24
441 查看
分拆数问题
参见五边形定理。。
http://en.wikipedia.org/wiki/Partition_(number_theory)
#include<cstdio>
int P[100005],MOD=1000000007;
int main()
{
int i,j,k,s,o,T;
for( P[0]=i=1;i<100001;i++)
{
s=0,o=-1;
for (j=k=1;j>0;k++,o*=-1)
{
j=i-(3*k*k+k)/2 ;
if (j>=0) s-=o*P[j] ;
j=i-(3*k*k-k)/2 ;
s%=MOD;
if (j>=0) s-=o*P[j] ;
s=((s%MOD)+MOD)%MOD;
}
P[i]=s ;
}
scanf("%d",&T);
while(T--)
{
scanf("%d",&k);
printf("%d\n",P[k]);
}
return 0;
}
参见五边形定理。。
http://en.wikipedia.org/wiki/Partition_(number_theory)
#include<cstdio>
int P[100005],MOD=1000000007;
int main()
{
int i,j,k,s,o,T;
for( P[0]=i=1;i<100001;i++)
{
s=0,o=-1;
for (j=k=1;j>0;k++,o*=-1)
{
j=i-(3*k*k+k)/2 ;
if (j>=0) s-=o*P[j] ;
j=i-(3*k*k-k)/2 ;
s%=MOD;
if (j>=0) s-=o*P[j] ;
s=((s%MOD)+MOD)%MOD;
}
P[i]=s ;
}
scanf("%d",&T);
while(T--)
{
scanf("%d",&k);
printf("%d\n",P[k]);
}
return 0;
}
相关文章推荐
- 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(五边形数定理)
- hdu 4651(求整数的组合数,五边形定理)
- 2013 多校第五场 hdu 4651 Partition
- hdu - 4651 - Partition
- 2013 多校第六场 hdu 4658 Integer Partition(五边形数定理,整数划分)
- HDU-4651 Partition 整数拆分,递推
- 【五边形定则应用2】HDU 4602——Partition
- HDU 4651 Partition(整数划分)
- 【(好题)组合数+Lucas定理+公式递推(lowbit+滚动数组)+打表找规律】2017多校训练七 HDU 6129 Just do it
- HDU 4651 数论 partition 求自然数的拆分数