noip2018 原創模擬題t1
noip day1 t1 or day 2 t1 難度
是否發現與noip2017 day1 t1 有異曲同工之妙
小凱有一天突發奇想,寫下了一串數字:l(l+1)(l+2)...(r-1)rl(l+1)(l+2)...(r−1)r
例如:l=2,r=5時,數字為:23452345
l=8,r=12時數字為:8910111289101112
小凱很喜歡數字9,所以他想問你他寫下的數字除以9的餘數是多少
例如:l=2,r=5時,2345 mod 9 = 5
輸入格式:
第一行為數字q,表示小凱有q個問題
第2-q+1行,每行兩個數字 l,r 表示數字範圍
輸出格式:
對於每行的問題輸出一行,乙個數字,表示小凱問題的回答
輸入樣例#1:
22 58 12
輸出樣例#1:
55
輸入樣例#2:
31 999
123 456
13579 24680
輸出樣例#2:
060
樣例1解釋:2345 mod 9 = 5 89101112 mod 9 = 5
30% 資料滿足:q<=10;l,r<=100
50% 資料滿足:q<=100;l,r<=10000
70% 資料滿足:q<=1000;l,r<=10^6
100%資料滿足:q<=10000;l,0且 l<=r
根據本題的資料範圍,不難發現一定是一道數論題。這一題的難度和noip提高組day1的第一題水平差不多,所以應該不是很難;
解決本題,首先要知道:
定理1、能被9整除的數各位數字之和能被9整除;
定理2、如果有9*n(n為自然數)個連續的數字(如題意,比如123456789),那麼該數一定能被9整除
第一點很好理解,其實第二點也同樣如此,根據高斯求和公式,(首項+末項)*項數/2,
有計算經驗的同學一定知道,(首項+末項)和項數中一定有乙個是2的倍數,所以不存在帶餘除法,
那麼因為項數是9的倍數,所以上述公式(首項+末項)*項數/2,一定是9的倍數,所以定理2成立。
那麼,根據這兩個定理,本題**就很好寫了。
1.讀入問題數量q,迴圈q次,每次讀入l和r;
2.計算出數字個數(即r-l+1的值),並對9取餘,即定義乙個變數cnt=(r-l+1)%9;
3.從r開始,往前依次列舉cnt次(因為cnt對9取過模,所以最多迴圈9次)
將列舉出的數字對9取餘,加入sum中;
4.輸出sum對9取餘即可
5.本題還有乙個細節:要用long long
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7#define ll long long89
using
namespace
std;
1011
intq;
12ll l,r;
1314
void
work()
1526
return;27
}2829int
main()
30
出處:
洛谷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 知道這個規律以後,卻發現列舉一遍會超時,所以可以用等差數列求和...
洛谷 P4942 小凱的數字(數論,逆元)
因為可以大整數分解為l 10k l 1 10k 1 l 2 10k 3 r 100,而10k 9 1,所以原整數在模9意義下等於l l 1 l 2 l 3 r l r r l 1 2。因為有除法,所以我們算出2在 9意義下的逆元為5,即可解決問題。逆元不會求咋辦?當場退役。不!洛谷大佬告訴我們 當要...
洛谷比賽 U5442 買 最長鏈
u5442 買 題目提供者bqsgwys 標籤樹形結構 樹的遍歷 洛谷原創 題目背景 小e是個可愛的電路編碼員。題目描述 一天小e又要準備做電路了,他準備了乙個電路板,上面有很多個電路元器件要安裝,於是他跑到了村口某電子城去買。小e詳細檢視了某電子城的地圖,發現自己要去地下一層,共有n個攤鋪,任意兩...