數字遊戲(二)
題目描述
由於科協裡最近真的很流行數字遊戲,某人又命名了一種取模數,這種數字必須滿足各位數字之和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。輸出格式 每行給出一組測試資料的...