首先這道題沒寫出來,困擾了好久,也看過了別人的**,都是運用迪傑斯特拉和弗洛伊德相結合,但是我不是很理解,要再深入理解一下這兩個演算法。
期間用了記憶化搜尋,得了六十分;用了求出每條路徑再計算每條路徑值,超時,加了最優性剪枝,也只有三十。
先記下這道題,回頭再寫。
#include#include#define inf 1e18
typedef long long int ll;
typedef structroad;
int n,m;
ll min=inf;
int set[505];
road map[505][505];
int stack[505],top=-1;
void initinfo()
top=-1;
}ll getsum()
else keep+=map[a][b].len;
} sum+=keep*keep;
return sum;
}void createmap()
}void dfs(int now)
for(int i=1;i<=n;++i)
top--;
set[now]=0;
}int main()
ccf 行車路線
問題描述 小明和小芳出去鄉村玩,小明負責開車,小芳來導航。小芳將可能的道路分為大道和小道。大道比較好走,每走1公里小明會增加1的疲勞度。小道不好走,如果連續走小道,小明的疲勞值會快速增加,連續走 s公里小明會增加 s2的疲勞度。例如 有5個路口,1號路口到2號路口為小道,2號路口到3號路口為小道,3...
CCF行車路線
題目鏈結 注意事項 dev c 宣告 檔案才能使用memset函式 最短路演算法一定要先初始化好相關的陣列變數,將相應的值初始化為最大值 題目最終所求的結果一般都很大,最好使用 long long 型別。一定要先測試一遍程式再提交 最開始這道題我想用兩張圖同時用floyd演算法過一遍,最後發現這種想...
ccf 行車路線
問題描述 小明和小芳出去鄉村玩,小明負責開車,小芳來導航。小芳將可能的道路分為大道和小道。大道比較好走,每走1公里小明會增加1的疲勞度。小道不好走,如果連續走小道,小明的疲勞值會快速增加,連續走s公里小明會增加s 2的疲勞度。例如 有5個路口,1號路口到2號路口為小道,2號路口到3號路口為小道,3號...