请用c/c++编写一道算法题。 100

N个孩子,每个人的力量为X,分组玩一种随机游戏,站在一条线上,第一个为1,第二个为2,依次类推。从一个盒子里抽出M张卡片,每个卡片上有一对数字。表示属于同一组孩子的位置。... N个孩子,每个人的力量为X,分组玩一种随机游戏,站在一条线上,
第一个为1,第二个为2,依次类推。从一个盒子里抽出M张卡片,每个卡片上有一对数字。
表示属于同一组孩子的位置。
假入一张卡片上有{1,4},另一张上有(4,3),则在位置{1,4,3}的孩子属于同一组。
其位置未在任何卡片上出现的孩子作为一个单人组参加。
每组实力为每个孩子力量和。实力最强组获胜。设计算法,输出最强组实力。
可以说说可以从哪方面入手。
展开
 我来答
百度网友a1e531d
2017-08-25 · TA获得超过1008个赞
知道小有建树答主
回答量:744
采纳率:50%
帮助的人:306万
展开全部

这个题挺简单的,给出思路吧,代码自己写

  1. N个孩子分别分配到不同组。例如5个孩子,新建int group[5]={1,2,3,4,5},表示第一个孩子在1组,第二个在2组……第N个在N组

  2. 读取卡片上的数字,把第二个孩子的组号改为跟第一个相同。例如卡片上是{1,4},则将group里的4号变成1号,即:{1,2,3,1,5};

  3. 卡片读取完了,最后统计每个组里有多少人,例如上面的group,1组有2个人,2组1个,3组1个,4组0个,5组1个人,乘以力量就得到每个组的实力值

  4. 比较各组实力值,输出最大值即可

秋梵远航D
2017-08-29
知道答主
回答量:1
采纳率:0%
帮助的人:938
引用qw311312313的回答:
这个题挺简单的,给出思路吧,代码自己写
N个孩子分别分配到不同组。例如5个孩子,新建int group[5]={1,2,3,4,5},表示第一个孩子在1组,第二个在2组……第N个在N组
读取卡片上的数字,把第二个孩子的组号改为跟第一个相同。例如卡片上是{1,4},则将group里的4号变成1号,即:{1,2,3,1,5};
卡片读取完了,最后统计每个组里有多少人,例如上面的group,1组有2个人,2组1个,3组1个,4组0个,5组1个人,乘以力量就得到每个组的实力值
比较各组实力值,输出最大值即可
展开全部
如果先是{4,3}后是{1,4}呢,这种思路做出来就会出现问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
on娜丫头no
2017-08-25
知道答主
回答量:1
采纳率:0%
帮助的人:939
展开全部
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

int main()
{
const int N = 4;
const int M = 3;
int studentPair[M][2] = { {1,2},{2,3},{3,1} };
int strengrh[N] = {1,2,3,5};

int ret[N][N] = { 0 };
int num[N] = { 0 };
int retnum = 0;
int retst[N] = {0};

for (int i = 0; i < M; ++i)
{
for (int j = 0; j < 2; ++j)
{
if (i == 0)
{
ret[i][j] = studentPair[i][j];
++num[retnum];
}
else
{
bool isadd = false;
for (int x = 0; x < retnum; ++x)
{
for (int z = 0; z < num[x]; ++z)
{
if (ret[x][z] == studentPair[i][j])
{
for (int y = 0; y < 2; ++y)
{
ret[x][num[x]] = studentPair[i][y];
++num[x];
}
isadd = true;
break;
}
}
if (!isadd)
{
retnum++;
for (int l = 0; l < 2; ++l)
{
ret[retnum][l] = studentPair[i][l];
}
}
}
if (isadd) break;
}
}
}

for (int i = 0; i < retnum; ++i)
{
for (int j = 0; j < num[i]; ++j)
{
retst[i] += strengrh[ret[i][j]];
}
cout << retst[i] << endl;//输出 retst中最大的
}

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式