求助大佬,为何呈现出紫色星空

P1838 三子棋I

你的数组开太小了,而且还会TLE。
by what_can_I_do @ 2022-08-17 14:12:46


敢问大佬,开多大合适
by CharlieLee @ 2022-08-17 14:16:22


@[CharlieLee](/user/745235) 豪爽亿点,开10都行反正爆不了
by gongziwen @ 2022-08-17 14:20:37


还有 drew. 后面有个点
by xiaoqian02 @ 2022-08-17 14:30:57


a 数组初值是有 1 的,建议全部改成 10。 另外 b 和 c 要加个 1 吧
by xiaoqian02 @ 2022-08-17 14:33:58


对了 b 和 c 是 t/3,t%3,不是 n
by xiaoqian02 @ 2022-08-17 14:34:50


@[CharlieLee](/user/745235) 其实数组 4 够了
by xiaoqian02 @ 2022-08-17 14:37:33


WA掉了 ``` #include<bits/stdc++.h> using namespace std; int a[10][10]={{0,0,0,0}, {0,1,2,3},{0,4,5,6},{0,7,8,9}}; int main(){ long long n; cin>>n; bool flag=false; int cnt=0; while(n>0){ cnt++; int t=n%10; int b=t/3; int c=t%3; if(cnt%2==1) a[b][c]=1; else a[b][c]=0; n/=10; } if(a[1][1]==a[1][2]&&a[1][2]==a[1][3]){ flag=true; if(a[1][1]==1) cout<<"xiaoa wins."; else cout<<"uim wins."; } if(a[2][1]==a[2][2]&&a[2][2]==a[2][3]){ flag=true; if(a[2][1]==1) cout<<"xiaoa wins."; else cout<<"uim wins."; } if(a[3][1]==a[3][2]&&a[3][2]==a[3][3]){ flag=true; if(a[3][1]==1) cout<<"xiaoa wins."; else cout<<"uim wins."; } if(a[1][1]==a[2][1]&&a[2][1]==a[3][1]){ flag=true; if(a[1][1]==1) cout<<"xiaoa wins."; else cout<<"uim wins."; } if(a[1][2]==a[2][2]&&a[2][2]==a[3][2]){ flag=true; if(a[1][2]==1) cout<<"xiaoa wins."; else cout<<"uim wins."; } if(a[1][3]==a[2][3]&&a[2][3]==a[3][3]){ flag=true; if(a[1][3]==1) cout<<"xiaoa wins."; else cout<<"uim wins."; } if(a[1][1]==a[2][2]&&a[2][2]==a[3][3]){ flag=true; if(a[1][1]==1) cout<<"xiaoa wins."; else cout<<"uim wins."; } if(a[3][1]==a[2][2]&&a[2][2]==a[1][3]){ flag=true; if(a[1][1]==1) cout<<"xiaoa wins."; else cout<<"uim wins."; } if(flag==false) cout<<"drew."; return 0; } ```
by CharlieLee @ 2022-08-17 17:50:00


@[CharlieLee](/user/745235) ### 换行特殊值要特判一下! ##### AC代码 ```cpp #include<bits/stdc++.h> using namespace std; char tmp[3][3]; int main(){ string st; cin>>st; for (int i=0;i<st.size();i++){ int T=st[i]-'0'; if (T%3==0)//换行特殊值特判 tmp[T/3-1][2]=((i+1)%2!=0)?'a':'u'; else tmp[T/3][T%3-1]=((i+1)%2!=0)?'a':'u';//(0,0) - (2,2) /* for (int i=0;i<=2;i++){ for (int j=0;j<=2;j++) cout<<tmp[i][j]<<" "; cout<<endl; } cout<<endl; */ } /* X ? ? ? X ? ? ? X */ if (tmp[0][0]==tmp[1][1]&&tmp[1][1]==tmp[2][2]){ if (tmp[0][0]=='a') cout<<"xiaoa wins."; else cout<<"uim wins."; return 0; } /* ? ? X ? X ? X ? ? */ if (tmp[0][2]==tmp[1][1]&&tmp[1][1]==tmp[2][0]){ if (tmp[0][2]=='a') cout<<"xiaoa wins."; else cout<<"uim wins."; return 0; } /* X X X ? ? ? ? ? ? */ if (tmp[0][0]==tmp[0][1]&&tmp[0][1]==tmp[0][2]){ if (tmp[0][0]=='a') cout<<"xiaoa wins."; else cout<<"uim wins."; return 0; } /* ? ? ? X X X ? ? ? */ if (tmp[1][0]==tmp[1][1]&&tmp[1][1]==tmp[1][2]){ if (tmp[1][0]=='a') cout<<"xiaoa wins."; else cout<<"uim wins."; return 0; } /* ? ? ? ? ? ? X X X */ if (tmp[2][0]==tmp[2][1]&&tmp[2][1]==tmp[2][2]){ if (tmp[2][0]=='a') cout<<"xiaoa wins."; else cout<<"uim wins."; return 0; } /* X ? ? X ? ? X ? ? */ if (tmp[0][0]==tmp[1][0]&&tmp[1][0]==tmp[2][0]){ if (tmp[0][0]=='a') cout<<"xiaoa wins."; else cout<<"uim wins."; return 0; } /* ? X ? ? X ? ? X ? */ if (tmp[0][1]==tmp[1][1]&&tmp[1][1]==tmp[2][1]){ if (tmp[0][1]=='a') cout<<"xiaoa wins."; else cout<<"uim wins."; return 0; } /* ? ? X ? ? X ? ? X */ if (tmp[0][2]==tmp[1][2]&&tmp[1][2]==tmp[2][2]){ if (tmp[0][2]=='a') cout<<"xiaoa wins."; else cout<<"uim wins."; return 0; } cout<<"drew."; return 0; } ```
by dream_time @ 2022-10-22 20:46:05


|