2014百度之星資格賽解題報告 能量變換

2022-08-10 20:06:18 字數 937 閱讀 7871

qaz的能量變換

題目描述:

魔法師百小度也有遇到難題的時候——

現在,百小度正在乙個古老的石門面前,石門上有一段古老的魔法文字,讀懂這種魔法文字需要耗費大量的能量和大量的腦力。

過了許久,百小度終於讀懂魔法文字的含義:石門裡面有乙個石盤,魔法師需要通過魔法將這個石盤旋轉x度,以使上面的刻紋與天相對應,才能開啟石門。

但是,旋轉石盤需要n點能量值,而為了解讀密文,百小度的能量值只剩m點了!破壞石門是不可能的,因為那將需要更多的能量。不過,幸運的是,作為魔法師的百小度可以耗費v點能量,使得自己的能量變為現在剩餘能量的k倍(魔法師的世界你永遠不懂,誰也不知道他是怎麼做到的)。比如,現在百小度有a點能量,那麼他可以使自己的能量變為(a-v)*k點(能量在任何時候都不可以為負,即:如果a小於v的話,就不能夠執行轉換)。

然而,在解讀密文的過程中,百小度預支了他的智商,所以他現在不知道自己是否能夠旋轉石盤,開啟石門,你能幫幫他嗎?

輸入:輸入資料第一行是乙個整數t,表示包含t組測試樣例;

接下來是t行資料,每行有4個自然數n,m,v,k(字元含義見題目描述);

資料範圍:

t<=100

n,m,v,k <= 10^8

輸出:對於每組資料,請輸出最少做幾次能量轉換才能夠有足夠的能量點開門;

如果無法做到,請直接輸出-1。

樣例輸入:

410 3 1 2

10 2 1 2

10 9 7 3

10 10 10000 0

樣例輸出:3-1

-10解題報告:

#include #include const int maxn = 10000;

int dfs(long long n,long long m,long long v,long long k,int tim){

if(n<=m)return tim;

if(m

2014百度之星資格賽解題報告 Labyrinth

labyrinth 時間限制 1s 記憶體限制 65536k 問題描述 輸入輸入的第一行是乙個整數t t 200 表示共有t組資料。每組資料的第一行輸入兩個正整數m,n m 100,n 100 接下來的m行,每行n個整數,分別代表相應格仔中能得到金幣的數量,每個整數都大於等於 100且小於等於100...

百度之星資格賽

1001 給你1 n這n個數字,公升序排列,接下來按照陣列a進行位置變換,a i 代表第i個數字會變到a i 位置上,a中的數字也是從1 n。現在問有多少個不同的陣列能滿足做一次變換和做三次變換結果相同。我們可以這樣分析,x y是唯一的到y的途徑,假設x y為第一次變換,因此在第三次變換的時候任然為...

2016 百度之星 資格賽

變懶了,最近做的很多題目都不想貼了。本來就sb,還那麼懶,沒救了。a沒想太多,設個逆元就過了。b斐波那契數列高精度。n 0時輸出換行。c字典樹,記錄結點的單詞數 以及 當前結點是否是單詞的末尾,delete時需要先找出字首對應的串數,那麼就dfs統計末尾結點總數,然後用字首減掉就好了。一開始dfs跑...