洛谷 P1092 蟲食算(dfs)

2021-10-03 13:02:15 字數 762 閱讀 2584

題目傳送

這題的官方題解是高斯消元,可是本蒟蒻不會。。。

講一下深搜的方法:

1.搜尋從第一位的值開始搜,直到最後一位,判斷是否合法。

2.注意剪枝防tle。

3.三個數都是n位,最高位不能有進製。

#include

#include

#include

using

namespace std;

const

int maxn =30;

int n;

int ans[maxn]

;//賦值

char ss[4]

[maxn]

;bool used[maxn]

;int

toid

(char ch)

void

dfs(

int x,

int y,

int t)

//列,行,進製

return;}

for(

int i = x -

1; i >

0; i--)if

(ans[

toid

(ss[y]

[x])]==

-1)else}}

}else

else

dfs(x, y +

1, t);}

}int

main

(void

)

洛谷P1092 蟲食算

所謂蟲食算,就是原先的算式中有一部分被蟲子啃掉了,需要我們根據剩下的數字來判定被啃掉的字母。來看乙個簡單的例子 其中 號代表被蟲子啃掉的數字。根據算式,我們很容易判斷 第一行的兩個數字分別是5和3,第二行的數字是5。現在,我們對問題做兩個限制 首先,我們只考慮加法的蟲食算。這裡的加法是n進製加法,算...

洛谷P1092 蟲食算

所謂蟲食算,就是原先的算式中有一部分被蟲子啃掉了,需要我們根據剩下的數字來判定被啃掉的字母。來看乙個簡單的例子 其中 號代表被蟲子啃掉的數字。根據算式,我們很容易判斷 第一行的兩個數字分別是5和3,第二行的數字是5。現在,我們對問題做兩個限制 首先,我們只考慮加法的蟲食算。這裡的加法是n進製加法,算...

洛谷 P1092 蟲食算

所謂蟲食算,就是原先的算式中有一部分被蟲子啃掉了,需要我們根據剩下的數字來判定被啃掉的字母。來看乙個簡單的例子 其中 號代表被蟲子啃掉的數字。根據算式,我們很容易判斷 第一行的兩個數字分別是5和3,第二行的數字是5。現在,我們對問題做兩個限制 首先,我們只考慮加法的蟲食算。這裡的加法是n進製加法,算...