Ahoi2009 self 同類分布

2022-05-05 12:12:11 字數 587 閱讀 7549

題意:給出a,b,求出[a,b]中各位數字之和能整除原數的數的個數。

這道題把上界狀態編入方程中時空複雜度才能過

算見注

#include#include#define int long long

using namespace std;

int f[2][20][170][170],vis[2][20][170][170];

int d[20],ld;

int p,tim;//模數,即列舉的數字和;tim是時間戳

int dp(int fl,int dg,int s,int md)

return f[fl][dg][s][md]=res;

}int calc(int m)

return res;

}signed main()

/* * fl:0表示滿上界,1表示未滿

* dg:首位。這裡是顛倒的,即1是最高位

* s:數字和;md:餘數

* 狀態表示,當前的最高位是從低到高第dg位,且第1-dg位的數字和為s,

* 第dg+1~ld位的餘數為md的數的個數

*/

AHOI2009 同類分布

點此看題 首先肯定想到我們要把數字和放進狀態中,但是原數會有點棘手。我們可以先列舉數字和 也就是模數 設dp i j k l dp i j k l dp i j k l 為前i ii位,是否頂到上界,數字和為k kk,餘數為l ll,我們最後要是k k k 模數,並且l 0 l 0l 0,然後就可以...

AHOI2009 同類分布

題目大意 問在區間 l,r 內的正整數中,有多少數能被其個位數字之和整除。思路 數字dp。極端情況下,每一位都是9,所以各位數字之和不超過9 18。為了方便這裡用了9 19 f i j k flag 表示dp到從左往右第i位時,各位數字之和為j,這個數字在模mod意義下為k。flag表示是否為邊界情...

P4127 AHOI2009 同類分布

給出兩個數a,b a,b,求出 a,b a b 中各位數字之和能整除原數的數的個數。發現題目有兩個變數 數字之和 原數於是必須想辦法設計乙個只有一種變數的數字dp,發現唯有固定數字之和才可以在dfs中將取模作為狀態方便地轉移 記搜元素 當前數字 數字之和 原數的模值 include define r...