179 条题解
-
0xiaobai LV 9 @ 2007-01-19 21:07:02
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
├ 测试数据 11:答案正确... 0ms
├ 测试数据 12:答案正确... 0ms
├ 测试数据 13:答案正确... 0ms
├ 测试数据 14:答案正确... 0ms
├ 测试数据 15:答案正确... 0ms
├ 测试数据 16:答案正确... 0ms
├ 测试数据 17:答案正确... 0ms
├ 测试数据 18:答案正确... 0ms
├ 测试数据 19:答案正确... 0ms
├ 测试数据 20:答案正确... 0ms
├ 测试数据 21:答案正确... 0ms
├ 测试数据 22:答案正确... 0ms
├ 测试数据 23:答案正确... 0ms
├ 测试数据 24:答案正确... 0ms
├ 测试数据 25:答案正确... 0ms
├ 测试数据 26:答案正确... 0ms
├ 测试数据 27:答案正确... 0ms
├ 测试数据 28:答案正确... 0ms
├ 测试数据 29:答案正确... 0ms
├ 测试数据 30:答案正确... 0ms
├ 测试数据 31:答案正确... 0ms
├ 测试数据 32:答案正确... 0ms
├ 测试数据 33:答案正确... 0ms
├ 测试数据 34:答案正确... 0ms
├ 测试数据 35:答案正确... 0ms
├ 测试数据 36:答案正确... 0ms
├ 测试数据 37:答案正确... 0ms
├ 测试数据 38:答案正确... 0ms
├ 测试数据 39:答案正确... 0ms
├ 测试数据 40:答案正确... 0ms
├ 测试数据 41:答案正确... 0ms
├ 测试数据 42:答案正确... 0ms
├ 测试数据 43:答案正确... 0ms
├ 测试数据 44:答案正确... 0ms
├ 测试数据 45:答案正确... 0ms
├ 测试数据 46:答案正确... 0ms
├ 测试数据 47:答案正确... 0ms
├ 测试数据 48:答案正确... 0ms
├ 测试数据 49:答案正确... 0ms
├ 测试数据 50:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms我也是一次AC!!!!!(兴奋ing)
-
02007-01-08 17:16:07@
To xnyt:
我很理解你AC的激动心情,但仁兄你也不必把那50个测试AC贴出来吧?
好了,讲下做法:越多3越好,剩4的话分成2个2。。。 -
02007-01-04 19:38:16@
我的第30道题and我从学pascal以来做的第1道高精题
纪念一下~~
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
├ 测试数据 11:答案正确... 0ms
├ 测试数据 12:答案正确... 0ms
├ 测试数据 13:答案正确... 0ms
├ 测试数据 14:答案正确... 0ms
├ 测试数据 15:答案正确... 0ms
├ 测试数据 16:答案正确... 0ms
├ 测试数据 17:答案正确... 0ms
├ 测试数据 18:答案正确... 0ms
├ 测试数据 19:答案正确... 0ms
├ 测试数据 20:答案正确... 0ms
├ 测试数据 21:答案正确... 0ms
├ 测试数据 22:答案正确... 0ms
├ 测试数据 23:答案正确... 0ms
├ 测试数据 24:答案正确... 0ms
├ 测试数据 25:答案正确... 0ms
├ 测试数据 26:答案正确... 0ms
├ 测试数据 27:答案正确... 0ms
├ 测试数据 28:答案正确... 0ms
├ 测试数据 29:答案正确... 0ms
├ 测试数据 30:答案正确... 0ms
├ 测试数据 31:答案正确... 0ms
├ 测试数据 32:答案正确... 0ms
├ 测试数据 33:答案正确... 0ms
├ 测试数据 34:答案正确... 0ms
├ 测试数据 35:答案正确... 0ms
├ 测试数据 36:答案正确... 0ms
├ 测试数据 37:答案正确... 0ms
├ 测试数据 38:答案正确... 0ms
├ 测试数据 39:答案正确... 0ms
├ 测试数据 40:答案正确... 0ms
├ 测试数据 41:答案正确... 0ms
├ 测试数据 42:答案正确... 0ms
├ 测试数据 43:答案正确... 0ms
├ 测试数据 44:答案正确... 0ms
├ 测试数据 45:答案正确... 0ms
├ 测试数据 46:答案正确... 0ms
├ 测试数据 47:答案正确... 0ms
├ 测试数据 48:答案正确... 0ms
├ 测试数据 49:答案正确... 0ms
├ 测试数据 50:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02007-01-03 22:42:30@
我差点想填表提交了.
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
├ 测试数据 11:答案正确... 0ms
├ 测试数据 12:答案正确... 0ms
├ 测试数据 13:答案正确... 0ms
├ 测试数据 14:答案正确... 0ms
├ 测试数据 15:答案正确... 0ms
├ 测试数据 16:答案正确... 0ms
├ 测试数据 17:答案正确... 0ms
├ 测试数据 18:答案正确... 0ms
├ 测试数据 19:答案正确... 0ms
├ 测试数据 20:答案正确... 0ms
├ 测试数据 21:答案正确... 0ms
├ 测试数据 22:答案正确... 0ms
├ 测试数据 23:答案正确... 0ms
├ 测试数据 24:答案正确... 0ms
├ 测试数据 25:答案正确... 0ms
├ 测试数据 26:答案正确... 0ms
├ 测试数据 27:答案正确... 0ms
├ 测试数据 28:答案正确... 0ms
├ 测试数据 29:答案正确... 0ms
├ 测试数据 30:答案正确... 0ms
├ 测试数据 31:答案正确... 0ms
├ 测试数据 32:答案正确... 0ms
├ 测试数据 33:答案正确... 0ms
├ 测试数据 34:答案正确... 0ms
├ 测试数据 35:答案正确... 0ms
├ 测试数据 36:答案正确... 0ms
├ 测试数据 37:答案正确... 0ms
├ 测试数据 38:答案正确... 0ms
├ 测试数据 39:答案正确... 0ms
├ 测试数据 40:答案正确... 0ms
├ 测试数据 41:答案正确... 0ms
├ 测试数据 42:答案正确... 0ms
├ 测试数据 43:答案正确... 0ms
├ 测试数据 44:答案正确... 0ms
├ 测试数据 45:答案正确... 0ms
├ 测试数据 46:答案正确... 0ms
├ 测试数据 47:答案正确... 0ms
├ 测试数据 48:答案正确... 0ms
├ 测试数据 49:答案正确... 0ms
├ 测试数据 50:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02006-12-23 23:19:53@
高精度的垃圾题,全0ms过
-
02006-11-08 22:55:35@
这道题就是这酱紫的:
无论是什么数,都必须分成3或2
利用均值定理容易证明:a*b -
02006-10-28 09:35:28@
晕死,搞半天有50个数据,害得我总看到在running,还以为超时了呢
-
02006-10-24 13:17:45@
一次就AC 纪念下
-
02006-08-29 17:40:58@
我晓得了……因为3是大于e的最大的整数……我昏……怎么才想到~~~马上开始写程序!(8-29-17:14)
晕~~怎么没考虑n
-
02006-07-25 17:47:07@
当a>b>e(自然对数)时,a的b次方大于b的a次方,如3*3*3*3>4*4*4,而2*2*2
-
02006-07-25 13:44:40@
为什么要尽量多分出3(小学数奥不过关...)
-
02006-07-23 22:50:01@
测试数据好多啊。。。
-
02006-06-03 10:48:54@
最多有2个2,其余全是3,这样结果最大
最后再用个高乘就行了 -
02006-05-09 13:17:09@
就是"多3少2不要1"的问题.
即尽量的多分出3,如果有剩就分2,若剩下的的分2都不够就不能分1,拆出一个3.
举个例子,
如7,分成3和3后还剩1个1,这个时候不要3*3*1=9,
而应该拆开3分成3,2,2.这样乘积为3*2*2=12.
注意n -
02006-03-10 20:47:49@
我说小学学过的奥数题咋会错呢????
原来输出没有换行!!!!!!!!!!!!
晕!!!
如果你错了全部的点,试试加个“writeln;”;
如果错了几个点,请注意n -
02006-01-27 23:50:39@
为了加速,可以只算出3因子的个数和2因子的个数
然后用快速求幂...... -
02006-01-22 19:48:00@
尽可能多的分解成3,然后剩4以内的就直接乘。
比如10,最大=3*3*4(实际上是3*3*2*2) -
-12017-05-07 13:01:49@
/* 第一眼以为是无脑搜索 后面才知道原来是小学奥数Orz 结果就是 把数n尽可能拆成最多的3 这样乘积会最大 那么如果当前n正好是3的整数倍 自然就是直接拆成n/3个3相乘最优了 如果n%3==1 那么如果拆成n/3个3和一个1相乘不是最优的 而是应该将一个3和那个1组合成一个4很明显比上面的更优 如果是n%3==2 那么拆分成n/3个3然后剩下一个2直接乘进去就好了 注意数据范围很大需要用到高精度 唉高精度写的心好累啊 */ #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int Base=10; struct bign { int num[500],len; bign(int x=1,int len1=1) { memset(num,0,sizeof(num)); num[1]=x; len=len1; } bign bei(int x) { bign c(0,len+1); for(int i=1;i<=len;i++) { c.num[i]+=num[i]*x; if(c.num[i]>=Base) { c.num[i+1]+=c.num[i]/Base; c.num[i]%=Base; } } while(!c.num[c.len]) c.len--; return c; } }; int n; int main() { scanf("%d",&n); if(n<=3) { cout<<n<<endl; return 0; } bign x(3,1); if(n%3==0) { for(int i=1;i<n/3;i++) x=x.bei(3); } else if(n%3==1) { for(int i=1;i<(n/3-1);i++) x=x.bei(3); x=x.bei(4); } else { for(int i=1;i<n/3;i++) x=x.bei(3); x=x.bei(2); } for(int i=x.len;i>=1;i--) cout<<x.num[i]; cout<<endl; return 0; }
-
-12017-03-20 10:50:43@
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<queue> #include<string> #include<cstring> #define inf 1e9 #define ll long long #define For(i,j,k) for(int i=j;i<=k;i++) #define Dow(i,j,k) for(int i=k;i>=j;i--) using namespace std; int ans[100001]; int n; inline void mul(int x) { For(i,1,ans[0]) ans[i]*=x; For(i,1,ans[0]) { ans[i+1]+=ans[i]/10; ans[i]%=10; } while(ans[ans[0]+1]) ++ans[0]; while(!ans[ans[0]-1]) --ans[0]; } int main() { scanf("%d",&n); ans[0]=ans[1]=1; while (n) { if(n>4||n==3) mul(3),n-=3; if(n==4) mul(4),n-=4; if(n==2) mul(2),n-=2; if(n==1) mul(1),n-=1; } Dow(i,1,ans[0]) printf("%d",ans[i]); }