摘要:
题意:有n道题目,a[i][j] 表示做完第 i 道题再做第 j 道题所要花费的时间。Zty每次只做比以前做过的题目更难的题目,也就是说时间比以前的长。问最多能做多少道题。(每次都从第0题开始做,第0题花费时间为0).分析:简单深度搜索。。const int M = 15;int n, ans;int a[M][M];int b[M];void dfs(int i,int t,int cnt){//解决完第i题 最长时间t 已解决cnt道题目 checkmax(ans, cnt); FOR(j, 1, n){ //if(ans==n)return; if(... 阅读全文
posted @ 2013-05-11 12:47
心向往之
阅读(135)
评论(0)
推荐(0)
摘要:
题意:有n (n<=15) 本高度不同的书,每次可以交换相邻的两部分书(多本),问最少多少次操作可以让书由小到大排列?如果次数>=5 输出5 or more,否则输出最少次数。分析:n!的状态空间太大,不能广搜,于是想到迭代加深搜索,又因为每次操作,最多改变3个后继值,最终状态每本书的后继都比自身大1,可以设计启发函数为 错误的后继值/3.另外在回溯的时候,假设本次交换的区间为[1,5] [6,8]那么还原状态应该交换[1,3] [4,8],而不能再次交换[1,5] [6,8]。。 1 2 3 4 5|6 7 8交换[1,5] [6,8]: 6 7 8|1 2 3 4 5交... 阅读全文
posted @ 2013-05-11 11:54
心向往之
阅读(177)
评论(0)
推荐(0)

浙公网安备 33010602011771号