時間限制:c/c++ 1秒,其他語言2秒
空間限制:c/c++ 32768k,其他語言65536k
64bit io format: %lld
第一行乙個數 t,表示資料組數。接下來 t 行,每行兩個數 l,r, 表示區間[l,r]。
輸出共t行每行乙個整數,表示[l,r]的密碼。示例1
複製
5複製1 10
2 33 4
5 52 5
151707
對於30%的資料解法:從高位到低位列舉每一位,判斷當前位的狀態:即必須取(**中must函式),必須不能取(**中mustnt函式),以及可取可不取,以下是討論1 ≤ t ≤ 10
0 ≤ l ≤ r ≤ 100
對於另外10%的資料
l=r對於70%的資料
1 ≤ t ≤ 10
0 ≤ l ≤ r ≤ 50000
對於100%的資料
1 ≤ t ≤ 10000
0 ≤ l ≤ r ≤ 1018
(對於100%的資料) 輸入資料較大,請使用快速讀入。
1)若當前位不取,由剩下的所有位構成的最大數加上當前取到的數a小於區間左端點l,則必須取;
2)若當前位取,當前取到的數a加上當前位的數大於區間右端點r,則一定不能取;
3) 除去1)2)中的情況即為可取可不取;
記錄兩個數a,b為當前兩個數,然後分別判斷兩個數對應的以上3種情況的哪一種,討論如下:
1)若兩個數都是第一種情況,都加上1<2)若只有乙個是第一種情況,則把這個加上1<3)若兩個數都不是第一種情況,則若兩個中只要有乙個可取當前位,則給其中能取當前位的任意乙個加上1《附**:
#include#includeusing namespace std;
typedef long long ll;
ll l,r,a,b;
int t;
bool must(ll k,int i)
int main()
else if(must(a,i)&&!must(b,i))
else if(!must(a,i)&&must(b,i))
else
}}
printf("%lld\n",a^b);
}}
牛客oi周賽7
a 小睿睿的等式 theme 給定n k n k 0,0 n 50000000 a,b 0 表示開始時有根火柴,問滿足擺成a b n所使用的火柴數為n k的等式有幾種 b a n與a b n看作一種 各用兩根 數字擺法為 solution 列舉。基本思路是用n減去擺n和 所用的火柴數得到擺a b所需...
牛客周賽兔子的名字
時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld 兔子發現序列的名字都是數字,實在太無聊了,於是兔子開始研究兔子的名字。現在兔子手上有 n 個名字 ti 和 m 個可愛詞彙sj,兔子對每乙個名字 ti 定義了乙個可...
牛客OI周賽9 普及組
目錄a題 b題 c題 小q挺喜歡擼串的,沒錯,字串!你給小q送上了n個字串 對於乙個字串s,如果在小q擼掉 刪除 任意個字元之後,nowcoder 是其子串,則這個字串s是可擼的。小q最近切題切到手軟,想擼串散散心。如果你給他呈現的字串是可擼的,他會很開心,否則他會很桑心。輸入描述 乙個整數n,表示...