日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu1501 记忆化搜索

發布時間:2025/6/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu1501 记忆化搜索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
? ? ? 給你三個字符串,問你前兩個能不能拼成第三個串。


思路:

? ? ? 直接記憶化神搜就行,思路水,看下代碼就知道了。這個題目我感覺最大公共子序列dp的作法是錯的,雖然有人ac了,隨便一組數據比如 abc abc abccba。


#include<stdio.h> #include<string.h> char c1[222] ,c2[222] ,c3[444]; int mark[222][222]; int ok ,l1 ,l2 ,l3;void DFS(int n1 ,int n2 ,int n3) {if(n3 == l3 + 1){ok = 1;return ;}if(mark[n1][n2]) return;mark[n1][n2] = 1;if(n1 <= l1 && c3[n3] == c1[n1] && !ok){DFS(n1 + 1 ,n2 ,n3 + 1);}if(n2 <= l2 && c3[n3] == c2[n2] && !ok){ DFS(n1 ,n2 + 1 ,n3 + 1);} }int main () {int t ,cas = 1;scanf("%d" ,&t);while(t--){scanf("%s %s %s" ,c1 ,c2 ,c3);l1 = strlen(c1) - 1;l2 = strlen(c2) - 1;l3 = strlen(c3) - 1;if(l1 + 1 + l2 + 1 != l3 + 1){printf("Data set %d: no\n" ,cas ++);continue;} ok = 0;memset(mark ,0 ,sizeof(mark));DFS(0 ,0 ,0);if(ok) printf("Data set %d: yes\n" ,cas ++);else printf("Data set %d: no\n" ,cas ++);}return 0; }

總結

以上是生活随笔為你收集整理的hdu1501 记忆化搜索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。