为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 棋盘覆盖问题的分治法

棋盘覆盖问题的分治法

2011-04-07 2页 doc 22KB 31阅读

用户头像

is_359458

暂无简介

举报
棋盘覆盖问题的分治法#include #define N 4 int tile=0;    /*L型骨牌的编号*/ int board[N][N]; void ChessBoard(int k,int tr,int tc,int dr,int dc) {     int t,s;     if(k==1) return;     t=tile++;     s=k/2; /* Left-up 覆盖左上角子棋盘*/     if(dr=tc+s)    /*特殊方格在此棋盘中*/ ChessBoard(s,tr,tc+s,dr,dc);     e...
棋盘覆盖问题的分治法
#include #define N 4 int tile=0;    /*L型骨牌的编号*/ int board[N][N]; void ChessBoard(int k,int tr,int tc,int dr,int dc) {     int t,s;     if(k==1) return;     t=tile++;     s=k/2; /* Left-up 覆盖左上角子棋盘*/     if(dr=tc+s)    /*特殊方格在此棋盘中*/ ChessBoard(s,tr,tc+s,dr,dc);     else    /*特殊方格不在此棋盘中*/     {    /*Left-down 用L型骨牌覆盖左下角*/ board[tr+s-1][tc+s]=t;    /*覆盖其余方格*/ ChessBoard(s,tr,tc+s,tr+s-1,tc+s);     } /* Left-down 覆盖左下角子棋盘*/     if(dr>=tr+s&&dc=tr+s&&dc>=tc+s)    /*特殊方格在此棋盘中*/        ChessBoard(s,tr+s,tc+s,dr,dc);     else    /*特殊方格不在此棋盘中*/     {    /*Left-up 用L型骨牌覆盖左上角*/        board[tr+s][tc+s]=t;    /*覆盖其余方格*/        ChessBoard(s,tr+s,tc+s,tr+s,tc+s);     } } void main() {     int k,dr,dc,tr=0,tc=0,i,j;     k=N;     printf("请输入特殊方格所在的行号(从0开始)\n");     scanf("%d",&dr);     printf("请输入特殊方格所在的列号(从0开始)\n");     scanf("%d",&dc);     ChessBoard(k,tr,tc,dr,dc);     for(i=0;i
/
本文档为【棋盘覆盖问题的分治法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索