dp專題練習

2022-05-08 19:45:10 字數 2656 閱讀 7445

這是一篇很水的blog

掃雷link

#include#include

#include

#include

using

namespace

std;

inline

long

long

read()

while(c>='

0'&&c<='9')

return f*ans;

}long

long dp[10001][3][3][3],n,a[90001

],ans;

intmain()

if(a[i]==3) dp[i][1][1][1]+=(dp[i-1][1][0][1]+dp[i-1][1][1][1

]);

if(a[i]==2

)

if(a[i]==0) dp[i][0][0][0]+=(dp[i-1][0][0][0]+dp[i-1][0][1][0

]); }

for(long

long i=0;i<=1;i++)

for(long

long z=0;z<=1;z++)

for(long

long k=0;k<=0;k++) ans+=dp[n][i][z][k];

cout

<

}

view code

子串link

考試時的做法十分神奇,並沒有想到dp,所以用了kmp,搜尋等玄學技巧

最後ce了,以為寫了個pow陣列,這是個關鍵字(要不得30分)

#include#include

#include

#include

#define mod 1000000007

using

namespace

std;

inline

long

long

read()

while(c>='

0'&&c<='9')

return f*ans;

}long

long len1,len2,p[5100],p1[5100],pow[5100],jl[260][5100

],ans,k,n,m,st;

char str1[5100],str2[5100],str3[5100

];long

long sum[5100

]; void dfs(long

long pos,long

long anss)//

pos指當前所在位置,ans指完成個數

long

long bz=str2[anss+1]-'a'

;

long

long l=1,r=jl[bz][0],mid,minn=2

<<30-1

;

while(l<=r)

for(long

long i=minn;i<=jl[bz][0];i++)

if(jl[bz][i]>pos) dfs(jl[bz][i],anss+1

);

return;}

intmain()

if(k>len2)

ans=0

; n=len1,m=len2;

long

long j=0

; p[

1]=0

;

for(long

long i=1;i)

if(k==1

)

}cout

return0;

}else

if(k==2

)

j1=0

;

for(long

long i1=i+1;i1)

}j=p[j];}}

}cout

return0;

}else

if(k==m)

else}/*

6 3 3

aabaab

aab*/

考試時候的**

好了現在開始搞正解

dp[i][j][p][z]表示現在到str1的i,str2的j,已經有了p個子串,是否有,拿z表示

發現i之與i-1有關,所以就用滾動陣列即可

#include#include

#include

#include

#define mod 1000000007

using

namespace

std;

inline

intread()

while(c>='

0'&&c<='9')

return f*ans;

}int dp[201][201][201][3

];int

n,m,k;

char str1[1011],str2[1011

];int

main()

else}}

}cout

<

}

view code

烷基計數(待補)

oj練習 dp專題

1.poj 3744 scout yyf i 經典的dp模型,但是要用到快速矩陣冪加速,分段的思想 include include include include using namespace std int mines 15 void matrixmulti double a 2 2 doubl...

決策單調性優化dp 專題練習

對於形如 dp i dp j i j i j 型別的轉移方程,維護乙個上凸包或者下凸包,找到切點快速求解 技法 1.單調佇列 在保證插入和查詢的x座標均具有單調性時可以使用 2.單調棧 二分 保證插入有單調性,不保證查詢有單調性 3.分治 1 或 2 在每次分治時將 l,mid 這段區間排序後插入,...

數字DP專題

hdu 2089 不要62 hdu 3555不能出現連續的49 uestc 1307相鄰的數差大於等於2 hdu 3652 出現13,而且能被13整除。hdu 3709平衡數 light oj 1140兩個數之間的所有數中零的個數。lightoj 1032 二進位制數中連續兩個 1 出現次數的和 c...