題目描述
小凱有一天突發奇想,寫下了一串數字:\(l(l+1)(l+2)...(r-1)r\)
例如:\(l=2,r=5\)時,數字為:\(2345\)
\(l=8,r=12\)時,數字為:\(89101112\)
小凱很喜歡數字9,所以他想問你他寫下的數字除以9的餘數是多少
例如:\(l=2,r=5\)時,2345 mod 9 = 5
輸入輸出格式
輸入格式
第一行為數字q,表示小凱有q個問題 第2-q+1行,每行兩個數字 l,r 表示數字範圍
輸出格式
對於每行的問題輸出一行,乙個數字,表示小凱問題的回答
輸入輸出樣例
輸入樣例 #1
2
2 58 12
輸出樣例 #15
5
輸入樣例 #23
1 999
123 456
13579 24680
輸出樣例 #20
60
樣例解釋
樣例1解釋:\(2345 \quad mod \quad 9 = 5 \quad \\\\ 89101112 \quad mod \quad 9 = 5\)
資料範圍
30% 資料滿足:\(q \le 10;l,r \le 100\)
50% 資料滿足:\(q \le 100;l,r \le ^4\)
70% 資料滿足:\(q \le 1000;l,r \le ^6\)
100%資料滿足:\(q \le 10^4;0且 \(l \le r\)
題意理解
自己看題吧,我懶了
演算法解析
首先你得有小學數論知識.
\[a \equiv 0 \bmod 9 \rightarrow a的數字和是9的倍數
\]也就是說,\(a\)是\(9\)的倍數,就必須數字和是\(9\)的倍數.
然後,我們來康康,一些連續的數字的規律.
\[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22
\]他們數字和模\(9\)是多少呢?
\[0,1,2,3,4,5,6,7,8,0,1,2,3,4,5,6,7,8,0,1,2,3,4
\]假如我問你,\([1,13]\),他們構成的數字,模\(9\)是多少
\[12345678910111213
\]然後等量代換
\[1+2+3+4+5+6+7+8+9+10+11+12+13
\]或者說
\[1+2+3+4+5+6+7+8+0+1+2+3+4
\]其實還可以是
\[1+2+3+4
\]最後就是
\[10 \equiv 1 \bmod 9
\]因此我們可以得出.
我們容易發現,對於任意的九個連續自然數,記為
\[a_1,a_2,a_3 \dots a_9
\]這九個數字的每一位數字之和必被九整除。
證明一下.
\[a_1 數字和為x \\\\x+(x+1)+\dots (x+9) \equiv 9 \times x+(1+2+3+\dots9) \equiv 45 \bmod 9 \equiv 0 \bmod 9
\]然後這道題,就可以愉快的結束了.
\[len=r-l+1 \quad len為區間[l,r]長度 \\\\len=9 \times a+b \\\\因此我們只需要求出b長度個數的模9餘數即可
\]**解析
#include using namespace std;
long long ans,t,l,r,w,x,len;
inline void work()
ans%=9;
l++;
} ans%=9;
cout<>t;
while (t--) }
int main()
小凱的數字
noip2018 原創模擬題t1 noip day1 t1 or day 2 t1 難度 是否發現與noip2017 day1 t1 有異曲同工之妙 說明 10,bug已修復 小凱有一天突發奇想,寫下了一串數字 l l 1 l 2 r 1 r 例如 l 2,r 5時,數字為 2345 l 8,r 1...
洛谷P4942 小凱的數字
題目描述 題目要求從l到r組成的數取模9後的數,其實就是從l到r每次數字模9的和,證明 例如 2345 9 2000 9 300 9 40 9 5 9 9 而2000 9 21000 9 2 91000 9 2 9 任何整十模9都等於1 知道這個規律以後,卻發現列舉一遍會超時,所以可以用等差數列求和...
小凱的疑惑
小凱手中有兩種面值的金幣,兩種面值均為正整數且彼此互素。每種金幣小凱都有無數個。在不找零的情況下,僅憑這兩種金幣,有些物品他是無法準確支付的。現在小凱想知道在無法準確支付的物品中,最貴的價值是多少金幣?注意 輸入資料保證存在小凱無法準確支付的商品。輸入格式 輸入資料僅一行,包含兩個正整數a和b,它們...