F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

View Compilation Error

0_0_23128127_8340.cpp:26:28: error: expected initializer at end of input
 mat operator/(mat &s,mat &t)//因为“*"被后四位的快速幂占用了,所以换成了'/'(其实什么都可以){    mat r;    for(int i=1; i<=2; i++)        for(int j=1; j<=2; j++)        {            int f1=1,f2=1;            if(s.b[i][1]<0||t.b[1][j]<0) f1=0;//判断是否存在-1            if(s.b[i][2]<0||t.b[2][j]<0) f2=0;            if(!f1&&f2)                r.b[i][j]=s.b[i][2]+t.b[2][j];            else if(f1&&!f2)                r.b[i][j]=s.b[i][1]+t.b[1][j];            else if(f1&&f2)//若都不是-1            {                double x=s.b[i][1]+t.b[1][j],y=s.b[i][2]+t.b[2][j];                r.b[i][j]=min(x,y)+log10(1+pow(10,max(x,y)-min(x,y)));//提取公因式            }            else if(!f1&&!f2)//若都是-1,那么负值为-1,相当于普通矩阵的0                r.b[i][j]=-1.0;        }    return r;}int pow_int(mat base,int k)//后四位{    mat ans;    memset(ans.a,0,sizeof(ans.a));    ans.a[1][1]=ans.a[2][2]=1;    int cases=0;    while(k)    {        if(k&1)            ans=ans*base;        base=base*base;        k>>=1;    }    return ans.a[1][1];}double pow_double(mat base,int k)//前四位{    mat ans;    ans.b[1][2]=ans.b[2][1]=-1.0;    ans.b[1][1]=ans.b[2][2]=log10(1.0);    while(k)    {        if(k&1)            ans=ans/base;        base=base/base;        k>>=1;    }    int x=(int)ans.b[1][1];    ans.b[1][1]-=x;    return pow(10.0,ans.b[1][1])*1000;}int main(){    int p[40];//前39位预处理    p[0]=0;    p[1]=1;    for(int i=2; i<=39; i++)    {        p[i]=p[i-1]+p[i-2];    }    while(~scanf("%d",&n))    {        if(n<=39)            printf("%d\n",p[n]);        else        {            mat base;            base.a[2][1]=base.a[1][2]=base.a[1][1]=1;            base.a[2][2]=0;            base.b[1][2]=base.b[2][1]=base.b[1][1]=log10(1.0);            base.b[2][2]=-1.0;            int r_ans=pow_int(base,n-1);            int l_ans=(int)pow_double(base,n-1);            printf("%d...%04d\n",l_ans,r_ans);        }    }}
                            ^


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2025 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.001000(s) query 1, Server time : 2025-02-28 01:01:33, Gzip enabled