思路:輸入字串s;設sum要插入字元的最小值
從兩端出發前端x=0;後端y=l-1;
首先,如果s[0]!=s[l-1],此時要麼在最前面添字元,要麼在末尾添字元,sum++;(這是無法避免的)
然後,s[0]=s[l-1],此時前端x +1,後端y-1;
注意遞迴出口:前段》後端(x>y),此時為0;
遞迴演算法最重要的是先明確函式的引數含義以及函式實現的功能。這題是實現在pos=x到pos=y這段字元要新增的最小字元數
還有陣列儲存遞迴結果的模板
#include#include#define min(a,b) (a=y)if(a[x]==a[y])
f[x][y]=min(dp(x+1,y),dp(x,y-1))+1;
return f[x][y];
}int main()
return 0;
}
南洋理工OJ 24 素數距離問題
這道題的難點在於對邊界情況的考慮 如下 include include using namespace std bool isprime unsigned long n 判斷是否為素數的函式 else return true int main else while isprime j 找數字右邊最近...
回文字串(南陽oj37)(最長公共子串行問題)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如 aba 當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文...
南洋理工ACM 53無聊的小明
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 這天小明十分無聊,沒有事做,但不甘於無聊的小明聰明的想到乙個解決無聊的辦法,因為他突然對數的正整數次冪產生了興趣。眾所周知,2的正整數次冪最後一位數總是不斷的在重複2,4,8,6,2,4,8,6 我們說2的正整數次冪最後一位的迴...