登山機械人問題

2021-06-06 06:03:21 字數 602 閱讀 6222

這是典型的用貪心演算法求解的問題。

根據題意我們不難理解到:我們首先要做的是求到每乙個機械人每走一步所需要的時間,並假設用乙個陣列b【n1】【n2】表示,這是很easy就可以實現的,用乙個雙層迴圈完了再用前面值減後面值就好了(b[i][j]=a[i][j]-a[i][j-1])。然後就是正式處理了,

明白了上面的內容之後,我們要解決的就是:哈,你沒有猜錯,就是如何找到這25個最小值。俺的方法是把它們全部放到第一列來比較,首先最最小的肯定產生於第一列,對吧?(

還是不太明白的話可以看**哦。

#include"stdio.h"

#define max 0x7fffffff

int main()

}printf("%d ",min);

sum+=min;

while(b[key][j]==0)j++;

b[key][0]=b[key][j];

b[key][j]=0;

}

printf("%d",sum);

system("pause");

return 0;

}

ps:檔案路徑視自己pc安排而定

機械人跳躍問題

機械人正在玩乙個古老的基於dos的遊戲。遊戲中有n 1座建築 從0到n編號,從左到右排列。保證編號為0的建築高度為0個單位。編號為i的建築 i 1,n 的高度為hi個單位。起初,機械人在編號為0的建築處。每一步,它跳到下乙個 右邊 建築。假設機械人在第k個建築,且他現在的能量值是botenergy,...

深海機械人問題

這題的題面描述。有點問題。座標寫的很亂。這道題其實和著名dp問題方格取數很像qwq 我們發現機械人可以重複經過邊,但只能對答案貢獻一次,所以兩點間連兩條邊。一條是容量1帶的費用。另一條沒費用容量inf。用拆點嗎?不用的。因為這個權值是走過邊會有,所以這題中不用拆點。起點連s容量機械人,終點連t容量機...

深海機械人問題

費用流,兩個點間連費用為負價值容量為1的邊,再連費用為零容量為inf的邊,建立s,t,分別向起點終點連邊,跑最小費用流,對答案取反即可 水 include define rg register define il inline define fill a,b memset a,b,sizeof a ...