塔 貪心 搜尋

2021-08-28 08:36:18 字數 1038 閱讀 1772

小 a 想搭乙個體積不超過 m 的塔,他有各種大小的立方積木,比如邊長

為 a 的積木,體積為 a^3,現在小 a 需要你給乙個 x,每次小 a 會用乙個體積

不超過 x 的最大積木,依次到搭好為止,現在他想最大化積木的個數,同時在

積木個數最大的情況下使 x 最大。

【輸入描述】 一行乙個數 m

【輸出描述】 一行兩個數,最多積木數以及 x。

【輸入樣例】48

【輸出樣例】9 42

【樣例解釋】 x=23 或 42 都是 9 次,42 = 3^3 + 2^3 + 7*1^3

【資料範圍】 30%:m<=10^5 50%:m<=10^10 100%:m<=10^15

也就是說

如果f[i]表示當x為i時,搭的最大體積

g[i]表示x為i時的最大個數

f[i] = max(f[i-a^3]+a^3 , f[a^3 - 1 - (a-1)^3] + (a-1)^3 )

g[i] = max(f[i-a^3]+1 , f[a^3 - 1 - (a-1)^3] + 1 )

本來還要列舉a-2,a-3...

但一定不是最優

用dfs寫就是這樣的

#include#define ll long long

using namespace std;

ll m,ans,pos;

void dfs(int max,int cnt,int num)int a=pow(max,1.0/3);

dfs(max-a*a*a,cnt+a*a*a,num+1);//放a

dfs(a*a*a-1-(a-1)*(a-1)*(a-1),cnt+(a-1)*(a-1)*(a-1),num+1);//放a-1

}int main(){

cin>>m;dfs(m,0,0);cout時間複雜度為o(num) 差不多就是 o(

搜尋 貪心 盤古之心

1.盤古之心 maze.pas c cpp 題目描述 蒟蒻暮雨 今夕喜歡玩一款名叫仙劍的遊戲,仙劍1 2 3 4 5對他來說都毫無難度,於是他開始挑戰傳說中的 仙劍奇俠傳3外傳 問情篇 說是問情篇,其實網上大家都是叫的 問路篇 其中的迷宮怎乙個 了得 好在暮雨 今夕是這方面的高手,成功攻克了乙個又乙...

習題 Easy SSSP 搜尋 貪心

鏈結 看見n的範圍,果斷dfs,但是如果是單純的dfs,必炸無疑,之後考慮優化的問題,因為題目存在有負邊 所以我們先搜尋與當前這個點相連的點的邊權最小的開始蒐會好一點 也有的大犇選擇了spfa,網上的題解一大堆,這裡既不說明了,其實是因為筆者菜 include include include inc...

記憶化搜尋入門 數塔

time limit 1000ms memory limit 65536kb submit statistic discuss problem description 給定乙個由n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。對於給...