我用的是暴力,但是代码卡在了处理不是单词的部分。

P1101 单词方阵

# 您是否听说过$for$循环嵌套? 我的思路是这样的: 1、判断当前位置是否为$'y'$ 2、用亿点$for$循环进行$8$个方向的判断 3、如果是正确的单词,则将判断数组设为$1$ # AC代码: ```cpp #include <bits/stdc++.h> using namespace std; char c[110][110]; bool p[110][110]; int main(){ int n; cin>>n; for(int i = 1;i <= n;i++){ for(int j = 1;j <= n;j++){ cin>>c[i][j]; } } string s = "yizhong"; for(int i = 1;i <= n;i++){ for(int j = 1;j <= n;j++){ if(c[i][j] != 'y') continue; int cnt = 1; if(j >= 7){ for(int k = 1;k < 7;k++){ if(c[i][j-k] == s[k]) cnt++; } if(cnt == 7){ for(int k = 0;k < 7;k++){ p[i][j-k] = 1; } } } cnt = 1; if(i >= 7){ for(int k = 1;k < 7;k++){ if(c[i-k][j] == s[k]) cnt++; } if(cnt == 7){ for(int k = 0;k < 7;k++){ p[i-k][j] = 1; } } } cnt = 1; if(i <= n-6){ for(int k = 1;k < 7;k++){ if(c[i+k][j] == s[k]) cnt++; } if(cnt == 7){ for(int k = 0;k < 7;k++){ p[i+k][j] = 1; } } } cnt = 1; if(j <= n-6){ for(int k = 1;k < 7;k++){ if(c[i][j+k] == s[k]) cnt++; } if(cnt == 7){ for(int k = 0;k < 7;k++){ p[i][j+k] = 1; } } } cnt = 1; if(i >= 7 && j >= 7){ for(int k = 1;k < 7;k++){ if(c[i-k][j-k] == s[k]) cnt++; } if(cnt == 7){ for(int k = 0;k < 7;k++){ p[i-k][j-k] = 1; } } } cnt = 1; if(i <= n-6 && j >= 7){ for(int k = 1;k < 7;k++){ if(c[i+k][j-k] == s[k]) cnt++; } if(cnt == 7){ for(int k = 0;k < 7;k++){ p[i+k][j-k] = 1; } } } cnt = 1; if(i >= 7 && j <= n-6){ for(int k = 1;k < 7;k++){ if(c[i-k][j+k] == s[k]) cnt++; } if(cnt == 7){ for(int k = 0;k < 7;k++){ p[i-k][j+k] = 1; } } } cnt = 1; if(i <= n-6 && j <= n-6){ for(int k = 1;k < 7;k++){ if(c[i+k][j+k] == s[k]) cnt++; } if(cnt == 7){ for(int k = 0;k < 7;k++){ p[i+k][j+k] = 1; } } } } } for(int i = 1;i <= n;i++){ for(int j = 1;j <= n;j++){ if(p[i][j] == 0) cout<<"*"; else cout<<c[i][j]; } cout<<endl; } return 0; } ```
by xiaozhangawa @ 2023-08-08 09:13:51


