[bzoj1263]整数划分

Posted pywbktda

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[bzoj1263]整数划分相关的知识,希望对你有一定的参考价值。

观察样例,令f(n)表示n拆分的答案,猜想$f(n)=3f(n-3)$,当$nle 4$时$f(n)=n$
取3的原因是因为对于给定的$x+y$,当$4<x+y$,显然有$3^{x+y-3}$最大,否则直接取$x+y$即为最大值,也就是给出的递推式

技术图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define P 10
 4 int n,ans[10005];
 5 void cheng(int k){
 6     ans[1]*=k;
 7     for(int i=2;i<=ans[0];i++){
 8         ans[i]=ans[i]*k+ans[i-1]/P;
 9         ans[i-1]%=P;
10     }
11     if (ans[ans[0]]>=P){
12         ans[ans[0]+1]=ans[ans[0]]/P;
13         ans[ans[0]++]%=P;
14     }
15 }
16 int main(){
17     scanf("%d",&n);
18     ans[0]=ans[1]=1;
19     while (n>4){
20         n-=3;
21         cheng(3);
22     }
23     cheng(n);
24     printf("%d
",ans[0]);
25     for(int i=ans[0];i>max(ans[0]-100,0);i--)printf("%d",ans[i]);
26 }
View Code

 

以上是关于[bzoj1263]整数划分的主要内容,如果未能解决你的问题,请参考以下文章

BZOJ1263 [SCOI2006]整数划分 高精度

[bzoj1263]整数划分

BZOJ 1263 整数划分(数学+高精度)

Bzoj-1263[SCOI2006]整数划分

(A - 整数划分 HYSBZ - 1263)(数组模拟大数乘法)

bzoj1263