bzoj1263 [SCOI2006]整数划分
2017-08-29 07:43
295 查看
题目
数学结论题
先考虑全分成实数,根据基本不等式,这些数要全部相等才最大。
则设其为x,求x^(n/x)最大,具体证明我当然不会(据说是先取对数,在证明),结论是,x取自然对数时最大,即e,2.7几几几。最接近的整数为3,所以尽量取3,不够取2,显然不取1。
注意要用高精度。
数学结论题
先考虑全分成实数,根据基本不等式,这些数要全部相等才最大。
则设其为x,求x^(n/x)最大,具体证明我当然不会(据说是先取对数,在证明),结论是,x取自然对数时最大,即e,2.7几几几。最接近的整数为3,所以尽量取3,不够取2,显然不取1。
#include<bits/stdc++.h> using namespace std; int n; int A[5001],len,k; void write(int x) { putchar(x+'0'); } int main() { //freopen("in.txt","r",stdin); scanf("%d",&n); if(n%3==0)k=n/3,A[1]=1,len=1; if(n%3==1)k=n/3-1,A[1]=4,len=1; if(n%3==2)k=n/3,A[1]=2,len=1; for(int i=1;i<=k;i++) { int x=0; for(int j=1;j<=len;j++) { x=x+A[j]*3; A[j]=x%10; x/=10; } while(x)A[++len]=x%10,x/=10; } printf("%d\n",len); if(len<=100) { for(int i=len;i>=1;i--) write(A[i]); } else { for(int i=len;i>=(len-99);i--) write(A[i]); } return 0; }
注意要用高精度。
相关文章推荐
- 【BZOJ1263】【SCOI2006】整数划分 高精度+构造
- bzoj 1263: [SCOI2006]整数划分
- bzoj1263: [SCOI2006]整数划分(高精度+构造)
- BZOJ 1263 [SCOI2006]整数划分 - 高精度乘法
- BZOJ1263: [SCOI2006]整数划分
- BZOJ 1263: [SCOI2006]整数划分( 高精度 )
- BZOJ 1263: [SCOI2006]整数划分 数学,高精度
- [BZOJ1263][SCOI2006]整数划分
- BZOJ1263 [SCOI2006]整数划分
- [BZOJ1263][SCOI2006]整数划分(数学+高精度)
- 【SCOI2006】【bzoj1263】整数划分
- 【SCOI2006】【bzoj1263】整数划分
- BZOJ 1263 SCOI2006 整数划分 高精度
- BZOJ 1263: [SCOI2006]整数划分
- 【bzoj1263】[SCOI2006]整数划分 高精度
- BZOJ 1263 SCOI 2006 整数划分 高精度
- 【bzoj1263】【scoi2006】【整数划分】【高精度+贪心】
- 1263: [SCOI2006]整数划分
- 【杂谈】[scoi2006]整数划分
- BZOJ 1263 整数划分