noip衝刺賽 迴圈整數

2021-07-06 09:45:05 字數 1356 閱讀 9345

【問題描述】

mored 在學習完迴圈小數之後發現迴圈是個很美好的性質。自己只需要記住短短的迴圈

節以及迴圈次數(次數大於 1,且是整數)就可以記住整個數字了。

因為背誦數字變得方便了,mored 決定背誦[l,r]內的所有迴圈的整數。mored 的背誦

計畫有 t 天,但是他不知道每天具體要背多少個數,請你幫助 mored 計算出每天需要背誦

的數字個數。

如果 mored 在某天遇到乙個曾經背過的數字,他會義無反顧地重新背誦。

【輸入格式】

第一行給出乙個整數 t,表示 mored 計畫背誦 t 天的數字。

接下來 n 行,第 i 行給出 2 個整數 li,ri,表示 mored 第 i 天的背誦計畫。

【輸出格式】

輸出 t 行,每行乙個整數,表示第 i 天 mored 需要背誦的數字個數。

【輸入輸出樣例】

circulate.in  circulate.out

31 10000

55555 66666

10 100

1082

9【資料範圍】

對於 30%的資料 t*max<=2*10^6

對於 70%的資料 max<=2*10^6

對於 100%的資料 t<=50000,1<=li<=ri<=2*10^18

【樣例解釋】

對於第 2 天,mored 只需要背誦 55555,66666.

對於第 3 天,mored 只需要背誦 11,22,33,44,55,66,77,88,99.

把乙個區間[l,r]分成兩個區間[1,l][1,r],然後分別計算各區間的數量,最後用右邊的區間減去左邊的區間即可。

至於中間查詢的過程= =。。。我能說是找規律嗎。。

#include//將乙個區間[l,r]分為[1,l]和[1,r]; 分別計算值 然後右邊的減去左邊的

#include#includeusing namespace std;

const int maxn=19;

char a[20];

char b[20];

int n;

long long num[20];

long long sum[20];

void prepare()//初始

int ans=0;

for(int i=1;ip-j;i--)//

long long q=0;

bool flag=false;

for(int i=p-j;i>0;i--)

}sum[j]=t-s-flag+1;

// printf("j=%d orz=%d\n",j,sum[j]);

for(int k=1;k

找位置 衝刺 noip

找位置 測試區 題目 farmer john 想找乙個最好的位置來建新農場,這樣他每天可以少走些路。fj 所在的區域,有n 個城鎮 1 n 10,000 城鎮之間,有m 1 m 50,000 條雙向路相連。所有城鎮都可以借助一些路相互連線。fj 需要你的幫助來選擇最合適建新農場的城鎮。k 1 k 5...

衝刺國賽2022 模擬賽2

題目描述 有乙個 n times n 的矩陣,初始時所有位置上都是 0 每次你可以選擇若干行 r 1,r 2.r p 和若干列 c 1,c 2.c q 把這些行列交點處的位置都變成 1 即把 r i,c j 1 leq i leq p,1 leq j leq q 這些位置上的數字都變成 1 n le...

noip模擬賽 密碼

表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...