求网格中的黑点分布


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

面试题 相关文章推荐
不开辟用于交换数据的临时空间,如何完成字符串的逆序
Dec 02 面试题
编程实现当输入某产品代码则打印出该产品记录的功能
May 03 面试题
c++工程师面试问题
Aug 04 面试题
SQL Server 2000数据库的文件有哪些,分别进行描述
Mar 30 面试题
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
Apr 28 面试题
String s = new String(“xyz”);创建了几个String Object?
Aug 05 面试题
几道Java和数据库的面试题
May 30 面试题
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
Nov 18 面试题
MVC的各个部分都有那些技术来实现?如何实现?
Apr 21 面试题
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
Jul 30 面试题
Shell脚本如何向终端输出信息
Apr 25 面试题
Ruby如何创建一个线程
Mar 10 面试题
用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 htmlspecialchars加强版
2010/02/16 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
php实现上传图片文件代码
2015/07/19 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
使用js修改客户端注册表的方法
2013/08/09 Javascript
js中函数调用的两种常用方法使用介绍
2014/07/17 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
js动态获取时间的方法分析
2019/08/02 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
python实现电子词典
2020/04/23 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
2017/10/13 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
Python面向对象之继承原理与用法案例分析
2019/12/31 Python
Python3 读取Word文件方式
2020/02/13 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
实习心得体会
2014/01/02 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
英文演讲稿开场白
2014/08/25 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
vue选项卡切换的实现案例
2022/04/11 Vue.js
Python简易开发之制作计算器
2022/04/28 Python