⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 robot.cpp

📁 给定n 个登山机器人接力攀登的总高度m
💻 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 + -