數字遊戲(二)

2022-05-26 06:48:08 字數 1074 閱讀 1784

數字遊戲(二)

題目描述

由於科協裡最近真的很流行數字遊戲,某人又命名了一種取模數,這種數字必須滿足各位數字之和mod n為0。現在大家又要玩遊戲了,指定乙個整數閉區間[a,b],問這個區間內有多少個取模數。 輸入 題目有多組測試資料。每組只含三個數字a,b,n。

輸出對於每個測試資料輸出一行,表示各位數字和mod n為0的數的個數。

樣例輸入

1 19 9

樣例輸出

對於全部資料,1<=a,b<=2^31-1,1<=n<100。

解析:step1:判斷演算法   

根據資料範圍,a,b<=1^31-1,也就是在int範圍內,同時這使我們確定了用常規方法(暴力)沒有辦法ac,畢竟o(n)的演算法都會tle, 所以

可以肯定這是一道在數字上做文章的題,也就是數字dp

step2:找到狀態    

由於上一步已經知道這是一道數字dp,所以便可以很輕易的得知一定有乙個維度屬於數字,那我們思考一下,還有沒有其他要記錄的的呢?    

很明顯還有%n餘幾,所以dp[i][j]表示位數<=i的所有數中%n餘j的數的個數。

step3:狀態轉移

乙個數在末尾加乙個k,這樣dp(位數+1)((k+原來%n)%n),可以稍微展示一下我的dp方程

for(int i=2;i<=q;i++)

return ans_;

}int sovle(int x,int y,int w)

if(w!=-1) ss=w;

if(ss==1)

xx1*=10;

}for(int i=1;i<=15;i++)

xx2*=10;

}q-=1;

for(int i=0;i<=9;i++) dp[1][i%n]++;

for(int i=2;i<=q;i++)}}

if(l==0) printf("%lld\n",sovle(r,0,-1)-sovle(l-1,0,-1)+1);

else printf("%lld\n",sovle(r,0,-1)-sovle(l-1,0,-1));

}return 0;

}

二 c 猜數字遊戲

這個遊戲就是我預先想乙個0 99的數字,使用者來猜,我反饋給使用者你猜的大了還是你猜的小了或猜中了,聚餐的時候經常玩的一種遊戲,用 實現一下。guess.h中 ifndef guess h define guess h class guess endif guess hguess.cpp inclu...

數字DP 數字遊戲

科協裡最近很流行數字遊戲。某人命名了一種不降數,這種數字必須滿足從左到右個位數字呈現小於等於的關係,如123,446.現在大家決定玩乙個遊戲,指定乙個整數閉區間 a,b 問這個區間內有多少個不降數。輸入多組測試資料。每組只包含兩個數字a和b 1 a,b 2 31 每行給出乙個測試資料的答案,即 a,...

數字DP 數字遊戲

科協裡最近很流行數字遊戲。某人命名了一種不降數,這種數字必須滿足從左到右各位數字呈非下降關係,如 123,446。現在大家決定玩乙個遊戲,指定乙個整數閉區間 a,b 問這個區間內有多少個不降數。輸入格式 輸入包含多組測試資料。每組資料佔一行,包含兩個整數 a 和 b。輸出格式 每行給出一組測試資料的...