算法相关技术专家。。。我晕,只是个码农而已。这个简介谁给我写的啊。
FIRST ARTICLE.
太久没有做 zoj,对 oj 来说,由于它高度的”黑盒性“(输入数据和答案完全保密),保护自信心是非常重要的。所以我先选择一道非常简单的题目刷起。本题目是一个相当简单的题目,难度系数和求 A+B 相当。
2008 年在一个 PS 讨论群里,有网友不解 Photoshop 的高斯模糊中的半径是什么含义,因此当时我写了这篇文章: 对Photoshop高斯模糊滤镜的算法总结; 在那篇文章中,主要讲解了高斯模糊中的半径的含义,是二维正态分布的方差的平方根,并且给出了算法的理论描述。
在我调试和研究 netscape 系浏览器插件开发时,注意到了这个问题。即,在对象布局已知(即对象之间具有继承关系)时,不同类型对象的指针进行转换(不管是隐式的从下向上转换,还是强制的从上到下转换)时,编译器会根据对象布局对相应的指针的值进行调整。
【前言】树的遍历,根据访问自身和其子节点之间的顺序关系,分为前序,后序遍历。对于二叉树,每个节点至多有两个子节点(特别的称为左,右子节点),又有中序遍历。由于树自身具有的递归性,这些遍历函数使用递归函数很容易实现,代码也非常简洁。
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4278 题意: 给出一些文本片段,把文本中的 Tab 字符根据配置,替换成一定数量的空格。
注:题目来自于以下链接地址:http://www.pediy.com/kssd/ 目录:第13篇 论坛活动 \ 金山杯2007逆向分析挑战赛 \ 第一阶段 \ 第二题 \ 题目 \ [第一阶段 第二题] 题目描述: 己知是一个 PE 格式 EXE 文件,其三个(section)区块的数据文件依次如下:(详见附件) _text,_rdata,_data 1. 将 _text, _rdata, _data 合并成一个 EXE 文件,重建一个 PE 头,一些关键参数,如 EntryPoint,ImportTable 的 RVA,请自己分析文件获得。
题目来自于如下网址: http://www.pediy.com/kssd/ 第13篇 论坛活动 \ 金山杯2007逆向分析挑战赛 \ 第一阶段 \ 第一题 \ 题目 \ [第一阶段 第一题]; 现将此题目概述粘贴如下: CrackMe.
在春节前,我曾经参与在《神奇的C语言》一文中的例子(5)的讨论,但限于评论内容的有限,现在本文再次对这个问题单独讨论。(此问题原貌,详见《神奇的C语言》,这里我将原文中的代码稍做轻微改动,并重新给出如下) 原问题给出如下代码: #include void func1(char a[]) { //这里的参数 a 为指向数组的指针,因此 &a 和 a 的意义不同(前者为指针变量的地址,后者为指针变量的值) //&a 表示指针变量的地址。
【前言】最近在博客园首页上看到有“大家来找茬”这个游戏(此游戏为找出两个相近图片的不同点)外挂的相关帖子,所以这里我也翻看了我之前(2009年5月)的写的一个简单的辅助程序(采用 VC6 开发的)。
memset 是 msvcrt 中的一个函数,其作用和用途是显而易见的,通常是对一段内存进行填充,就其作用本身不具有任何歧义性。但就有人一定要纠结对数组的初始化一定要写成如下形式: int a[...] = { 0 }; int a[100] = { 1, 2 }; 而认为如下使用 memset 的写法不明就里的被其排斥和拒绝: memset(a, 0, sizeof(a)); 这种看法首先是毫无道理的,在代码风格,可读性,可维护性上根本不构成一个命题,且 memset 在开发中的使用是非常常见的。
题目链接: ZOJ 1958. Friends 题目简介: (1)题目中的集合由 A-Z 的大写字母组成,例如 "{ABC}" 的字符串表示 A,B,C 组成的集合。 (2)用运算符三种集合运算,'+' 表示两个集合的并集,'*' 表示两个集合的交集, '-' 表示从第一个集合中排除第二个集合包含的元素。
问题描述:对树的遍历有,前序遍历,后序遍历。(注意,这里前后序的定义是指节点本身和它的子结点之间的访问顺序关系,而不是某个节点的子结点之间的访问顺序关系,即这里的序指的是父子关系,而非子间关系)。
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=122 题目:给出两个时刻 t1 (h1:m1), t2 (h2:m2); 其中 h1,h2 表示小时属于 [1, 12] , m1, m2表示分钟属于 [0, 59],t1 到 t2 的间隔跨度小于 12 小时。
——用于辅助程序员在非技术专业性的其他普通博客/社区,插入一段代码。使其感觉如同在技术博客上插入代码一样。 此程序的主要功能是根据编程语言的特点,把代码转化成 HTML 文本,使其显示效果如同在博客园中插入的代码或者IDE中相似。
多态是面向对象的特性,通俗说,即用父类指针调用某成员函数时,针对不同对象调用的是不同的函数。从语言层面上看的统一形式的调用(相同名称的虚函数),体现出个性化的行为。 C++ 对象的多态通过虚函数表来实现的,虚函数表属于 C++ 对象模型层面的东西。
【前言】写作本文,源于最近回复的 《汇编中函数返回结构体的方法》 一文。在网络上也已经有一些相关文章和相关问题,有的文章已经给出了一部分结果,但总体而言还缺少比较重要的结论。本文以分析 VC6 编译器,32 位架构为主来重复性分析这个话题。
本文中提到的题目来自于这篇文章:《2012微软暑期实习笔试题及答案》 中的第五题。这道题目是这样的: 5. What is output if you compile and execute the following code?void main() { int ...
地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2240 题意:对一个给定字符串,按照下面的方式编码,输出结果。
【声明】本文无技术含量!在博客园上回复某个帖子,招来他的非议,我不想去细究这个人的治学态度,不想去问去管他到底有没有修改过自己的文章,对我来说没必要。我只能说不负责任,态度自大的,不严谨的人是令我失望的。
地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3603 题意:背景是手机游戏,给出一些字母猜单词。现在假设你猜不出,然后不停重新开始游戏,游戏就每次给你12个大写字母,由于正确字母以外的候选字母是随机给出的,所以两次游戏中发生改变的字母肯定不是答案,是可以去掉的。
地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4322 题意:寻找中位数。对于一个(浮点数)数组,如果含有奇数个元素,“中位数”就是排序后位于数组中间那个。
地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1602 题意:一排牌/卡片(一串数字),每次从这些牌中拿走一张牌(首尾两张不能拿),把前一张,这一张,后一张牌上的数字相乘的结果累加,直到只剩下两张牌为止。
地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1608 题意:给你两个圆形(半径分别为 r1 、r2 )和一个矩形(矩形边长为 a 和 b),判断两个圆是否能放于矩形内。
ZOJ 1601:Integer Approximation 链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1601 题意:对于一个给定的浮点数A(0.1
【原创性声明】:本文无实质性创新性内容,性质属于技术总结,内容是基于已有知识或定义的代码实现。文中的代码是我根据其他代码或者网络上的资料,写出的自己的版本。因为网络上的代码 C/C++ 版本的较少,或者本身不一定是最合适最容易使用的。
ZOJ 1871: Steps 地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=871 题意:假设在一条直线上标记着数字刻度。
这是一个主要用于在桌面上显示笔记本电池剩余电量的 windows 程序,同时也具有自动关机功能(自动关机功能我自己尚未实际测试过)。因此第一个功能,监视电池的剩余电量的百分比,这个主要对使用充电电池的笔记本电脑有用,台式机不能获取到电池数据(显示NA),所以对台式机没什么意义。
(一)ZOJ 1096:Subway 链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1096 题意:给出下列参数(所有参数均为小于等于1000的正整数),求地铁列车从一个站点到下一个站点之间的最短时间(精确到 0.1 秒)。
【创新性声明】本文没有本质上的创新性内容。属于一些实验和总结,有少量主观推测成分(有待进一步证实)。写这一类文章是非常危险的,因为有很多东西可能是我们不了解和比较模糊的,这很可能会出现错误的主观臆测,不仅仅是令明真相者贻笑大方的问题,更可怕的在于传播“错误”,这是我最为诚惶诚恐的一点。
(1)ZOJ 1045. HangOver (0.1) http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1045 在桌子边码扑克牌,给出表示扑克牌延伸出桌子的距离的浮点数,问需要多少张牌。
前几天想起了这个想法,然后最近两天开发了这个工具,就是用于 QQGame 中的连连看的辅助工具。本来是想把全部代码都公开的,但是我在调试程序的时候注意到腾讯在qqgame中宣传卖那些游戏道具。所以我的想法就改变了下,不想影响腾讯卖这些道具来赚钱,所以我把原来完整功能版的版本又加上了一些限制。
ZOJ 3505:Yet Another Set of Numbers 地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3505 题意:有一个数字集合,集合中的数遵循以下规则: ( 1 ).
对以下简单题,我同时给出一个我主观认为的难度值(0.1~1.0之间)。 (1). ZOJ 1072: Microprocessor Simulation. (Difficulty: 0.2) http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1072 微处理器模拟,它含有两个累加器,代码和内存统一寻址,即冯诺依曼结构,比较简单。
ZOJ 1010. Area. 题目地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1010 基本题意:此题目给出 n 个点的坐标 (xi,yi ) ,要求求出这些点按顺序围成的多边形的面积。
【关键字】VC++,修改EXE文件的图标 在很多年前很著名的熊猫烧香病毒,就有这样一个行为,是搜索硬盘上的可执行文件并感染它们,其典型外观症状就是程序的图标变成了熊猫烧香。本文讲解的是修改EXE文件(可执行文件)的图标,可以看做是我写PE文件的Directoried相关文章的一个后续应用,本文性质属于技术可行性研究。
关键字:自定义控件(Custom Control),C++,WIN32 SDK 本文发布的是我在工作中开发的自定义控件。第一个是多选控件,该控件主要启发来自于 ExplorerBar,即资源管理器左侧的 DirectDraw 部分,例如打开文件夹,位于左侧的那个可以扩展收缩的多面板组成的“文件夹任务”等。
我用的多普达S1手机,偶然发生手机的来电铃声忽然非常小的情况,在外面基本听不到电话。每次为了调整回来,都要baidu很久才能找到应该如何修改。为此,我就自己写了这个小程序,用于帮助我手工修改注册表的过程。
【原创性声明】基本上是我平时编码时,通过MSDN,网络搜索等记录的一些技术性笔记。这些内容本质上没有我的原创性和创新性内容,但是因为很杂所以本身并不容易都能一一记住。在这里列出这些条目,已C++为主,没有什么中心思想,仅为备忘和查询使用。
【文章归类】 C++,Windows 应用程序开发。 这是一篇比较简单的文章,主要讲解的是用 DirectUI 方式实现的对话框上的按钮。例如,QQ界面上的按钮。我在前一篇文章中讲解的 PS 油画滤镜的参数对话框中使用这种方式实现了放大缩小按钮。
[更新预告] 我正在开发 ICO 插件的 3.0 版本。增加了新的比原来更好的缩放算法。同时将改进一些 UI。预计 2017 年 6 ~ 7 月可以发布。2017 年 6 月 11 日。 【声明】此插件下载链接已经修复,免费提供。
这是我为 Photoshop 编写的一个文件格式插件,IcoFormat,用于读写 Windows 图标文件(扩展名为ICO, CUR)。图标文件格式的PS插件在很多年前有一个老外曾经写过,不过我现在提供的插件则功能上更好,有足够的理由替换掉老外提供的插件。
本文介绍的内容,是用八叉树法降级一个真彩色图像(BPP=16以上)。这也是某公司在今年校园招聘中的笔试中的最后一道题目。我参考了 Jeff Prosise 所写的这篇文章(见参考资料),然后修改了他提供的范例的源码,使能够更好的演示该算法,同时我也添加了绘制八叉树的代码,可以直观的看到八叉树的形态。
今将PDA矢量图控件开源。该控件是一个矢量图展示性控件,这是根据需求而定的,因此我没有加上一些实时的编辑操作的支持。该控件是在2007年3月份到4月之间完成的。其效果如图所示:(在PPC2002模拟器中) 由于PPC的屏幕太窄,所以右侧的工具栏没有办法展示全部按钮,其他按钮放在了菜单的“当前工具”中。
花了一点精力,做了如下 QQ2010 版本的登录过程演示工具,主要是用于演示如何截取用户登录时的输入。此工具的原理比较基本,主要是利用全局钩子截获用户的输入。主要是演示作用,因此我又做了一个很直观的界面,可以看到截获输入的过程。
本文的起源,来自于在学校BBS上的C++版上,有一个人问了一个问题,然后我给他已解答。这个帖子的原文是这样的: 代码 发信人: lisanbai (李三白), 板面: C++标 题: 这个怎么一直不停输出啊,菜鸟求教发信站: 飘渺水云间 (Mon Sep 20 16:52:3...
再顺便多写一篇PE文件的文章吧,这一篇文章介绍PE文件的导出表。导出表相对来说应该算最简单的,它的关键结构只有一个。本质上导出表的dir只是指示以下信息,dll的名称地址(ANSI字符串),有多少个导出函数,对导出函数有三个数组,分别是序号数组,函数名称(ANSI字符串)地址数组,函数入口地址(RVA)数组。
在上一篇文章里,已经讲解了加载PE文件的导入表。本篇简要介绍PE文件的资源表的结构和定位方式。 所谓资源表(resource table),就是通常在IDE的资源视图中所看到的那个Tree视图,因此资源表在PE文件中同样是这样的一种类似资源管理器一样的树状逻辑结构。
扫描二维码赞助 支付宝赞助 微信赞助 支付宝帐户: 如果您对已发布作品有任何意见需要反馈,请发送邮件至: ,或者在我的博客上留言。
在上一篇文章里,我使用一个 TreeList 控件,展示了 PE 文件的内容。在那里可充分了解PE的文件头的信息,但是对 section(备注:常见译文为节,段,块)的一些信息我们还没有涉及。比如全局变量等数据,代码,资源,导入表等信息都位于相应的 section 中,有些 section 通常具有特定的名字,例如资源通常位于 .rsrc,代码通常位于 .text,导入表通常位于 .idata 段,等等。