fold.hs.txt

来自「Ulm大学2003-2004年竞赛题」· 文本 代码 · 共 22 行

TXT
22
字号
-- Problem   Fold-- Algorithm Dynamic Programming-- Runtime   O(n^4)-- Author    Walter Guttmann-- Date      21.04.2003main :: IO ()main = readFile "fold.in" >>= mapM_ solve . wordssolve :: String -> IO ()solve s = putStrLn $ show $ head $ last dp  where n = length s        rs = reverse s        match = [ length (takeWhile av (zip s1 s2)) | k <- [1..n] , let s1 = drop k s , let s2 = drop (n+1-k) rs ]        dp = replicate (n+1) 0 : [ [ minimum [ 1 + max (dp !! (k-i) !! i) (dp !! (j-l) !! l) | k <- [i..j-1] , let l = k+1 , match !! k >= min (k-i) (j-l) ] | j <- [ji..n] , let i = j-ji ] | ji <- [1..n] ]av :: (Char,Char) -> Boolav ('A','V') = Trueav ('V','A') = Trueav _         = False

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?