C 路徑規劃與奶牛飛盤(社內測試2)

2021-09-05 10:46:25 字數 1722 閱讀 2649

有n個點,m條無向邊,有a,b兩個人,初始時刻a在點1,b在點2,他們要走到點n去。a每走一條邊,要消耗b單位能量,b每走一條邊,要消耗e單位能量。如果a,b相伴走,則只消耗p單位的能量。請問a,b走到點n,最少要消耗多少能量?

輸入資料保證1和n,2和n連通。

第一行包含整數b,e,p,n和m,所有的整數都不超過40000,n>=3.

接下來m行,每行兩個整數,表示該無向邊連線的兩個頂點。

乙個整數,表示最小要消耗的能量。

4 4 5 8 8

1 42 3

3 44 7

2 55 6

6 87 8

22
這一道題最困難的地方在於如何找他們相聚的點,其實我們只需要列舉它們相聚的地點再用bfs求a,b到此端點然後再求端點到終點的單源最短路就可以了。

最後我們再用三個陣列儲存最短路,最後用迴圈和乙個變數找到最小值就可以了。

#include#include#include#include#includeusing namespace std;

int n,ans,x,y,maxn,m,p,b,e,step[40005],dis1[40005],dis2[40005],dis3[40005];

vector g[40005];

void addedge(int u,int v)

bool v[40005],v2[40005];

int read()

while(s>='0'&&s<='9')

return x*f;

}void bfs(int x,int s)

有n(2<=n<=20)頭奶牛在玩飛盤,可是飛盤飛到了高處。現在他們要想辦法疊在一起,去取飛盤。飛盤的高度為h(1 <= h <= 1,000,000,000)。給出每頭奶牛的重量、高度、強壯度(能夠承受的重量),問他們是否夠得到,如果能夠取到,求它們額外還能承受最多多少重量。(要保證每頭奶牛所承受的重量都不超過它的強壯度)。

輸入格式:

第一行包含n和h。

接下來n行,每行三個數,分別表示它的高度、重量和強壯度。所有的數都為正整數。

輸出格式:

如果奶牛的隊伍可以夠到飛盤,輸出還能承受的最大額外重量;否則輸出「mark is too tall」.

4 10

9 4 1

3 3 5

5 5 10

4 4 5

2
這一道題我們可以用貪心這樣想,將強壯值+體重較小的牛排在前面,強壯值+體重較大的牛排在後面,為什麼?

因為擺在上面的牛的體重必定小於擺在下面的牛的強壯值,所以排在前面的牛的強壯值因當較小(這樣才能讓佇列更高),兩個不等式一加就得到了答案。(其實這道題就是程式設計社排隊+dfs)

這樣我們就能用dfs(暴搜)得到答案。

#include#include#include#include#define ll long long

using namespace std;

ll n,m,maxn,ans,sumt,sumh;

struct nodes[55];

bool cmp(node x,node y)

if(sumt<=s[x].q)

dfs(x+1);

}int main()

路徑與軌跡 路徑規劃與軌跡規劃 路徑跟蹤與軌跡跟蹤

對於無人車輛來說,全域性路徑點只要包含空間位置資訊即可,也可以包含姿態資訊,而不需要與時間相關,但區域性規劃時,則可以考慮時間資訊。這裡規定軌跡點也是一種路徑點,即當路徑點資訊中加入時間約束,就可以被稱為軌跡點。從這個角度理解,軌跡規劃就是一種路徑規劃,當路徑規劃過程要滿足無人車輛的縱向和橫向動力學...

ROS MoveBase與路徑規劃

一 movebase框架 上圖中move base 節點提供用於配置,執行和與互動的ros介面。上面顯示了move base節點及其與其他元件的互動的高階檢視。主要包含了global panner與local panner,分別用於總體路徑規劃與區域性路徑規劃。預期的機械人行為 二 全域性規劃器 1...

Dijkstra 路徑規劃 C

示例無向圖如下 起始點為v0 鄰接矩陣為 注意 其中沒有連線的邊和自己到自己的點權值用10000表示。static void main string args int n 6 int s new int n 最短路徑的頂點集合 string mid new string n 點的路線 for int...