求网格中的黑点分布


Posted in 面试题 onNovember 06, 2013
求网格中的黑点分布。现有6*7的网格,在某些格子中有黑点,已知各行与各列中有黑点的点数之和,请在这张网格中画出黑点的位置。(这是一网友提出的题目,说是他笔试时遇到算法题)
#define ROWS 6
#define COLS 7
int iPointsR[ROWS] = {2, 0, 4, 3, 4, 0}; // 各行黑点数和的情况
int iPointsC[COLS] = {4, 1, 2, 2, 1, 2, 1}; // 各列黑点数和的情况
int iCount, iFound;
int iSumR[ROWS], iSumC[COLS], Grid[ROWS][COLS];

int Set(int iRowNo) {
if(iRowNo == ROWS) {
for(int iColNo=0; iColNo if(iColNo == COLS-1) {
printf(“\nNo.%d:\n”, ++iCount);
for(int i=0; i for(int j=0; j printf(“%d%c”, Grid[i][j], (j+1) % COLS ? ‘ ‘ : ‘\n’);
iFound = 1; // iFound = 1,有解
}
} else {
for(int iColNo=0; iColNo if(iPointsR[iRowNo] == 0) {
Set(iRowNo + 1);
} else if(Grid[iRowNo][iColNo]==0) {
Grid[iRowNo][iColNo] = 1;
iSumR[iRowNo]++; iSumC[iColNo]++; if(iSumR[iRowNo] Set(iRowNo);
else if(iSumR[iRowNo]==iPointsR[iRowNo] && iRowNo Set(iRowNo + 1);
Grid[iRowNo][iColNo] = 0;
iSumR[iRowNo]–;
iSumC[iColNo]–;
}
}
}
return iFound; // 用于判断是否有解
}
int main(int argc, char* argv[]) {
if(!Set(0))
printf(“Failure!”);
}

Tags in this post...

面试题 相关文章推荐
如何将整数int转换成字串String
Mar 21 面试题
介绍一下Java中的Class类
Apr 10 面试题
将一个数的从第5位开始的7个数取出,其余位置0
May 26 面试题
一些.net面试题
Oct 06 面试题
南京软件公司的.net程序员笔试题
Aug 31 面试题
网络通讯中,端口有什么含义,端口的取值范围
Nov 23 面试题
标记环网Toke Ring IEEE802.5
May 26 面试题
作为网站管理者应当如何防范XSS
Aug 16 面试题
如何手工释放资源
Dec 15 面试题
shell程序中如何注释
Feb 17 面试题
JAVA程序员面试题
Oct 03 面试题
J2EE面试题
Mar 14 面试题
用C语言实现文件读写操作
Oct 27 #面试题
网络、C以及其他硬件方面的面试题
Aug 23 #面试题
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
Jan 18 #面试题
编写用C语言实现的求n阶阶乘问题的递归算法
Oct 21 #面试题
C语言笔试题回忆
Apr 02 #面试题
寻找迷宫的一条出路,o通路;X:障碍
Jul 10 #面试题
外企C语言笔试题
Nov 10 #面试题
You might like
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php+ajax实现无刷新分页的方法
2014/11/04 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
[原创]图片分页查看
2006/08/28 Javascript
prototype Element学习笔记(篇一)
2008/10/26 Javascript
js一组验证函数
2008/12/20 Javascript
js word表格动态添加代码
2010/06/07 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
Python数据操作方法封装类实例
2017/06/23 Python
python基本语法练习实例
2017/09/19 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
python为什么要安装到c盘
2020/07/20 Python
详解python变量与数据类型
2020/08/25 Python
python 模块导入问题汇总
2021/02/01 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
人力资源部培训专员岗位职责
2014/01/02 职场文书
三年大学自我鉴定
2014/01/16 职场文书
国际贸易求职信
2014/07/05 职场文书
学校运动会感想
2015/08/10 职场文书
《领导干部从政道德启示录》学习心得体会
2016/01/20 职场文书
人民调解协议书
2016/03/21 职场文书
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js