九度1086解題報告

2021-06-20 18:40:14 字數 685 閱讀 7017

典型的動態規劃題,當然也可以用圖的最短路徑方法,但是對我來時dp實現起來容易一些。在這道題中,有兩點值得注意,一是兩站之間的距離和票價都可以達到10^9,故計算過程中可能出現比int範圍大的數,因此需要用long long型別來儲存資料;二是我自己思維不周密,只考慮到了起點站比終點站編號小這種情況,而忽略了反過來的情況,故需先比較兩者的大小。**如下:

#include #define max 10000

const long long inf=0x7fffffffffffffff;

long long dp[max];

long long s[max];

int main()

s[1]=0;

for (int i=2;i<=n;++i)

scanf("%lld",&s[i]);

for (int i=0;i<=n;++i)

dp[i]=inf;

dp[a]=0;

for (int i=a;i<=b;++i)

{for (int j=b;j>=a;--j)

{long long temp=s[j]-s[i];

if (temp>=0&&temp<=l1)

{if (dp[i]+c1l1&&temp<=l2)

{if (dp[i]+c2l2&&temp<=l3)

{if (dp[i]+c3

九度1184解題報告

這是乙個二叉樹的問題,題目如下 事實上考的就是二叉樹的資料結構以及先序和中序遍歷。一般來說,僅僅由先序遍歷序列無法得到中序序列,然而,本題特殊的地方在於先序遍歷序列中給出了遍歷中遇到的空指標,這樣就很容易根據序列構造二叉樹 依次訪問先序序列,遇到 就返回空指標,遇到非 字元就構造乙個對應的節點,然後...

九度1019解題報告

關於計算器的題目該題要編寫的計算器比一般的計算器簡單,因為不含括號,運算優先順序就兩種,先算乘除法就好,這是受到了fripside同學的啟發,不需要算術符號棧,只需要數字棧,遇加減號就將下乙個數字入棧 遇減號將數字反號入棧 遇乘除號,就將棧頂的數字取出運算後再入棧。當處理完整個計算式時,將棧中的所有...

九度1139解題報告

最小子矩陣問題是求最優解的一類題,看到題目就想到兩種做法,乙個是dp,乙個是搜尋遍歷的方法。雖然深搜很多時候並不是用來解決最優解問題的,但是dp的做法,我暫時沒有想到該怎麼做,於是就先用dfs,如下 include using namespace std define inf 999999999 i...