#include<bits/stdc++.h> using namespace std; int n; char a[1101][1101]; int main() { cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(a[i][j]=='y'&&a[i+1][j]=='i'&&a[i+2][j]=='z'&&a[i+3][j]=='h'&&a[i+4][j]=='o'&&a[i+5][j]=='n'&&a[i+6][j]=='g'){ cout<<a[i][j]; } else if(a[i][j]=='y'&&a[i][j+1]=='i'&&a[i][j+2]=='z'&&a[i][j+3]=='h'&&a[i][j+4]=='o'&&a[i][j+5]=='n'&&a[i][j+6]=='g'){ cout<<a[i][j]<<a[i][j+1]<<a[i][j+2]<<a[i][j+3]<<a[i][j+4]<<a[i][j+5]<<a[i][j+6]; } else if(a[i][j]=='y'&&a[i-1][j]=='i'&&a[i-2][j]=='z'&&a[i-3][j]=='h'&&a[i-4][j]=='o'&&a[i-5][j]=='n'&&a[i-6][j]=='g'){ cout<<a[i][j]<<a[i-1][j]<<a[i-2][j]<<a[i-3][j]<<a[i-4][j]<<a[i-5][j]<<a[i-6][j];; } else if(a[i][j]=='y'&&a[i][j-1]=='i'&&a[i][j-2]=='z'&&a[i][j-3]=='h'&&a[i][j-4]=='o'&&a[i][j-5]=='n'&&a[i][j-6]=='g'){ cout<<a[i][j]<<a[i][j-1]<<a[i][j-2]<<a[i][j-3]<<a[i][j-4]<<a[i][j-5]<<a[i][j-6];; } else if(a[i][j]=='y'&&a[i+1][j+1]=='i'&&a[i+2][j+2]=='z'&&a[i+3][j+3]=='h'&&a[i+4][j+4]=='o'&&a[i+5][j+5]=='n'&&a[i+6][j+6]=='g'){ cout<<a[i][j]<<a[i+1][j+1]<<a[i+2][j+2]<<a[i+3][j+3]<<a[i+4][j+4]<<a[i+5][j+5]<<a[i+6][j+6];; } else if(a[i][j]=='y'&&a[i-1][j+1]=='i'&&a[i-2][j+2]=='z'&&a[i-3][j+3]=='h'&&a[i-4][j+4]=='o'&&a[i-5][j+5]=='n'&&a[i-6][j+6]=='g'){ cout<<a[i][j]<<a[i-1][j+1]<<a[i-2][j+2]<<a[i-3][j+3]<<a[i-4][j+4]<<a[i-5][j+5]<<a[i-6][j+6];; } else if(a[i][j]=='y'&&a[i-1][j-1]=='i'&&a[i-2][j-2]=='z'&&a[i-3][j-3]=='h'&&a[i-4][j-4]=='o'&&a[i-5][j-5]=='n'&&a[i-6][j-6]=='g'){ cout<<a[i][j]<<a[i-1][j-1]<<a[i-2][j-2]<<a[i-3][j-3]<<a[i-4][j-4]<<a[i-5][j-5]<<a[i-6][j-6];; } else if(a[i][j]=='y'&&a[i+1][j-1]=='i'&&a[i+2][j-2]=='z'&&a[i+3][j-3]=='h'&&a[i+4][j-4]=='o'&&a[i+5][j-5]=='n'&&a[i+6][j-6]=='g'){ cout<<a[i][j]<<a[i+1][j-1]<<a[i+2][j-2]<<a[i+3][j-3]<<a[i+4][j-4]<<a[i+5][j-5]<<a[i+6][j-6];;; } else{ cout<<'*'; } } cout<<endl; } return 0; } ```c #include<bits/stdc++.h> using namespace std; int n; char a[1101][1101]; int main() { cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(a[i][j]=='y'&&a[i+1][j]=='i'&&a[i+2][j]=='z'&&a[i+3][j]=='h'&&a[i+4][j]=='o'&&a[i+5][j]=='n'&&a[i+6][j]=='g'){ cout<<a[i][j]; } else if(a[i][j]=='y'&&a[i][j+1]=='i'&&a[i][j+2]=='z'&&a[i][j+3]=='h'&&a[i][j+4]=='o'&&a[i][j+5]=='n'&&a[i][j+6]=='g'){ cout<<a[i][j]<<a[i][j+1]<<a[i][j+2]<<a[i][j+3]<<a[i][j+4]<<a[i][j+5]<<a[i][j+6]; } else if(a[i][j]=='y'&&a[i-1][j]=='i'&&a[i-2][j]=='z'&&a[i-3][j]=='h'&&a[i-4][j]=='o'&&a[i-5][j]=='n'&&a[i-6][j]=='g'){ cout<<a[i][j]<<a[i-1][j]<<a[i-2][j]<<a[i-3][j]<<a[i-4][j]<<a[i-5][j]<<a[i-6][j];; } else if(a[i][j]=='y'&&a[i][j-1]=='i'&&a[i][j-2]=='z'&&a[i][j-3]=='h'&&a[i][j-4]=='o'&&a[i][j-5]=='n'&&a[i][j-6]=='g'){ cout<<a[i][j]<<a[i][j-1]<<a[i][j-2]<<a[i][j-3]<<a[i][j-4]<<a[i][j-5]<<a[i][j-6];; } else if(a[i][j]=='y'&&a[i+1][j+1]=='i'&&a[i+2][j+2]=='z'&&a[i+3][j+3]=='h'&&a[i+4][j+4]=='o'&&a[i+5][j+5]=='n'&&a[i+6][j+6]=='g'){ cout<<a[i][j]<<a[i+1][j+1]<<a[i+2][j+2]<<a[i+3][j+3]<<a[i+4][j+4]<<a[i+5][j+5]<<a[i+6][j+6];; } else if(a[i][j]=='y'&&a[i-1][j+1]=='i'&&a[i-2][j+2]=='z'&&a[i-3][j+3]=='h'&&a[i-4][j+4]=='o'&&a[i-5][j+5]=='n'&&a[i-6][j+6]=='g'){ cout<<a[i][j]<<a[i-1][j+1]<<a[i-2][j+2]<<a[i-3][j+3]<<a[i-4][j+4]<<a[i-5][j+5]<<a[i-6][j+6];; } else if(a[i][j]=='y'&&a[i-1][j-1]=='i'&&a[i-2][j-2]=='z'&&a[i-3][j-3]=='h'&&a[i-4][j-4]=='o'&&a[i-5][j-5]=='n'&&a[i-6][j-6]=='g'){ cout<<a[i][j]<<a[i-1][j-1]<<a[i-2][j-2]<<a[i-3][j-3]<<a[i-4][j-4]<<a[i-5][j-5]<<a[i-6][j-6];; } else if(a[i][j]=='y'&&a[i+1][j-1]=='i'&&a[i+2][j-2]=='z'&&a[i+3][j-3]=='h'&&a[i+4][j-4]=='o'&&a[i+5][j-5]=='n'&&a[i+6][j-6]=='g'){ cout<<a[i][j]<<a[i+1][j-1]<<a[i+2][j-2]<<a[i+3][j-3]<<a[i+4][j-4]<<a[i+5][j-5]<<a[i+6][j-6];;; } else{ cout<<'*'; } } cout<<endl; } return 0; } ```
by zhangjiasheng1234 @ 2023-08-14 18:56:33


|