问题分析 在上篇文章中,给出了使用C语言中经典位运算符来实现位向量的方法.而本文,将介绍使用C++中的bitset容器来实现位向量的方法. 实现 // 请包含bitset头文件 #include <bitset> // 定义一个有100个成员的bitset容器( 位向量 ) bitset<> b; // 将位向量第i位置为1 b.set(i); // 将位向量第i位置为0 b.reset(i); // 查看位向量第i位 b.test(i); // 在屏幕上打印位向量 cout &l…
问题分析 依题意,所需程序不用过多考虑效率且暗示使用库,自然想到用高级语言实现(个人选择C++).可用顺序容器暂存数据,用标准算法解决排序问题. 代码实现 #include <iostream> #include <algorithm> #include <fstream> #include <vector> #include <string> using namespace std; int main() { /* * 获取数据文件名并打开文件…
这道题是利用OpenCV例子程序里自带的人脸检测程序,做点图像的复制操作以及alpha融合. 说明:人脸检测的程序我参照了网上现有的例子程序,没有用我用的OpenCV版本(2.4.5)的facedetect.c,人脸检测部分是一个月前写的程序,这次做了点改动,以前的部分注释了起来. 代码: #include <opencv/cv.h> #include <opencv/highgui.h> #include <opencv_libs.h> #include <st…
#include <highgui.h> #include <cv.h> #include "opencv_libs.h" /* *<学习OpenCV>第四章第三题b * 完成时间:1:36 3/31 星期日 2013 */ /* 矩形框 */ CvRect rect; bool draw = false; // 标记是否在画 IplImage* img; IplImage * temp; IplImage * original; bool draw…
#include <highgui.h> #include <cv.h> #include "opencv_libs.h" #pragma comment (lib,"opencv_calib3d231d.lib") #pragma comment (lib,"opencv_contrib231d.lib") #pragma comment (lib,"opencv_core231d.lib") #pr…
题外话:一直是打算把这本书的全部课后编程题写完的,中间断了几个月,一直忙于其他事.现在开始补上. 这道题我不清楚我理解的题意是不是正确的,这道题可以练习用OpenCV实现透视变换(可以用于矫正在3维环境下的图像失真),b&c部分则是实现图像放大缩小插值,旋转图像.所有的功能都和键盘事件处理联系起来,纯OpenCV实现,和OS无关.不过,在处理SHIFT键时,我取得是其在键盘上对应字符的ASCII码,好像OpenCV对键盘事件的支持不如对鼠标事件的支持.所以SHIFT键+小键盘上的数字键是不行的.…
B题是这样子的: 将一个n元一维向量向左旋转(即循环移位)i个位置.例如,当n=8且i=3时,向量abcdefgh旋转为defghabc.简单的代码使用一个n元的中间向量在n步内完成该工作.你能否仅使用数十个额外字节的存储空间,在正比于n的时间内完成向量的旋转? 以下题目的解答部分参考自一博文及该书参考答案. 分析: “abcdefgh”严格来说并不是一个字符串,因为'\0'是不会移动的.为了叙述方便,可以把它认为是字符串,只是不对'\0'进行操作罢了. 如果不考虑时间要求为O(n),那么可以每…
A题是这样子的: 给定一个最多包含40亿个随机排列的32位整数的顺序文件,找出一个不在文件中的32位整数(在文件中至少缺失一个这样的数据——为什么?).在具有足够内存的情况下,如何解决该问题?如果有几个外部的“临时”文件可用,但是仅有几个字节的内存,又该如何解决该问题? 因为2^32>40亿,所以,在文件中至少会缺少一个这样的数据.在有足够内存的情况下,我们可以使用上一章提到的位图数据结构来解决该问题.但利用位图数据结构来解决该问题需要利用到的内存为:40亿/8/1024/1024=476MB,…
  (选择一项) A: B: C: D: 正确答案是 B ,B/S架构并不是C/S架构的替代品,有些程序例如大型的网络游戏一般使用的是C/S架构. (选择多项) A: B: C: D: 正确答案是 A,C,D ,存放配置文件的地方是conf,所以此题目选择acd (选择一项) A: B: C: D: 正确答案是 D ,d答案错误,因为通过import导包的时候,不同的类文件之间用逗号隔开,应该为:<%@page import="java.util.*,java.text.*" %…
问题分析 输入:一个包含了4 300 000 000个32位整数的文件( 其中可能有重复出现的数字 ) 输出:一个在这个文件中重复出现过了的数字 约束:无 解答思路 第一章中,我们学习了如何用位向量进行一个空间代价很小的排序.在第一章的一些习题中,位向量的每一位代表的数就是该位的位序:位为1时表示存在这个数,0则表示不存在.本题也可以建立一个类似的位向量.但,本题的位向量又有所不同:因为要体现出重复的数据,因此一个数至少要两个位才能表示.故在这个新的位向量中,a ( 位表示的数 )和b ( 位序…