求网格中的黑点分布


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...

面试题 相关文章推荐
Java提供了哪些企业应用编程接口
Feb 13 面试题
JMS中Topic和Queue有什么区别
May 15 面试题
上海方立数码笔试题
Oct 18 面试题
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
Jun 02 面试题
上海奥佳笔试题面试题
Nov 16 面试题
数据库笔试题
May 09 面试题
如何查询Oracle数据库中已经创建的索引
Oct 11 面试题
杭州信雅达系统.NET工程师面试试题
Feb 08 面试题
标记环网Toke Ring IEEE802.5
May 26 面试题
什么是属性访问器
Oct 26 面试题
Linux的主要特性
Oct 06 面试题
EJB的几种类型
Aug 15 面试题
用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维护文件系统
2006/10/09 PHP
有关PHP性能优化的介绍
2013/06/20 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
初识Node.js
2014/09/03 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
Python入门篇之函数
2014/10/20 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python处理二进制数据的方法
2015/06/03 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
简单了解python数组的基本操作
2019/11/26 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
结婚典礼证婚词
2014/01/11 职场文书
工作交流会欢迎词
2014/01/12 职场文书
《小池塘》教学反思
2014/02/28 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
检举信的写法
2019/04/10 职场文书
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