這道題一開始自己寫的時候,只有30分= =
然後參(模)考(仿)了洛谷第乙個題解才寫出來了(不過是在理解了的前提下,自己敲了一遍),下面附上參考的題解部落格位址
參考的題解部落格
我的**:
#include
using
namespace std;
int n, cnt;
char s1[50]
, s2[50]
, s3[50]
;int a[50]
, b[50]
, c[50]
;int next[50]
;//next陣列用來記錄下字母的出現順序
int num[50]
;//num陣列用來記錄每個字母被賦的值, -1表示沒被賦值
int use[50]
;int
cut(
)return0;
}int
check()
return1;
}void
dfs(
int x)
exit(0
);//一定要加這句, 我沒加這句2次都只有80分 }}
for(
int i=n-
1; i>=
0; i--)}
}void
getnext
(int x)
}int
main()
for(
int i=n-
1; i>=
0; i--
)memset
(use,0,
sizeof
(use));
dfs(0)
;return0;
}
P1092 蟲食算 題解(dfs 深度優先搜尋)
所謂蟲食算,就是原先的算式中有一部分被蟲子啃掉了,需要我們根據剩下的數字來判定被啃掉的字母。來看乙個簡單的例子 43 9865 045 8468 6633 44445509678其中 號代表被蟲子啃掉的數字。根據算式,我們很容易判斷 第一行的兩個數字分別是55和33,第二行的數字是55。現在,我們對...
題解 P1092 蟲食算
聽說正解是高斯消元吶,但是我不會 看到大家都寫了搜尋。一種實現很簡單的方法是列舉1 n的排列,判斷是否可行。我算了算時間複雜度 其實我不會算,就大概估計了一下 發現會超時。由於不會算複雜度,我對於這樣的暴搜能過50表示驚訝 o 如果按照豎式從右至左的順序搜,就可以邊搜邊判斷是否可行了。我寫得很麻煩,...
洛谷 P1092 蟲食算(dfs)
題目傳送 這題的官方題解是高斯消元,可是本蒟蒻不會。講一下深搜的方法 1.搜尋從第一位的值開始搜,直到最後一位,判斷是否合法。2.注意剪枝防tle。3.三個數都是n位,最高位不能有進製。include include include using namespace std const int max...