36.n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系
来源:互联网 发布:c语言输出钻石图案 编辑:程序博客网 时间:2024/04/28 03:15
题目:
谷歌笔试:
n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系,
存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j的队伍中更强的一支。
所以w[i][j]=i 或者j,现在给出它们的出场顺序,并存储在数组order[n]中,
比如order[n] = {4,3,5,8,1......},那么第一轮比赛就是 4对3, 5对8。.......
胜者晋级,败者淘汰,同一轮淘汰的所有队伍排名不再细分,即可以随便排,
下一轮由上一轮的胜者按照顺序,再依次两两比,比如可能是4对5,直至出现第一名
编程实现,给出二维数组w,一维数组order 和 用于输出比赛名次的数组result[n],求出result。
答案:
//20130415
#include <iostream>using namespace std;void kout(int w[][5], int order[], int result[], int n){int i = 0;int j = 0;memcpy(result, order, n*sizeof(int));while (n > 1){i = 0;j = 0;for (;j < n/2;){if (order[i] == w[order[i]][order[i+1]]){result[j] = order[i];result[n-1-j] = order[i+1];}else{result[j] = order[i+1];result[n-1-j] = order[i];}i = i + 2;j = j + 1;} if (n % 2 != 0){result[j] = order[i];n = n + 1;}n = n/2;memcpy(order,result,n*sizeof(int));}}int main(){int const n = 5;int w[][5] = {{0,1,0,3,0},{1,1,2,3,1},{0,2,2,2,4},{3,3,2,3,3},{0,1,4,3,4}};int order1[n] = {0,1,2,3,4};int result1[n] = {0};kout(w, order1, result1, n);int const m = 4;int s[][5] = {{0,1,0,3},{1,1,2,3},{0,2,2,2},{3,3,2,3}};int order2[m] = {0,1,2,3};int result2[m] = {0};kout(s, order2, result2, m);return 0;}
- 36.n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系
- n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系和出场顺序,求最终排名
- 算法习题36:n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系
- n 支队伍比赛,分别编号为0,1,2......n-1,已知它们之间的实力对比关系,存储在一个二维数组w[n][n]中。。。
- n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系, 存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j 的队伍中更强的一支。
- n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系, 存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j 的队伍中更强的一支。
- 每天学习一算法系列(33)(n 支队伍比赛,分别编号为0,1,2......n-1,已知它们之间的实力对比关系,存储在一个二维数组w[n][n]中,w[i][j] 的值代表编号为i,j 的队伍中更强)
- 30. 谷歌面试题:n支队伍比赛,分别编号为0,1,2。。。。n-1
- n支队伍比赛
- n支队伍比赛
- 微软100题(36)N支队伍比赛
- 兔子的烦恼 ---在一座山上有n个山洞(每个洞从0~n-1分别编号)
- 有n枚硬币按照0到n-1对它们进行编号,其中编号为i的硬币面额为vi,两个人轮流从剩下硬币中取出一枚硬币归自己所有,但每次取硬币的时候只能取剩下的硬币中编号最小的硬币或者编号最大的硬币,在两个都采用最
- 谷歌笔试:已知实力对比关系和出场顺序,输出比赛名次
- 将[1,n^2]区间内n^2个数字分别填充到n*n的矩阵里,要求任意两个相邻的数字的和,它们的最大值最小是多少?
- 已知一个整数n,写一个函数f(n),返回0~n间,每个数中出现的“1”的个数,问最大的F(n)= n中n为多少
- 编号为1,2,3,4.......n的一群人沿顺时针方向围绕一圈的问题
- 给定整数x,定义函数A(n)=1+x+x2+x3+…+xn(n为整数且n>=0).已知乘运算的时间远大于加运算,输入x,n;如何尽可能快的求出A(n)?
- Android - API - android.Manifest.permission (权限)
- SPOJ 1128 数位DP
- JSF页面组件化
- 归并排序
- asp页面跳转返回获取页面框架也
- 36.n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系
- 如何打开指定类型的文件
- javascript自动生成年月日下拉选择框
- 【科研论文】一种多协议融合的物联网节点设计
- 尔罗斯方块
- 快速排序
- jQuery对象与DOM对象之间的转换
- jQuery获取Select option 选择的Text和Value
- 百度MP3音乐API接口及应用