NOIP校內模擬 塔

2022-05-04 09:24:07 字數 935 閱讀 8568

我們可以這樣考慮

x 必定是由若干個立方數拼起來的 因此我們可以逆著求 只需關心每次取哪個立方數即可

設a是最大的 a 使得 a^3 不超過 m

分析樣例 我們發現在第一次的時候 就可以取a或者a-1

那第一次取a-2 a-3....行不行呢?

1.用 a,剩下m-a^3

2.用 a-1, x 最大為 a^3-1, m2 = a3-1-(a-1)3=a^2-a

3.用 a-2, x 最大為(a-1)3-1,m2=(a-1)3-1-(a-2)3=a2-3a+6

......

顯然 2 一定比 3 優

因此第一次只能取a或者a-1,那後來怎麼辦呢?

其實後面的每一次都是從a,a-1裡選,因為讓每一步抉擇都最優(x最大),類似於dp思想,總的才會最優

**不保證正確性,經供參考

#include#define ll long long

using namespace std;

ll m;

pairans;

ll pow3(ll x)

void search(ll m,ll step,ll spend)

ll x=1;

while(pow3(x+1)<=m) x++;

search(m-pow3(x),step+1,spend+pow3(x));

search(pow3(x)-1-pow3(x-1),step+1,spend+pow3(x-1));

}int main()

NOIP校內模擬 塔

我們可以這樣考慮 x 必定是由若干個立方數拼起來的 因此我們可以逆著求 只需關心每次取哪個立方數即可 設a是最大的 a 使得 a 3 不超過 m 分析樣例 我們發現在第一次的時候 就可以取a或者a 1 那第一次取a 2 a 3.行不行呢?1.用 a,剩下m a 3 2.用 a 1,x 最大為 a 3...

NOIP校內模擬 航班

描述 l因為業務繁忙,經常會到處出差。因為他是航空公司的優質客戶,於是某個航空 公司給了他乙個優惠券。他可以利用這個優惠券在任何乙個國家內的任意城市間免費旅行,當他的路線跨國 才會產生費用。l有乙個航空公司的 表與航線。而且每個城市出發都能到所有的城 市,2 個城市間可能有不止乙個航班,乙個國家內的...

NOIP校內模擬 階乘

描述 有n個正整數a i 設它們乘積為p,你可以給p乘上乙個正整數q,使pq剛好為正整數m的階乘,求m的最小值。輸入共兩行。第一行乙個正整數n。第二行n個正整數a i 輸出共一行 乙個正整數m。樣例輸入16 樣例輸出3提示 樣例解釋 當p 6,q 1時,pq 3!資料範圍與約定 對於10 的資料,n...