【杂谈】[scoi2006]整数划分
2014-02-20 09:01
323 查看
这道题正解就是尽量分成3.。。最后分不成3的就分成2。。。
但是这样为什么是对的啊。求证明啊!!!
但是这样为什么是对的啊。求证明啊!!!
#include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> #include<iostream> using namespace std; struct bign { int num[5000+10],len; bign() { memset(num,0,sizeof(num)); len=1; } bign operator =(int x) { len=0; while(x) { num[len++]=x%10; x/=10; } if(len==0)len=1; return *this; } bign operator =(const bign &b) { len=b.len; for(int i=0;i<len;i++)num[i]=b.num[i]; return *this; } bign operator *(int x) { bign c; c.len=len; for(int i=0;i<len;i++)c.num[i]=num[i]*x; int temp=0; for(int i=0;i<c.len;i++) { c.num[i]+=temp; temp=c.num[i]/10; c.num[i]%=10; if(i==c.len-1&&temp!=0)c.len++; } return c; } bign operator *(const bign &b) { bign c; c.len=len+b.len-1; for(int i=0;i<len;i++) { for(int j=0;j<b.len;j++)c.num[i+j]+=num[i]*b.num[j]; } int temp=0; for(int i=0;i<c.len;i++) { c.num[i]+=temp; temp=c.num[i]/10; c.num[i]%=10; if(i==c.len-1&&temp!=0)c.len++; } return c; } void print() { printf("%d\n",len); if(len<=100) { for(int i=len-1;i>=0;i--)printf("%d",num[i]); printf("\n"); } else { for(int i=len-1;i>=len-100;i--)printf("%d",num[i]); printf("\n"); } } }; int n; bign qpow(int d,int c) { bign ret; if(c==0)return ret=1; if(c==1)return ret=d; ret=qpow(d,c/2); ret=ret*ret; if(c&1)ret=ret*d; return ret; } int main() { scanf("%d",&n); int r=n/3; if(n%3==1)r--; int s=n-r*3; bign ans; ans=qpow(3,r); if(s)ans=ans*s; ans.print(); return 0; }
相关文章推荐
- BZOJ 1263: [SCOI2006]整数划分( 高精度 )
- BZOJ 1263 [SCOI2006]整数划分 - 高精度乘法
- BZOJ1263: [SCOI2006]整数划分
- bzoj1263 [SCOI2006]整数划分
- BZOJ 1263: [SCOI2006]整数划分
- bzoj1263: [SCOI2006]整数划分
- BZOJ 1263: [SCOI2006]整数划分 数学,高精度
- bzoj1263: [SCOI2006]整数划分(高精度+构造)
- BZOJ1263: [SCOI2006]整数划分
- BZOJ 1263 SCOI2006 整数划分 高精度
- BZOJ 1263 SCOI 2006 整数划分 高精度
- BZOJ1263 [SCOI2006]整数划分
- [SCOI2006]整数划分
- 【BZOJ1263】【SCOI2006】整数划分 高精度+构造
- 1263: [SCOI2006]整数划分
- [BZOJ1263][SCOI2006]整数划分
- 【bzoj1263】【scoi2006】【整数划分】【高精度+贪心】
- 【SCOI2006】【bzoj1263】整数划分
- 【bzoj1263】[SCOI2006]整数划分 高精度
- [BZOJ1263][SCOI2006]整数划分(数学+高精度)