- 最佳课题选择
- 2009-07-24 09:11:24 @
只是我写的高精度的程序,本来__int64过了,考虑到考试的时候不能用__int64就写了个高精度的
发现是dp的时候,19大于20
但是单独写测试程序,不会出现这样的问题
求教神牛
#include
using namespace std;
int
n, m, a[21], b[21];
struct
highp
{
int n[31];
highp()
{
memset( n, 0, sizeof n );
n[0] = 1;
}
highp
operator + ( highp h )
{
highp sum;
sum.n[0] = h.n[0] > n[0] ? h.n[0] : n[0];
for( int i = 1; i 0 )
sum.n[0]++;
return sum;
}
highp
operator * ( highp h )
{
highp produ;
produ.n[0] = h.n[0] + n[0];
for( int i = 1; i ( highp h )
{
if( n[0] > h.n[0] )
return true;
else if( n[0] < h.n[0] )
return false;
else
{
for( int i = n[0]; i > 0; i-- )
if( n[i] < h.n[i] )
return false;
return true;
}
}
void
FillMax()
{
n[0] = 30;
}
}ans[21][201], c[21][201];
highp
Tohighp( int x )
{
highp h;
while( x )
{
h.n[h.n[0]++] = x % 10;
x /= 10;
}
while( h.n[h.n[0]] == 0 && h.n[0] > 1 )
h.n[0]--;
return h;
}
ostream&
operator 0; i-- )
out > n >> m;
for( int i = 1; i > a[i] >> b[i];
}
void
__init__()
{
memset( c, 0, sizeof c );
for( int i = 1; i
1 条评论
-
LiuWeiMing1997 LV 8 @ 2016-12-24 00:22:07
要用__int64
100 * 200^5 爆int啊
- 1