ural 1221
本來就是個很水的題 ?就是枚舉起點長度然后直接判斷就行了 ? 但是比賽的時候寫了個大bug 還找不出來 ? ? 自己太水了
#include <cstdio> #include <cstring> using namespace std;int g[110][110];int findd(int len, int x, int y) {int k = (y+len+y)/2;int r = 0;for(int i = 0; i <= len; i++){for(int j = 0; j <= len/2; j++){if(j <= r){if(g[x+i][k+j] == 1)return 0;if(g[x+i][k-j] == 1)return 0;}else{if(g[x+i][k+j] == 0)return 0;if(g[x+i][k-j] == 0)return 0;}}if(i < len/2)r++;elser--;}return len +1; } int main() {int n;while(scanf("%d",&n) == 1 && n){memset(g, 0, sizeof(g));for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)scanf("%d",&g[i][j]);int ww = n;if(ww%2)ww--;int dd = 0;for(int i = ww; i >= 2; i -= 2){for(int j = 1; j+i <= n; j++){for(int k = 1; k+i <= n; k++){dd = findd(i, j, k);if(dd >= 3)break;}if(dd >= 3)break;}if(dd >= 3)break;}if(dd >= 3)printf("%d\n",dd);elseputs("No solution");}return 0; }轉載于:https://www.cnblogs.com/avema/p/3774335.html
總結
- 上一篇: 让自己变成一个上进的人
- 下一篇: 记录ionic 最小化应用时所遇的问题