zoukankan      html  css  js  c++  java
  • 算法之分治法

    #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()

    {

    int m, i, j;

    printf("输入参赛选手人数:");

    scanf("%d", &m);

    j = 2;

    for (i = 2; i<8; i++)

    {

    j = j * 2;

    if (j == m) break;

    }

    if (i >= 8)

    {

    printf("参赛选手人数必须为2的整数次幂,且不超过64! ");

    getchar();

    return 0;

    }

    gamecal(1, m);

    printf(" 编号 ");

    for (i = 2; i <= m; i++)

    printf("%2d天 ", i - 1);

    printf(" ");

    for (i = 1; i <= m; i++)

    {

    for (j = 1; j <= m; j++)

    printf("%4d ", a[i][j]);

    printf(" ");

    }

    getchar();

    return 0;

    }

    以大多数人努力程度之低,根本轮不到去拼天赋~
  • 相关阅读:
    文档视图
    引入缓冲池技术
    数据库访问与查询
    OnInitialUpdate函数
    显示股票视图的全局函数
    切换视图的核心代码
    GuiEdit的使用
    操作方法
    SQL 使用 解析
    调用API 实现 窗体 拖动
  • 原文地址:https://www.cnblogs.com/gcter/p/5744083.html
Copyright © 2011-2022 走看看