NOIP|P2346 四子连棋 - 迭代加深 2021-11-10 【NOIP|P2346 四子连棋 - 迭代加深】难点是想到颜色可以为O,搜索的过程中可能会把一个O移动到另一个O上面,然后搜索的颜色参数就变成O就错了。。。 也没什么好办法,就是判到O直接跳过。。。 另外,要习惯把各种量写在参数表里,这样能省很多代码。。。也更好调试 #include #include #include #include #include #include #include using namespace std; #define debug(x) cerr << #x << "=" << x << endl; const int MAXN = 200000 + 10; typedef long long ll; char gra[10][10]; int ans,deg,x1,y1,x2,y2; bool flg; int dx[] = {1, 0, -1, 0}; int dy[] = {0, 1, 0, -1}; bool check() { for(int i=1; i<=4; i++) { if(gra[i][1] == gra[i][2] && gra[i][2] == gra[i][3] && gra[i][3] == gra[i][4]) return true; } for(int j=1; j<=4; j++) { if(gra[1][j] == gra[2][j] && gra[2][j] == gra[3][j] && gra[3][j] == gra[4][j]) return true; } if(gra[1][1] == gra[2][2] && gra[2][2] == gra[3][3] && gra[3][3] == gra[4][4]) return true; if(gra[1][4] == gra[2][3] && gra[2][3] == gra[3][2] && gra[3][2] == gra[4][1]) return true; return false; } bool id_dfs(int x, int deg, int x1, int y1, int x2, int y2, char col) { if(x == deg + 1) { if(check()) return true; else return false; } for(int i=0; i<=3; i++) { int nx1 = x1 + dx[i]; int ny1 = y1 + dy[i]; int nx2 = x2 + dx[i]; int ny2 = y2 + dy[i]; if(nx1 >= 1 && nx1 <= 4 && ny1 >= 1 && ny1 <= 4 && gra[nx1][ny1] != col && gra[nx1][ny1] != 'O') { swap(gra[x1][y1], gra[nx1][ny1]); if(id_dfs(x+1, deg, nx1, ny1, x2, y2, gra[x1][y1])) return true; swap(gra[x1][y1], gra[nx1][ny1]); } if(nx2 >= 1 && nx2 <= 4 && ny2 >= 1 && ny2 <= 4 && gra[nx2][ny2] != col && gra[nx2][ny2] != 'O') { swap(gra[x2][y2], gra[nx2][ny2]); if(id_dfs(x+1, deg, x1, y1, nx2, ny2, gra[x2][y2])) return true; swap(gra[x2][y2], gra[nx2][ny2]); } } return false; } int main() { for(int i=1; i<=4; i++) { for(int j=1; j<=4; j++) { cin >> gra[i][j]; if(gra[i][j] == 'O') { if(x1 == 0) { x1 = i, y1 = j; } else { x2 = i, y2 = j; } } } } while(1) { ++deg; if(id_dfs(1, deg, x1, y1, x2, y2, 0)) { printf("%d", deg); break; } } return 0; } 推荐阅读 歌曲我想要歌词 我想要这首歌是谁演唱的呢 尿尿怎么读 尿尿的正确读法 mysql出错2059 mysql出错1032 Python显示进度条 高精度定位,uwb高精度定位 卧室的卧组词 汉字卧组词 兔肉可以和鸭肉一起吃吗 Android之OOM异常解决案例讲解 全路面起重机,全路面起重机和汽车吊 2019-04-12|2019-04-12 json ajax和jsonp 起亚k3用5w40还是5w30 起亚k3用什么型号的机油 麻醉药|医生把自己“麻翻”的麻醉药,有多容易买到? 手竿钓鱼怎么抛竿定点 为什么冬季容易缺水 有个多肉形状有点特别,纠结是直接种还是砍一段桩子,特此求教了? 解放诗歌(一),仙人掌与响尾蛇 外贸服装进货渠道有哪些 美图秀秀有个圆圈放大,美图秀秀饰品如何放大与缩小 20岁用什么牌子的精华液 金蟾和什么生肖相冲 金蟾和什么属相相冲 跌跌撞撞奔向你|跌跌撞撞奔向你 第四章(你补英语,我补物理) 奔向你的城市 四首关于旅行记忆的外文歌曲 CET4听力微技能一 亲子日记第186篇,2018、7、26、星期四、晴 特种兵训练第四天 第四十三篇接纳孩子的感受 《自我的追寻》读书笔记3 不让记忆、感觉、情绪成为孩子的负累|不让记忆、感觉、情绪成为孩子的负累|《全脑教养法》(四) 亲子日记第三百四十二篇|亲子日记第三百四十二篇 暴雨