在电脑上跑,测试数据都过了,但洛谷全wa

P1002 [NOIP2002 普及组] 过河卒

@[逢何](/space/show?uid=81084) 您第四个点溢出了,试试 long long
by Anguei @ 2018-02-27 11:56:33


@[yyfcpp](/space/show?uid=53062) 应该不光是溢出的事
by namespace_std @ 2018-02-27 21:07:41


@[逢何](/space/show?uid=81084) ```cpp for(i=0;i<=nx;i++) for(j=0;j<=ny;j++) ``` 在上面的两行中i,j初始化为1不是0
by namespace_std @ 2018-02-27 21:09:31


```cpp #include<cstdio> #include<cstring> #include<algorithm> #include<cctype> using namespace std; #define maxn 100002; char ss[233333]; inline char get() { static char buf[1<<14],*ptf1=buf,*ptf2=buf; return (ptf1==ptf2)&&(ptf2=(ptf1=buf)+fread(buf,1,1<<14,stdin),ptf1==ptf2)?EOF:*ptf1++; } inline int read() { int data=0,w=1; char ch=0; while(!isdigit(ch)&&ch!='-') ch=get(); if(ch=='-') w=-1,ch=get(); while(isdigit(ch)) data=data*10+ch-48,ch=get(); return data*w; } struct bigint{ int num[233],len; void In() { char s[666]; scanf("%s",s); len=strlen(s); for(int i=1;i<=len;i++) num[i]=s[i-1]-48; return; } void Out() { for(int i=1;i<=len;i++) printf("%d",num[i]); putchar('\n'); return; } bool operator<(bigint s) const { if(len<s.len) return true; else if(len>s.len) return false; else { for(int i=1;i<=len;i++) if(num[i]<s.num[i]) return true; else if(num[i]>s.num[i]) return false; } return false; } void clear() { memset(num,0,sizeof(num)); len=1; return; } void turn() { bigint tem; tem.len=len; memcpy(tem.num,num,sizeof(tem.num)); clear(); len=tem.len; for(int i=1;i<=len;i++) num[i]=tem.num[len+1-i]; return; } bigint operator+(bigint s) const { bigint res,tem; res.len=max(len,s.len); tem.len=len; memcpy(tem.num,num,sizeof(tem.num)); len=tem.len; for(int i=1;i<=len;i++) num[i]=tem.num[len+1-i]; s.turn(); for(int i=1;i<=res.len;i++) { res.num[i]+=num[i]+s.num[i]; res.num[i+1]+=res.num[i]/10; res.num[i]%=10; } while(res.len>1&&res.num[res.len]==0) res.len--; res.turn(); return res; } }; int main() { bigint a,b; a.In(),b.In(); (a+b).Out(); return 0; } ```
by Explorer_CYC @ 2018-03-05 21:30:57


|