題目是:給出乙個數字(10,000~100,000,000),把這個數字拆分成4段,怎樣使得4段的乘積最小。比如12345拆分成1*2*3*45=270, 10000=1*00*0*0=0。
題目分析:
這道題很明顯能用動態規劃(dp)來求解,用dp(i,j)表示:以指向第j個位置字的符結束的字串還需要分為i份所得到的最小乘積,那麼題目中的12345的正解就是dp(4,5)表示以第5個字元(『5』)結束的字串分成4份所得到的最小乘積。
num(i,j)表示字串中從第i個字元到第j個字元組成的字串的值,如12345中,num(2,4)=234
my code:
[cpp]view plain
copy
#include
#include
using
namespace
std;
intdp[5][20];
intnum(
const
string &str,
intb,
inte)
return
res;
} int
main()
dp[i][j]=res;
} else
if(i!=1)
dp[i][j]=min;
} else
if(i==1)
} cout
0;
}
GEANT4學習 段錯誤
1 之前在提取step postpoint時出現了段錯誤,我的推測是step達到world的邊界,無法提取,出現了資訊提取的邏輯錯誤。加了判斷之後就好了。2 還是提取資料出錯,我看有提取step postpoint 的process name的語句,我就寫了乙個提取前點的,發現不行,這個應該是前點就...
(4)段描述符P,G位
在前面的課程學習中我們了解到,段暫存器有96位,其中80位不可見,包括base,limit,attribute。16位可見,即段選擇子selector。對段暫存器進行寫入時,cpu根據段選擇子到gdt表中尋找段描述符,段描述符共8位元組,64位,cpu根據段描述符填充段暫存器。那麼問題就是,如何用6...
Windows核心 (4) 資料段許可權檢查
cpl cpl是當前執行的程式或任務的特權級。它被儲存在cs和ss的第0位和第1位上。通常情況下,cpl代表 所在的段的特權級。當程式轉移到不同特權級的 段時,處理器將改變cpl。只有0和3兩個值,分別表示使用者態和核心態。dpl 如果你想訪問我,你應該具備什麼樣的許可權 rpl 用什麼許可權去訪問...