p3956 棋盤
這道搜尋弄得我很難受。
第一,一定要看清楚題在寫。第二,弄清楚判斷條件;
首先圖的大小是m*m不是n*m;
然後就是當前有顏色的點是不用變顏色的;
#include#include#include
using
namespace
std;
const
int maxn=1010
;int f[maxn][110
];int
n,m;
int mp[maxn][110
];int ans=2147483647
;int xx[4]=;
int yy[4]=;
void dfs(int x,int y,int sum,int
flag)
for(int i=0;i<4;i++)
else dfs(fx,fy,sum+1,0
); }
else
if(!flag)
}}int
main()
dfs(
1,1,0,0
);
if(ans==2147483647) printf("-1"
);
else printf("%d"
,ans);
return0;
}
P3956 棋盤 題解
同步 原題鏈結 簡要題意 從 1 1 1,11,1 走到 n,n n,nn,n 每次走過相同顏色的格仔不用魔法,走過不同顏色 但有顏色 的格仔用 1 11 個魔法 走到乙個有顏色的格仔上可以暫時將它變成某種顏色然後走上去,用 2 22 個魔法 但是這種魔法是暫時的,只要你離開那個格仔,那個格仔就會變...
洛谷 P3956 棋盤 搜尋 1 5
有乙個m m 的棋盤,棋盤上每乙個格仔可能是紅色 黃色或沒有任何顏色的。你現在要從棋盤的最左上角走到棋盤的最右下角。任何乙個時刻,你所站在的位置必須是有顏色的 不能是無色的 你只能向上 下 左 右四個方向前進。當你從乙個格仔走向另乙個格仔時,如果兩個格仔的顏色相同,那你不需要花費金幣 如果不同,則你...
洛谷 P3956 棋盤
js省裡冬令營夏令營講深搜都講到了 今天上午測試的題,15分,因為剪枝沒剪乾淨,少了個等於號,於是本來能拿到的分也沒拿到,唉 主要思想dfs 剪枝 include using namespace std int m,n 依照題目 int a 107 107 存顏色 int vis 107 107 存...