?? robot.cpp
字號:
/*
在登山過程中,登山機器人需要消耗一定能量,連續攀登的路程越長,其攀登的速度就越慢。在對n 種不同類型的機器人作性能測試時,測定出每個機器人連續攀登1米,2米,…,k 米,所用的時間。現在要對這n個機器人作綜合性能測試,舉行機器人接力攀登演習。攀登的總高度為m 米。規定每個機器人只能攀登1次,每次至少攀登1 米,最多攀登k 米,而且每個機器人攀登的高度必須是整數,即只能在整米處接力。安排每個機器人攀登適當的高度,使完成接力攀登用的時間最短。
給定n 個登山機器人接力攀登的總高度m,及每個機器人連續攀登1 米,2 米,…,k米,所用的時間,編程計算最優攀登方案。
*/
#include<iostream>
using namespace std;
void compute()
{
int n,k,m,i,j,min,h,sum=0;
int a[200][200], b[200][200],w[200];
cin>>n>>k>>m;
for(i=1;i<=n;i++)
for(j=1;j<=k;j++)
cin>>a[i][j];
for(i=1;i<=n;i++)
for(j=1;j<k;j++)
b[i][j]=a[i][j+1]-a[i][j];
for(i=1;i<=n;i++)
b[i][k]=1000000000;
for(i=1;i<=n;i++)
w[i]=1;
for(i=n+1;i<=m;i++){
min=b[1][w[1]];
for(j=1;j<=n;j++)
if(b[j][w[j]]<=min){
min=b[j][w[j]];
h=j;
}
w[h]++;
}
for(i=1;i<=n;i++)
sum+=a[i][w[i]];
cout<<sum<<endl;
}
int main()
{
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
compute();
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -