這是典型的用貪心演算法求解的問題。
根據題意我們不難理解到:我們首先要做的是求到每乙個機械人每走一步所需要的時間,並假設用乙個陣列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 ...