自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 Cocos2d-x中的CC_CALLBACK_X详解

Cocos2d-x 3.x版本用CC_CALLBACK_0,CC_CALLBACK_1,CC_CALLBACK_2和CC_CALLBACK_3的宏来定义回调方法类的。3.x版本的例子:child->runAction(Sequence::create( DelayTime::create(1.4f),

2015-09-24 19:39:51 2525

原创 一步一步写平衡二叉树(AVL树)

一步一步写平衡二叉树(AVL树)作者:C小加 更新时间:2012-8-20  平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删

2015-09-24 17:17:54 289

原创 一步一步写二叉查找树

一步一步写二叉查找树作者:C小加  更新时间:2012-8-9二叉查找树(BST)是二叉树的一个重要的应用,它在二叉树的基础上加上了这样的一个性质:对于树中的每一个节点来说,如果有左儿子的话,它的左儿子的值一定小于它本身的值,如果有右儿子的话,它的右儿子的值一定大于它本身的值。二叉查找树的操作一般有插入、删除和查找,这几个操作的平均时间复杂度都为O(logn),插入和查找操

2015-09-24 17:17:10 395

原创 基本数据结构:二叉树(binary tree)

基本数据结构:二叉树(binary tree)作者:C小加  更新时间:2012-8-6二叉树首先是一棵树,每个节点都不能有多于两个的儿子,也就是树的度不能超过2。二叉树的两个儿子分别称为“左儿子”和“右儿子”,次序不能颠倒。如图1是一个简单的二叉树。 二叉树的种类一种是满二叉树,除了最后一层的叶子节点外,每一层的节点都必须有两个儿子节点。如图2是一

2015-09-24 17:16:14 482

原创 基本数据结构:树(tree)

基本数据结构:树(tree)作者:C小加 更新时间:2012-8-3无论是链表,栈还是队列,它们都是线性结构的,每个节点的左边最多一个节点,右边也最多一个节点,对于大量的输入数据,线性表的访问时间太慢,不宜使用。这里我要说一种非线性的数据结构,其大部分操作的运行时间平均为O(logn)。我们涉及到的这种数据结构叫做树。在计算机科学中,树是非常有用的抽象概念。我们形象的去描述

2015-09-24 17:15:12 553

原创 基本数据结构:栈(stack)

基本数据结构:栈(stack)作者:C小加 更新时间:2012-8-1栈(stack)是限制插入和删除只能在一个位置上进行的线性表,该位置在表的末端,叫做栈顶。添加元素只能在尾节点后添加,删除元素只能删除尾节点,查看节点也只能查看尾节点。添加、删除、查看依次为入栈(push)、出栈(pop)、栈顶节点(top)。形象的说,栈是一个先进后出(LIFO)表,先进去的节点要等到后边进去的

2015-09-22 18:04:00 287

原创 基本数据结构:链表(list)

基本数据结构:链表(list)作者:C小加 更新时间:2012-7-31  谈到链表之前,先说一下线性表。线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。  顺序存储结构就是两个相邻的元素在内存中也是相邻

2015-09-22 18:02:54 426

原创 C++ 11 学习3:显示虚函数重载(override)

5.显示虚函数重载在 C++ 里,在子类中容易意外的重载虚函数。举例来说:struct Base { virtual void some_func();}; struct Derived : Base { void some_func();};Derived::some_func 的真实意图为何? 程序员真的试图重载该虚函数,或这只是意外?

2015-09-20 21:22:16 575

原创 C++ 11 学习2:空指针(nullptr) 和 基于范围的for循环(Range-based for loops)

3.空指针(nullptr)早在 1972 年,C语言诞生的初期,常数0带有常数及空指针的双重身分。 C 使用 preprocessor macroNULL 表示空指针, 让 NULL 及 0 分别代表空指针及常数 0。 NULL 可被定义为 ((void*)0) 或是 0。C++ 并不采用 C 的规则,不允许将 void* 隐式转换为其他类型的指针。 为了使代码 char* c = NU

2015-09-20 21:22:12 495

原创 C++ 11 学习1:类型自动推导 auto和decltype

Cocos 3.x 用了大量的C++ 11 的东西,所以作为一个C++忠实粉丝,有必要对C++ 11进行一个系统的学习。使用C++11之前,一定要注意自己使用的编译器对C++11的支持情况,有些编译器并不是完全支持,比如我正在使用的vs2012。这里是msdn里面VS各版本对C++ 11 的支持 对 C++11 功能的支持(现代 C++) 1.autoauto这个关键字C++原先就

2015-09-20 21:22:07 1549

翻译 提交Sublime Text 插件到Package Control

最近写了一个lua智能提示的插件LuaSmartTips。这个插件一直都是自己一个人在用,昨天突然想把插件提交到Package Control,如果其他的人有这样的需求就可以直接安装。Package Control网站上已经给出了很详细的提交步骤,不过是英文版的,英语好的可以直接读Submitting a Package。下面主要介绍一下针对于代码托管在Github上面的插件提交。1.

2015-09-20 21:22:03 437

原创 写lua时需要注意的地方

条件语句判断时,只有false和nil会导致判断为假,其他的任何值都为真。 Lua 的字符串与编码无关; 它不关心字符串中具体内容。标准 Lua 使用 64 位整数和双精度(64 位)浮点数, 但你也可以把 Lua 编译成使用 32 位整数和单精度(32 位)浮点数。 以 32 位表示数字对小型机器以及嵌入式系统特别合适。table 是一个关联数组, 也就是说,这个数组不仅仅以数字做索

2015-09-20 21:21:58 2670

原创 重新认识JavaScript

JavaScrpit在我眼中一直是web前端脚本语言,而这段时间的一些工作,让我对JavaScript有了一个全新的认识。   公司准备启动的一个手游项目,服务器端准备使用网易的开源框架pomelo。pomelo是基于Node.js的高性能,分布式游戏服务器框架。它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发。 pomelo不但适用于游戏

2015-09-20 21:21:53 331

原创 ACE网络编程笔记(2):IPC SAP、ACE_SOCKET和TCP/IP通信实例

socket、TLI、STREAM管道和FIFO为访问局部和全局IPC机制提供广泛的接口。但是,有许多问题与这些不统一的接口有关联。比如类型安全的缺乏和多维度的复杂性会导致成问题的和易错的编程。ACE的IPC SAP类属提供了统一的层次类属,对那些麻烦而易错的接口进行封装。在保持高性能的同时,IPC SAP被设计用于改善通信软件的正确性、易学性、可移植性和可复用性。 IPC SAP类属

2015-09-20 21:21:49 1563

原创 ACE网络编程笔记(1):ACE自适配通信环境

介绍      ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)构架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++Wrapper Facade(包装外观)和构架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处

2015-09-20 21:21:44 560

原创 MFC文档序列化实现保存和加载

1、序列化定义MFC文档-视图结构中,序列化机制可以实现内存中对象储存和加载。序列化机制分为序列化和反序列化,序列化是把内存中的对象以二进制文件的形式存储在磁盘中。反序列化是把序列化后生成的文件恢复到内存。2、CArchive类CArchive没有基类。CArchive允许以一个永久二进制(通常为磁盘存储)的形式保存一个对象的复杂网络,它可以在对象被删除时,还能永久保存。可以从永久

2015-09-20 21:21:39 555

原创 Ural 1073 Square Country 解题报告

题意:A square problem Time Limit: 3 second Memory Limit: 1000KThere live square people in a square country. Everything in this country is square also. Thus, the Square Parliament has passed a law ab

2015-09-20 21:21:23 328

原创 避免使用宏

概述:        宏是C和C++语言的抽象设施中最生硬的工具,它是披着函数外衣的饥饿的狼,很难驯服,它会我行我素地游走于各处。要避免使用宏。讨论:        在C++中,几乎从不需要使用宏。        可以用const或者enum定义易于理解的常量,用inline避免函数调用的开销,用template指定函数系列和类型系列,用namespace避免名称冲突。  

2015-09-20 21:21:18 333

原创 KMP算法中关于next数组的探究

从《严书》上看到了KMP算法,看了一遍没懂,但觉得挺神奇的,就花费了几天时间深入的理解。算法的原理其实不难,难的就是那个巧妙的next数组,这个next数组很吸引我,我的大部分时间也都是花费在这个数组上面的。这个next数组是KMP里面一个很关键的地方,对于在数据结构书上看过一遍整个算法流程的人,能够把next数组搞明白,整个KMP算法的整体思想就差不多理解了。然后在一些细节上面深入思考一下,

2015-09-20 21:21:13 346

原创 一个实体应该只有一个紧凑的职责

实体:变量、类、函数、名称空间、模板和库。只给一个实体赋予一个定义良好的职责。随着实体变大,其职责范围自然也会扩大,但不应该发散。如果一个实体有几个不同的目的,则给使用带来的难度往往会激增,因为这种实体除了会增加理解难度、复杂性和各部分中的错误外,还会导致其他问题。这种实体不仅更大,而且更难以使用和维护。此外,这种实体经常会为自身的一些特定用途提供有问题的接口,因为各个功能领域之间的部

2015-09-20 21:21:09 285

原创 在高警告级别干净利落的进行编译

虽然警告不会影响你代码的运行,但请不要忽略它。把编译器当做你的朋友,如果它对你发出警告,这经常是说明你的代码中存在潜在的问题。常遇到的一些警告:1、第三方头文件。2、未使用的函数参数。3、定义了从未使用过的变量。4、变量使用前可能未经过初始化。5、遗漏了return语句。6、有符号数/无符号数不匹配。例外情况:有时候,编译器可能发生烦人的甚至虚假的警告,但是

2015-09-20 21:21:04 445

原创 《C++编程规范》--不要拘泥于小节

如果人们按照程序员编程的方式修建房屋,那么一只啄木鸟就能毁灭整个文明。                                                                                                   ---Gerald Weinberg 《C++编程规范》这本书是对多年的C++经验的总结,是编写高质量C++代码的准则。

2015-09-20 21:21:00 786 1

原创 Ural 1014 Product of Digits 解题报告

题意:是找到一个最小的正整数Q,使Q的各位数的乘积等于N。思路:从9到2取余。代码: #include iostream>#include algorithm>usingnamespace std;bool fun(int x,int*ops,int&num){ if(x==1) return1; for(int i=9;i>=2;i--) {

2015-09-20 21:20:55 300

原创 Ural 1025 Democracy in Danger 解题报告

题意:投票者被分成K个组,如果超过半数的组投赞成票,决议就可以通过。每组是投赞成票还是反对票也由每组内部投票决定,若这一组有超过半数的人投赞成票,那么这一组就投赞成票。思路:很水的题。。。代码:#include iostream>#include algorithm>usingnamespace std;int a[103];int main(){ int n;

2015-09-20 21:20:50 405

原创 Ural 1020 Rope 解题报告

题意:已知每个圆圆心的坐标和半径,求绳的长度。。思路:每个圆心围成的多边形的周长,加上圆的周长。代码:#include iostream>#include cmath>#include iomanip>usingnamespace std;constdouble PI=3.141592;typedef struct{ double x,y;}Point;Point p

2015-09-20 21:20:46 269

原创 Ural 1005 Stone Pilet 解题报告

题意:把所给出的石头分成两堆,使两堆的差最小。思路:这道题可以用01背包写。。也可以直接暴力。。。题上的数据范围决定了dp的效率没有暴力的高。。代码:#include iostream>#include algorithm>#include cstring>#include cmath>usingnamespace std;int a[23];int sumAll;int

2015-09-20 21:20:41 295

原创 Ural 1001 Reverse Root 解题报告

题意:求出每个数的平方根,然后倒序输出。保留四位小数。思路:我在Ural的第二道题,我的第一篇ural解题报告,为什么第一道题没有写呢。。。。你们懂的。之所以选择Ural,是因为那上面的题都是原创的,质量很高,有很多国内的童鞋也在那里A题。。。我就是想找一个安静的环境不断的A题,所以就选择了这个oj了。代码:#include iostream>#include cstdio

2015-09-20 21:20:37 663

原创 poj 1247 Magnificent Meatballs 解题报告

题意:S从1顺时针走,E从n逆时针走。使走到一个位置,他们正好把肉丸给完,而且给的肉丸数量相等。思路:水题,每次让给出的总肉丸数最少的那个人继续给,直到所有人给完。然后判断两个人给的总数是否相同。代码:#include iostream>#include cstdio>#include cstring>using namespace std;int table[33];

2015-09-20 21:20:32 399

原创 poj 1207 The 3n + 1 problem 解题报告

题意:给出一个区间,求区间内每一个数按规则(奇数取3n+1,偶数取n/2)变换最后变成1的步数,求最大的一个步数。思路:这道题在poj上很快就是水过了,用的是一般的笨方法,后来看到学校的oj也有这道题,就复制粘贴过去,结果WA了,好诡异。然后改了一些细节,TLE了,顿时无语。然后经过各种优化啊,记忆优化啊,有木有!!优化到不能再优化啊,还是TLE啊。没办法了,只能试试其他的方法了。很简

2015-09-20 21:20:30 327

原创 poj 2606 Rabbit hunt 解题报告

题意:给出n个点的整数坐标(n思路:简单几何题。采用几何中三个点是否在一条直线判定定理。代码:#include iostream>#include algorithm>#include cstdio>using namespace std;typedef struct{ int x,y,count;}Point;Point p[203];double a[203]

2015-09-20 21:20:27 314

原创 poj 1118 Lining Up 解题报告

题意:给出n个点的整数坐标(n思路:简单几何题。采用几何中三个点是否在一条直线判定定理。代码:#include iostream>#include algorithm>#include cstdio>using namespace std;typedef struct{ int x,y,count;}Point;Point p[703];double a[703]

2015-09-20 21:20:25 347

原创 poj 1046 Color Me Less 解题报告

题意:前16组是被查找组,然后给出每组数据,从16组数据中找出符合公式   D的最小值。。思路:一道水题。遍历每组数据,暴力解之~~~代码:#include iostream>#include cmath>#include cstdio>using namespace std;typedef struct{ int x1,x2,x3;}Color;Color c[16

2015-09-20 21:20:20 384

原创 poj 1007 DNA Sorting 解题报告

题意:输入是第一行两个数字,表示每行的长度和总行数然后是n行字符串求出每行字符串的逆序数,按逆序数从小到大的顺序排列所有的字符串。。什么是逆序数呢,在一个排列中,如果前面的数比后面的大就称为逆序.一个排列中的逆序总数称为逆序数。。例如:给出32145求出它的逆序数,从它的第二个数开始,和它前面的数比较大小,如果是从小到大的顺数,则逆序数为0,如果前面有几个比它大的逆序数就是几。。。

2015-09-20 21:20:15 480

原创 poj 1005 I Think I Need a Houseboat 解题报告

这道题的大致意思:  圆表示一块面积可扩展的区域,开始时,面积是0,在(0,0)处开始以每年50平方米的速度同样呈半圆扩展,输入一个正整数N,然后输入N对坐标,对于每一对坐标值:求出面积扩展到该点的年数,坐标值单位为米。 理解意思后此题就水很多了。细心的话一次搞定~ #include iostream>#include cstdio>#include cmath>using names

2015-09-20 21:20:11 314

原创 poj 1004 Financial Management 解题报告

求12个月工资的平均数。这个题的难度和1001差不多吧 1 #include iostream> 2  using namespace std; 3 4 5  int main() 6 { 7 int n=12; 8 float sum=0.0; 9 float a;10 while(n--)11 {12 cin>>a;13

2015-09-20 21:20:08 372

原创 poj 1003 Hangover 解题报告

题意还是比较容易理解的,题上已经给出了公式。求1/2 + 1/3 + 1/4 + ... + 1/(n + 1)>=x的最小n的值,稍微注意点的就是浮点型了,貌似很多人都WA过,都是错在浮点数的。。代码实现#include iostream>using namespace std;int main(){ float f; while(cin>>f,f) {

2015-09-20 21:20:05 264

原创 标准C++的一些约定

1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++03,最新的C标准是C99。因此也没有先学C再说C++的说法,也不再(注意这个"不再")有C++语法是C语法的超集的说法。  2. C++/CLI 和 C# 是微软的,它们与C和C++没有任

2015-09-20 21:20:01 344

原创 oj系统上写代码的一些小技巧

程序书写过程中的一些小技巧:1. freopen(“1.txt”,”r”,stdin);  //程序运行后系统自动输入此文档里面的内容(不需要进行手动输入)freopen(“1.txt”,”w”,stdout);  //程序输出的内容保存在此文件里2. memset(a,0,sizeof(a));     //数组的初始化。一般定义一个数组都要初始化数组定义int a[10]  为全局变量的话,其

2015-09-20 21:19:56 2844

原创 移位乘除法

移位实现的乘除法比直接乘除的效率高很多。用移位实现乘除法运算   a=a*4;   b=b/4;   可以改为:   a=a  b=b>>2;   说明:   除2 = 右移1位 乘2 = 左移1位   除4 = 右移2位 乘4 = 左移2位   除8 = 右移3位 乘8 = 左移3位   ... ...   通常如果需要乘以或除以2的n次方,都可以用移位的方法代替。   大部分的C编译器,用

2015-09-20 21:19:52 736

原创 poj 1182 食物链(并查集)解题报告(转)

在输入时可以先判断题目所说的条件2和3,即:       1>若(x>n||y>n):即当前的话中x或y比n大,则假话数目num加1.       2>若(x==2&&x==y):即当前的话表示x吃x,则假话数目num加1.   而不属于这两种情况外的话语要利用并查集进行判断当前的话是否与此前已经说过的话相冲突.   struct node   {       int parent;       

2015-09-20 21:19:47 244

iphlpapi.h

iphlpapi.h

2012-07-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除