一生之敵 2017浙江中醫藥大學程式設計

2021-08-13 21:48:29 字數 1268 閱讀 2646

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 131072k,其他語言262144k

64bit io format: %lld   

大家都知道alice和bob兩個人是一生之敵。(霧  

但某天,他們兩個人發了瘋。想知道他們兩個是否可以成為朋友。  

於是他們做了乙個令人窒息的決定。    

alice和bob每個人任意選乙個整數。  

假設alice選擇了整數a,bob選擇了整數b。  

alice使得a做如下變換:  

a -> 2 * a * (a+1)^2

bob使得b做如下變換:  

b -> b^2

如果變換後的數字相等,則兩個人可以化敵為友。  

如果不相等,這兩個人怕是石樂志。

現在,你想把bob部分可能的整數b(存在a變換後的數字等於b變換後的數字)從小到大排列後,知道第乙個大於等於n的數字是多少。

第一行輸入乙個整數t,表示資料組數。

每組資料輸入乙個整數n。

1 <= t <= 100000

0 <= n <= 10^19

保證結果存在

輸出乙個整數。
示例1

3  

2 6

100

6

6114

這道題當時讀了很久,一直搞不懂樣例是怎麼出來,還是做的題少,沒有語感,中文題目都這樣了,何況英文題;

讀懂題意之後,一看資料範圍就知道是二分查詢,只需要把a和b做一下變換即可:

b^2 = 2*a*(a+1)^2 -> b = sqrt(2*a)*(a+1);

因為sqrt(2*a)是整數,所以令2*a=4*t*t,所以a=2*t*t;

所以就轉換成b=2*t*(2*t*t + 1),所以只需二分

#include #include using namespace std;

#define max 3e6

typedef unsigned long long ull;

int main()

ull l = 0, r = max, m, t, ans;

while(l <= r)

else

} printf("%llu\n",ans);

} return 0;

}

尋找zcmu 2017浙江中醫藥大學程式設計

時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld 一年一度的浙江中醫藥大學程式設計校賽正在火熱進行,舉辦至今這是第十一屆校賽了。那麼今年就來尋找一下zcmu。這裡有一串只包含小寫字母的字串,裡面有若干個zcmu,你...

浙江中醫藥大學2018級新生程式設計競賽

題目很簡單,兩個for迴圈巢狀一下,控制下每行左後一位的換行直接輸出就好了。include include include include include includeusing namespace std typedef long long ll typedef unsigned long lo...

浙江中醫藥大學程式設計代表隊2023年訓練賽十一

time limit 1 sec memory limit 128 mb submit 9 solved 3 submit status web board 3000公尺長跑時,圍觀黨們興高采烈地 著 最後的排名。因為他們來自不同的班,對所有運動員不一定都了解,於是他們分別對自己了解的一些運動員的實...