分治算法

原创 2018年04月15日 10:30:26


#include <stdio.h>
#define MAXN 64
int a[MAXN+1][MAXN+1]={0};
void gamecal(int k,int n){//处理编号k开始的n个选手的日程 
	int i,j;
	if(n==2){
		a[k][1]=k;//参赛选手编号 
		a[k][2]=k+1;//对阵选手编号 
		a[k+1][1]=k+1;// 参赛选手编号 
		a[k+1][2]=k;//对阵选手编号 
	}else{
		gamecal(k,n/2);
		gamecal(k+n/2,n/2);
		for(i=k;i<k+n/2;i++){//填充右上角 
			for(j=n/2+1;j<=n;j++){
				a[i][j]=a[i+n/2][j-n/2];
			}
		}
		for(i=k+n/2;i<k+n;i++){//填充左下角 
			for(j=n/2+1;j<=n;j++){
				a[i][j]=a[i-n/2][j-n/2];
			}
		}
	}
}
int main(void){
	int m,i,j;
	printf("请输入参赛选手人数: ");
	scanf("%d",&m);
	j=1;
	for(i=2;i<8;i++){
		j*=2;
		if(j==m)	break;
	}
	if(i>=8)
	{
		printf("参赛选手人数必须为2的整数次幂,且不超过64人 \n");
		return 0;
	}
	gamecal(1,m);
	printf("\n编号 ");
	for(i=2;i<=m;i++){
		printf("%2d天 ",i-1);
	}
	printf("\n");
	for(i=1;i<=m;i++){
		for(j=1;j<=m;j++)
			printf("%4d ",a[i][j]);
		printf("\n");
	}
	return 0;
}

< < 深度探索C++模型> > 提问(第三章)(上)

 第三章:Data语意学1.  一个class的object的大小一般受到那三个因素的影响?(P84-P85)2.  一个空的class的大小是多少?为什么?(P84)3.  一个empty virt...
  • codingcoding
  • codingcoding
  • 2002-10-28 09:34:00
  • 452

分治算法工 

  • 2007年10月18日 23:51
  • 13KB
  • 下载

acm分治算法acm分治算法acm分治算法acm分治算法

  • 2011年03月17日 21:15
  • 186KB
  • 下载

赛程问题分治算法.pdf

  • 2011年01月19日 18:10
  • 91KB
  • 下载

【算法】2 由股票收益问题再看分治算法和递归式

回顾分治算法分治算法的英文名叫做“divide and conquer”,它的意思是将一块领土分解为若干块小部分,然后一块块的占领征服,让它们彼此异化。这就是英国人的军事策略,但我们今天要看的是算法。...
  • NoMasp
  • NoMasp
  • 2015-05-27 18:48:43
  • 7090

分治算法基本思想和典型例题

分治算法基本思想和典型例题   1 算法思想 分而治之方法与软件设计的模块化方法非常相似。为了解决一个大的问题,可以: 1) 把它分成两个或多个更小的问题; 2) 分别解决每个小问题...
  • u011520601
  • u011520601
  • 2014-05-03 09:30:16
  • 446

【C】分治算法

分治算法虽然听起来有可能有点陌生,但是实质上绝对是见过。比如在有序顺序表中的二分查找就是分治法的其中一个实例。它的时间复杂度经常性能把一个问题从O(n)降为O(nlogn),虽然它的代码往往涉及到递归...
  • yongh701
  • yongh701
  • 2015-10-20 20:27:50
  • 1118

TSP分治算法C++

  • 2009年12月24日 00:52
  • 682B
  • 下载

分治算法例子集锦

分治算法例子集锦
  • zwhlxl
  • zwhlxl
  • 2015-03-07 13:25:38
  • 11073

算法—趣味理解分治算法

用来治病的分治算法,解释粗浅爆炸,简单两个示例带你理解算法本质
  • Elliot_2b
  • Elliot_2b
  • 2017-03-20 14:14:36
  • 271
收藏助手
不良信息举报
您举报文章:分治算法
举报原因:
原因补充:

(最多只允许输入30个字)