數字dp模板
hdu2089 不要62
題意:求區間中不含62且不含4的數的個數
#include#include#includeusing namespace std;
int dp[20][10];
int a[20];
//sta 記錄上一位數是否是6
int dfs(int pos,int sta,bool limit)
if(!limit) dp[pos][sta]=ans;
return ans;
}int solve(int x)
return dfs(pos-1,0,true);
}int main()
printf("%d\n",solve(r)-solve(l-1));
} return 0;
}
hdu3555
和不要62差不多
求1-n中包含49的數的個數
hdu3652
題意:統計1-n中含有13且能被13整除的數的個數
#include#include#includeusing namespace std;
typedef long long ll;
int dp[10][15][2][10];//注意陣列大小
int a[20];
//pos位置
//mod 前面的數%13的結果
//sta 是否已經包含13
//pre 上一位的數
int dfs(int pos,int mod,int sta,int pre,bool limit)
if(!limit) dp[pos][mod][sta][pre]=ans;
return ans;
}int solve(int x)
return dfs(pos-1,0,0,0,true);
}int main()
return 0;
}
hdu5898
題意:統計l-r之間連續的奇數必須是偶數個,連續的偶數必須是奇數個。。的個數
#include#include#includeusing namespace std;
typedef long long ll;
int a[20];
ll dp[20][11][20];//dp[i][j][k]前i位上一位是j,連續的奇數/偶數個數為k
ll dfs(int pos,int sta,int pre,bool lead,bool limit )
} else if((sta+pre)%2) }
else }
if(!limit&&!lead) dp[pos][sta][pre]=ans;
return ans;
} ll solve(ll x)
return dfs(pos-1,10,1,true,true);
}int main()
}
小白演算法練習 數字dp模板
數字dp其實是很靈活的,所以一定不要奢求一篇文章就會遍所有數字dp的題,這一篇只能是講清楚一種情況,其他情況遇到再總結,在不斷總結中慢慢體會這個思想,以後說不定就能達到一看到題目就能靈活運用的水平。其實dp都是這樣 這一篇要說的數字dp是一道最簡單的數字dp 題目大意 多組資料,每次給定區間 n,m...
數字DP入門 數字DP模板
數字dp是一種計數用的dp,一般就是要統計乙個區間 le,ri 內滿足一些條件數的個數。所謂數字dp,字面意思就是在數字上進行dp咯。數字還算是比較好聽的名字,數字的含義 乙個數有個位 十位 百位 千位.數的每一位就是數字啦!之所以要引入數字的概念完全就是為了dp。數字dp的實質就是換一種暴力列舉的...
數字dp模版(dp)
1 include 2 include 3 include 4 include 5 6using namespace std 78 intt 9long long dp 19 19 2005 10 long long l,r 11int shu 20 12 13long long dfs int l...