疯了!第四个点总是错

P1838 三子棋I

@[Yuzilihhh](/user/567522) 巨佬巨佬,代码怎么肝出来的
by ACPC @ 2022-12-30 18:11:15


tql,我只会短代码过这道题
by ACPC @ 2022-12-30 18:12:14


用long long ago……
by Yuzilihhh @ 2022-12-30 18:12:38


long long ago 让我想起了高兴的事情(悲
by Creative_sad_yosgic @ 2022-12-30 18:14:13


@[csy114514](/user/474692) 所以你知道这题怎么解吗……
by Yuzilihhh @ 2022-12-30 18:16:13


抱歉,重新贴一下代码: ```cpp #include<bits/stdc++.h> using namespace std; int n,a[5][5],s[10],l,k; bool ca() { if(a[1][1]==2&&a[1][2]==2&&a[1][3]==2) return true; if(a[1][1]==2&&a[2][1]==2&&a[3][1]==2) return true; if(a[3][1]==2&&a[3][2]==2&&a[3][3]==2) return true; if(a[1][3]==2&&a[2][3]==2&&a[3][3]==2) return true; if(a[2][2]==2) { if(a[1][1]==2&&a[3][3]==2) return true; if(a[1][3]==2&&a[3][1]==2) return true; if(a[2][1]==2&&a[2][3]==2) return true; if(a[1][2]==2&&a[3][2]==2) return true; } return false; } bool cu() { if(a[1][1]==1&&a[1][2]==1&&a[1][3]==1) return true; if(a[1][1]==1&&a[2][1]==1&&a[3][1]==1) return true; if(a[3][1]==1&&a[3][2]==1&&a[3][3]==1) return true; if(a[1][3]==1&&a[2][3]==1&&a[3][3]==1) return true; if(a[2][2]==1) { if(a[1][1]==1&&a[3][3]==1) return true; if(a[1][3]==1&&a[3][1]==1) return true; if(a[2][1]==1&&a[2][3]==1) return true; if(a[1][2]==1&&a[3][2]==1) return true; } return false; } int main() { cin>>n; while(n) { s[++l]=n%10; n/=10; } for(int i=1;i<=l;++i) { int d=s[++k]; switch (d) { case 1: { a[1][1]=k%2+1; break; } case 2: { a[1][2]=k%2+1; break; } case 3: { a[1][3]=k%2+1; break; } case 4: { a[2][1]=k%2+1; break; } case 5: { a[2][2]=k%2+1; break; } case 6: { a[2][3]=k%2+1; break; } case 7: { a[3][1]=k%2+1; break; } case 8: { a[3][2]=k%2+1; break; } case 9: { a[3][3]=k%2+1; break; } default: break; } } if(!cu()) { if(!ca()) cout<<"drew."; else cout<<"xiaoa wins."; } else { if(ca()) cout<<"drew."; else cout<<"uim wins."; } //cout<<ca()<<' '<<cu(); return 0; } ```
by Yuzilihhh @ 2022-12-30 18:23:00


草(
by _FJqwq @ 2022-12-30 18:44:09


我肯定知道 但是~~你这种做法~~恐怕我不能帮助()
by Creative_sad_yosgic @ 2022-12-30 18:54:01


我先~~用五分钟~~A一下吧()
by Creative_sad_yosgic @ 2022-12-30 18:55:53


~~我好像看不懂你的代码~~ 但是贴一下我的代码吧 希望对你有帮助 ```cpp #include<bits/stdc++.h> using namespace std; int a[4][4]; string str; void solve(char c,int id){ int gyf=c-'0'; a[gyf/3+(gyf%3!=0?1:0)][gyf%3?gyf%3:3]=id;//存储 } int check(){ if((a[1][1]==a[2][2]&&a[2][2]==a[3][3]&&!a[3][3])||(a[1][3]==a[2][2]&&a[2][2]==a[3][1]&&a[3][1]!=0)) return a[2][2];//对角线 for(int i=1;i<=3;i++) if(a[i][1]==a[i][2]&&a[i][2]==a[i][3]&&a[i][3]!=0) return a[i][3];//行 for(int j=1;j<=3;j++) if(a[1][j]==a[2][j]&&a[2][j]==a[3][j]&&a[3][j]!=0) return a[2][j];//列 return 0; } int main() { cin>>str; for(int i=0;i<str.size();i++) solve(str[i],i%2?1:2); /*for(int i=1;i<=3;i++){ for(int j=1;j<=3;j++) cout<<a[i][j]; cout<<'\n'; }*/ check()==2?cout<<"xiaoa wins.":check()==1?cout<<"uim wins.":cout<<"drew."; return 0; } ```
by Creative_sad_yosgic @ 2022-12-30 19:24:06


| 下一页