📄 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 + -