n*n的棋盤上擺上n個皇后,使皇后不會相互攻擊。
public class nqueenpuzzle
//使用棧求解
public void solve_stack()
lastpos.push(i);
lastpos.push(-1);
break;
}
}
}
}//使用遞迴求解
public void solve()
", sw.elapsed);
if (solutioncount == 0)
queen", queenamount);
}
else
result for puzzle with queen", solutioncount, queenamount);
}
}private void locate(int k)
*****", this.solutioncount);
this.printresult();
return;
}for (int i = 0; i < queenamount; i++)
}
}private void printresult()
console.writeline();
}console.writeline();
}private bool validate(int k)
}
return valid;
}
}使用下面的方法輸出8皇后解決方案。
nqueenpuzzle puzzle = new nqueenpuzzle(8);
puzzle.solve();
一組寶石,價值對應values,重量對應weight,乙個揹包最大承重capcity,求怎樣選擇寶石,可使揹包裝下價值最多?
public class bagpack0_1
public void solve()
else
}
}console.writeline("max values:", m[n, capcity]);
this.showresult(m, n, capcity);
}private void showresult(int[,] m, int i, int j)
if (j >= weight[i - 1] && m[i, j] == m[i - 1, j - weight[i - 1]] + values[i - 1])
, weight:, value: selected ", i, weight[i - 1], values[i - 1]);
}
else
}測試用例:
int w = ;
int v = ;
int capacity = 36;
bagpack0_1 bp = new bagpack0_1(v, w, capacity);
bp.solve();
兩個陣列a、b,求最大子串。
public class maxsubstring
//最大子串引申問題。兩個字串最長相同子串。
public void solve_continuous()
}
}console.writeline("maxlen is:", maxlen);
for (int i = maxlen; i > 0; i--)
}//陣列m記錄最大子串長度
public void solve2()
else
else
}
}
}this.showresult2(m, m - 1, n - 1);
console.writeline();
}private void showresult2(int[,] m, int i, int j)
if (m[i, j] == m[i - 1, j])
else if (m[i, j] == m[i, j - 1])
else
}//使用輔助陣列s,記錄陣列元素是否是最大子串成員
public void solve1()
for (int i = 0; i < n; i++)
for (int i = 1; i < m; i++)
else
else
}
}
}console.writeline("max sub list count:", m[m - 1, n - 1]);
showresult(s, m - 1, n - 1);
console.writeline();
}private void showresult(int[,] s, int i, int j)
if (s[i, j] == 3)
else if (s[i, j] == 1)
else if (s[i, j] == 2)
}測試:
int a = new ;
int b = ;
maxsubstringmss = new maxsubstring(a, b);
mss.solve1();
python小玩意二
建立乙個列表 list1 a b c d e print list1 建立乙個列表 list1 a b c d 2 e print list1 建立乙個列表 list1 a b c d list1.pop print list1 建立乙個列表 list1 a b c d list1.pop 2 pr...
一點小玩意
include include using namespace std define pass what int main 輸出 4 4 4 5 4 4 a a 同樣乙個字串 what 用巨集定義pass之後,pass既可以當做指標用,也可以當做變數名用,而用字串pass定義的話只能用作乙個變數名,...
晚上擺弄的小玩意
include void p char s,int a void f char s,int a int main 我想用hacker的手段來修改f函式的返回位址,可惜的是一直沒有成功,不過倒是把引數值給改了,列印了hi和2之後就是段錯誤,怎樣解決這個段錯誤,暫還沒有辦法。直接看main函式內生成的彙...