- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
id1321的基础强化报告
学 号:
课 程 设 计
(基础强化训练)
题 目 棋盘问题 学 院 计算机科学与技术学院 专 业 软件工程 班 级 姓 名 ....... 指导教师 鄢红国
2013 年 7 月 11 日
课程设计任务书
学生姓名: ... 专业班级: 软件工程ZY1102
指导教师: ... 工作单位: 计算机学院
题 目: 棋盘问题
初始条件:
输入:
输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n = 8 , k = n 当为-1 -1时表示输入结束。 随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, 表示空白区域(数据保证不出现多余的空白行或者空白列)。
对于每一组数据,给出一行输出,输出摆放的方案数目C (数据保证C2^31)。2013-7-8到2013-7-12
消化资料、系统调查、形式描述 1天
系统分析、总体设计、实施计划 3天
撰写课程设计报告书 1天
指导教师签名: 2013年 7 月 8日
系主任(或责任教师)签名: 2013年 7 月 8日
目录
1 注册资料 4
2 选题描述 4
3 算法分析 5
4 程序流程图 6
5 程序源码 7
6 试算截屏图 9
7 分析与总结 10
8 参考文献 10
棋盘问题
1 注册资料
用户名:139....
密码:0739......
选题题号:1321
2 选题描述
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n = 8 , k = n 当为-1 -1时表示输入结束。 随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, 表示空白区域(数据保证不出现多余的空白行或者空白列)。2 1
#.
.#
4 4
...#
..#.
.#..
#...
-1 -1
样例输出:
2
1
3 算法分析
本题中,要在自己给出的棋盘上放棋子,且摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列 void find(int row,int l) //row为棋盘行数,从0开始计数,l为棋子数
{
if(l==0) //当棋子数为0时,方案ans加1
{ ans++; return ; }
if(rown) //行数大于棋盘行数时,不再遍历,返回上一级
return ;
for(int i=0;in;i++) //寻找可以放棋子的点
if(map[row][i]==#flag[i]==0) //满足这两个条件则找到一个合适的点
{
flag[i]=1; //第i列的点不能再放棋子
find(row+1,l-1); //到该点的下一行去找可以放棋子的点
flag[i]=0; //当下一行找完返回上一级时状态置0
}
find(row+1,l); //当上一行没找到时继续下一行寻找
}
4 程序流程图
y
n
n
y
y
递归
递归
图1 find()函数的流程图
图2 程序主流程图
5 程序源码
#includeiostream
using namespace std;
char map[10][10]; //存储棋盘的形状
int flag[10]; //用来标记该列是否能放棋子
int n,k;
int ans; //解决方案的数目
void find(int row,int l) //row为棋盘行数,从0开始计数,l为棋子数
{
您可能关注的文档
最近下载
- Blender软件二次开发:Blender材质与纹理二次开发.pdf VIP
- Blender软件二次开发:Blender二次开发综合案例分析.pdf VIP
- 国标图集05J909《工程做法》—标准图集.pdf
- Blender软件二次开发:Blender游戏引擎与交互式内容开发.pdf VIP
- 孔子诞辰日致辞稿(共7篇) .doc
- 第一单元第四课《上学路上》课件 湘美版(2024)一年级上册.pptx
- 浙教版信息科技五上 第4课 算法中的数据 课件.pptx
- 经济全球化对国家经济安全的影响研究.pptx
- 聊城大学音乐学院中国音乐史课件 西周春秋战国音乐.ppt
- Blender软件二次开发:BlenderPython脚本优化与调试.pdf VIP
文档评论(0)