解題思路:這道題的基本模型就是編輯距離的模型,只是多了乙個路徑記錄的過程。
學習一下:
最開始把問題搞錯了,以為是兩個串都可以做修改,無論我怎麼想都不通。
回到這個題目上,這道題和最長公共子串行很相似,思路可以說是一樣的,包括記錄路徑。
其實也就是根據遞推陣列的結果來判斷。
#include#include#includeusing namespace std;
const int maxn = 85;
char a[maxn],b[maxn];
int dp[maxn][maxn],len1,len2;
void path()
else if(dp[i][j] == dp[i-1][j] + 1 && i >= 1)
else if(dp[i][j] == dp[i][j-1] + 1 && j >= 1)
}}int main()
printf("%d\n",dp[len1][len2]);
path();
} return 0;
}
HDU 1026 (BFS 記錄路徑)
bfs 路徑記錄 problem id hdu 1026 author id fuqiang11 time 2013 07 17 algorithm bfs status accept include include include using namespace std define inf 0x...
hdu 1226 BFS bfs記錄路徑
為了省空間,可以用vis陣列初始化的時候初始化為 1,發現乙個bfs容易錯的地方 開始一直wa在這裡 就是我int tp q.front 之後馬上q.pop 了,然後才去判斷是不是符合條件以break,這樣就不能根據q.empty 1認為沒有找到ans 因為這裡wa了 其實也可以vis 0 1來判斷...
hdu 1226 BFS bfs記錄路徑
pid 1226 為了節省空間。您可以使用vis初始化陣列初始化 1。發現bfseasy錯了地方 始一直wa在這裡 就是我int tp q.front 之後立即q.pop 了,然後才去推斷是不是符合條件以break,這樣就不能依據q.empty 1覺得沒有找到ans 由於這裡wa了 事實上也能夠vi...