
第二题 POJ 2965
发布日期:2021-05-07 16:48:54
浏览次数:25
分类:技术文章
本文共 1101 字,大约阅读时间需要 3 分钟。
做了第一题,见上一个发布,发现是一样的方法,4x4都没变,就是多加了一个输出变换路径,我也没置零置一,直接写了个大模拟,翻转之后记录,用步数记录,妙,对递归理解又多了一点。
明天再手写一次,加油。#include#include #include #include using namespace std;char str[5][5];int ansx[20],ansy[20];int tx[20],ty[20];int ans=50;bool check(){ for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ if(str[i][j]!='-') return 0; } } return 1;}void change(int x){ int xx=x/4; int yy=x%4; for(int i=0;i<4;i++){ if(str[i][yy]=='-') str[i][yy]='+'; else str[i][yy]='-'; if(str[xx][i]=='-') str[xx][i]='+'; else str[xx][i]='-'; } if(str[xx][yy]=='-') str[xx][yy]='+'; else str[xx][yy]='-';}void dfs(int x,int step){ if(check()){ if(step =16) return ; dfs(x+1,step); change(x); tx[step+1]=x/4+1; ty[step+1]=x%4+1; dfs(x+1,step+1); change(x);}int main(){ for(int i=0;i<4;i++){ scanf("%s",str[i]); } dfs(0,0); printf("%d\n",ans); for(int i=1;i<=ans;i++){ printf("%d% d\n",ansx[i],ansy[i]); } return 0;}
发表评论
最新留言
很好
[***.229.124.182]2025年04月12日 00时01分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!