HDU 1513 LCS 滾動陣列

2021-07-17 01:54:48 字數 403 閱讀 4263

這題的意思很簡單,就是新增最少的字元是該字串為回文字串,可以用lcs做,比較正序和逆序最長的lcs長度,另外還要使用滾動陣列,要不會mle;

還有一點很坑的地方,多組輸入(題目上沒說)!

#include

#include

#include

#include

#define max 5005

using

namespace

std;

char a[max];int dp[2][max];

int maxn(int a,int b)

int main()

else

}

}cout

<2][n]0;}

hdu 5119 (滾動陣列)

題意 給定n nn個數k ik i ki 從中選取任意個 可以為0 00 進行異或得到ans ansan s,問有多少種ans m ans geq m ans m。資料範圍 1 n 40,0 ki 106,m 10 61 leq n leq 40,0 leq k i leq 10 6,m leq 1...

hdu 5119 滾動陣列dp

題意 現在乙個人有n個朋友,它的每個朋友都有乙個值,它每次可以選擇一些朋友的值然後將它們異或起來,如果最後的異或和大於等於m的話,那麼這個人就贏了。問,這個人有幾種贏的方法。思路 求有幾種方法的題目都可以用dp來思考。dp i j 前i個人異或和為j有幾種方法。由於直接開40個人會mle,所以只能用...

hdu 1024 滾動陣列優化

本題的大致意思為給定乙個陣列,求其分成 m個不相交子段和最大值的問題。解題思路 dp i j 表示前j個數分成i組,且j在第i組裡的最大值。dp i j max,前乙個表示j與j 1在i組裡,後乙個表示j單獨成組。但這道題的n很大,空間複雜度太高,所以要用滾動陣列。max dp i 1 k 就是上一...