- 博客(70)
- 资源 (3)
- 收藏
- 关注
原创 ComputerGraphics-SoftRenderer-设计
http://blog.youkuaiyun.com/aceyan0718/article/details/51659381http://www.cnblogs.com/hust-ruan/archive/2013/03/16/2962077.htmlhttp://blog.youkuaiyun.com/zhanghuanzj/article/details/51723164
2017-02-01 10:56:34
686
原创 C/C++-技巧-获取时间
http://www.cnblogs.com/book-gary/p/3716790.html注意struct timespec和struct timeval在VC12下的time.h没有定义,需要用VC14
2017-01-31 17:12:07
1772
原创 C/C++-技巧-宏
一、宏基础宏在c/c++中扮演者比较重要的角色,虽然难以阅读和调试的缺点让宏的使用饱受诟病,但是在一些特殊的情况下,使用宏会带来极大的方便,甚至可以实现一些用其他方式无法实现的功能。在c/c++程序编译的过程中,编译器对宏的处理是在预编译阶段进行的,处理方式的核心思想是:简单替换,编译器并不会对宏本身和宏的参数进行任何类型、语法上的检查,这也是导致宏不易阅读、不易调试的原因,也可能产生一些
2016-12-25 18:59:03
12761
1
原创 ACM-常见注意事项
1、输入、输出必须严格按照题目要求进行,包括空格、换行等2、输入直到文件结束应该加上循环判断while(~scanf("%d", &a)){}while(EOF != scanf("%d", &a)){}while(1 == scanf("%d", &a)){}3、java的输入输出格式import java.util.Scanner; public class
2015-12-12 22:34:55
1240
原创 COCOS-3.X事件分发机制-触摸事件
在cocos中,触摸事件分为单点触摸和多点触摸,其中多点触摸主要是针对移动设备的,但是利用cocos的事件分发机制来处理触摸事件,其大致流程几乎是一致的。一、单点触摸1、cocos2.x的处理方式在以前cocos2.x版本中,触摸事件的响应主要是通过重写父类中关于响应触摸事件的虚函数来实现的:// 需要重写的函数,单数形式bool ccTouchBegan(CCTouch *pT
2015-12-06 23:38:05
1770
原创 ACM-图论-拓扑排序
拓扑排序用于解决图论中有向图的一类序列问题。即在某一个有向图graph中,假设每一条有向边(u,v)代表节点u必须排在节点v的前面,那么按照这样的规则,将所有的节点进行排序,最终得出的序列就称为拓扑序。拓扑排序在ACM比赛和实际生活中都比较常见,只要能将事物抽象成有向图,并要求按规则排序,那么就可以考虑拓扑排序,比如选修课程的安排、按胜负排名次等。拓扑排序只适用于有向无环图,所以使用拓
2015-08-03 16:10:44
4290
原创 ACM-数据结构-树状数组I
ACM竞赛中,树状数组,即二分索引树(BinaryIndexedTree,BIT),也是常见的一种数据结构,其应用场景如下:给出一个长度为n的数组(a[1]-a[n]),每一次给出一个i,询问该数组的前缀和sum[i]。一般情况下,可以在O(n)时间复杂度内处理出所有的前缀和,在O(1)时间复杂度内回答询问。但是如果还存在修改操作,比如修改数组中的某一个元素的值,就无法保证只进行一次O(n)时
2015-07-13 08:27:43
834
原创 网络-WinSocket-I/O模型
WinSocket下编程,总共有7种套接字I/O模型可供选择,分别是阻塞(block)、非阻塞(nonblock)、选择(I/O复用)(select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped )以及完成端口(CompletionPort)模型。其中,默认情况下使用WinSocket进行编程,都属于阻塞模型,详细编程过
2015-07-12 10:03:23
1008
原创 网络-WinSocket-socket编程
在windows平台下进行socket编程,其实有一些步骤是固定不变的,只要遵循这些流程就不会被那些繁琐的网络API、数据结构弄晕。这里就以WinSocket中的TCP通信为例,编写一个客户端,向服务器发送一个消息,编写一个服务器端,向客户端反射一个消息,以此对详细的编程步骤进行说明。一、服务器端1、首先配置好WinSocket编程环境,如引用头文件、链接静态库等#incl
2015-07-11 18:19:33
1620
原创 ACM-数据结构-并查集
ACM竞赛中,并查集(DisjointSets)这个数据结构经常使用。顾名思义,并查集即表示集合,并且支持快速查找、合并操作。并查集如何表示一个集合?它借助树的思想,将一个集合看成一棵有根树。那又如何表示一棵树?初始状态下,一个元素即一棵树,根即是元素本身。并查集如何支持合并操作?不难发现,按照树的思想,在同一棵树中的所有元素,根都是相同的。也就是说,合并两个不同的集合,只需要将其
2015-07-10 20:53:27
2965
原创 ACM-数据结构总览
ACM竞赛,谈到程序中数据的组织方式,那就不得不涉及到各种数据结构,这里将一些经典的数据结构整理出来:并查集-用树来表示集合,支持快速查找、合并,数据结构-并查集()
2015-07-10 18:48:34
1870
原创 ACM-最大子矩阵和
最大子矩阵和问题是对最大子序列和问题的扩展,即从一维扩展到了二维。但是解决此问题的方法和原来的方法并没有太大的差别,这里就以同样的动态规划的实录思路来求解此问题。原来subSum[i]代表包含ai并且以ai结束的子序列的最大和,状态转移方程为subSum[i+1] = subSum[i]<0 ? 0 : subSum[i]+a[i+1],因为subSum[i]为负将对总和做负贡献,所以此时将其丢弃
2015-03-30 23:40:45
3825
原创 ACM-最大子序列和
最大子序列和问题,即给出一个序列a1,a2,a3,...,an,问该序列的所有子序列中,各项相加后和最大是多少,甚至还可能要求给出该子序列的起始位置和终止位置。算法一:最容易想到、直观的算法,就是枚举子序列的任何一个起点和终点位置,这样一定可以得到正确答案,并且也能求出子序列的位置,但同时也可以确定的是这样做的时间复杂度太高,达到了o(n^3),程序执行效率不高,一般都会超过时间限制。实现
2015-03-30 00:28:56
2200
原创 ACM-三分搜索
类似于二分查找,三分搜索法也是比较常用的基于分治思想的高效查找方法。但是和二分不同,二分只适用于单调函数,比如常用的对单调递增或单调递减的一个序列中的某一个元素进行查找,三分却突破了这种限制,可以用于左边递增右边递减或者相反的,这么一类函数,也就是常说的凸函数和凹函数。但是为什么三分法可以用于凸函数或者凹函数呐,这其实是因为这种函数总是有一个最大值或者最小值,这样就可以借此判断出三分法中两个中点相
2015-03-24 21:21:36
6032
原创 COCOS-Tiled地图类
一、TMXTiledMap类cocos2dx提供了TMXTiledMap类来管理tiled瓦片地图,主要包括地图层、瓦片信息等,其主要方法、属性如下:class CC_DLL TMXTiledMap : public Node{ // 使用.tmx格式的文件创建瓦片地图 static TMXTiledMap* create(const std::string& tmxF
2015-03-21 15:39:24
771
原创 COCOS-Tiled地图遮挡
一、地图层间的遮挡关系tiled可以设置多个地图层,那么就会产生层与层之间的遮挡关系,tiled地图编辑器可以设置这种遮挡关系,最上面的一层即地图上的最表面一层,它遮挡下面的层,以渲染顺序来看的话,最下面的zOrder=0,靠上面的层zOrder依次加1,但是对象层由于不可见所以没有zOrder值,总之zOrder值大的遮挡zOrder值小的,如下图:二、瓦片之间的遮挡关系瓦片之间的遮挡关系服从它...
2015-03-21 15:36:07
3057
原创 COCOS-Tiled地图编辑器
一、tiled简介瓦片地图是cocos游戏里重要的一个组成部分,tiled地图编辑器便是设计瓦片地图的有效工具,下载地址(),其工作界面如下图:
2015-03-21 14:34:44
1978
原创 COCOS-多点触摸
对于cocos2dx 2.x版本的多点触摸的机制,主要实现代码如下:对于cocos2dx 3.x版本的多点触摸的机制,主要实现代码如下:// 需要实现的回调函数,复数形式void onTouchesBegan(const std::vector& touches, Event *unused_event);void onTouchesMoved(const std::vector&
2015-03-18 20:19:21
1142
原创 COCOS-单点触摸
在cocos2dx 2.x版本中,单点触摸的实现是通过重写函数实现的,主要代码如下:// 需要重写的函数bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); // 触摸开始,注意返回类型,true表示继续响应CCTouchMove,CCTouchEnd,CCTouchCancalled,false表示不响应void ccTouchM
2015-03-18 19:48:35
701
原创 ACM-BestCoder Round #31
A-pairs题意:给出n个x轴上的坐标点,问有多少对使得第a个点与第b个点间的距离不超过k。分析:由于给出的点是x轴上的点,那么可以先按x坐标的大小对点进行排序,之后问题便转化成了对于第i个点,右边有多少个点与它的距离不超过k,然后累加即可。直接遍历判断的话,复杂度是o(n^2),会超时,必须要进行优化,可以想到如果找到了右边距离i点不超过k的最远点j,那么此时满足条件的对数为j
2015-03-15 16:07:21
558
原创 ACM-不同进制下的加法
加法是最基础的一种运算了,在ACM的题目中它也会以各种各样的形式出现,所以这里对其进行一些总结。这里主要讨论加法在不同进制下的实现过程,比如给出两个b进制下的数p和q,让计算出它们的和;假如继续增加条件,p和q的长度可以达到上百位(字符串),那么这种情况下,只有用最原始的方法进行模拟计算,即从个位开始,一位一位的相加求和进行计算。具体的实现方法的话,可以使用一个整型数组,将需要相加的各个数据的每一
2015-03-15 14:44:32
1700
原创 ACM-快速幂乘
在很多的题目中,经常会遇到求解幂次的问题,当幂次比较小的时候,最后的结果也不会太大,不会造成溢出,使用库函数pow就可以解决,时间也还过得去;但是当幂次变得比较大的时候,直接计算次方,先不说效率问题,就是最后的结果也是无法保存的,所以必须在计算的过程中逐步取模。至于具体该怎么解决,可以借鉴矩阵快速幂的思想,传送门(),实际上也就是利用二进制的性质进行逐步二分优化,过程就不多说了,下面给出一份模板:
2015-03-15 14:35:16
1132
原创 ACM-BestCoder Round #33
A-zhx's submissions题意:给出n个b进制的数据,要求计算它们的和,但是不需要进位。分析:反转每一个数据后,模拟每一位的加法即可,需要注意的地方主要有去掉前导零,但是当只有一个零时却要输出零。具体做法的话,可以将每一位转化成数字,累加到数组中,因为不需要进位,最后统一取模即可。源代码:// 用cstdio,交g++的话会超时#include #inclu
2015-03-15 10:46:31
534
原创 ACM-BestCoder Round #32
A-PM2.5题意:先按两次数据之差由大到小排序,若差相等则按第二次数据由小到大排序,若第二次数据还相等则按城市数据的输入的先后顺序排序。分析:由于排序数据有多个,所以搞个结构体按照规则排序就ok了。其实还有一点,就是最后按输入顺序排序其实不用排,因为存储数据的时候就是按输入顺序排的。源代码:#include #include using namespace std;
2015-03-07 21:53:00
453
原创 ACM-BestCoder Round #22
A-NPY and FFT题意:给一个十进制数,然后将它转化为二进制数,然后对该二进制数翻转,相当于从后面看过来,最后将新的二进制转换回十进制即可。分析:就是普通、简单的进制转换,详见代码。源代码:#include int main(){ int cas; char bina[100]; scanf("%d", &cas); while
2015-01-14 00:25:56
506
原创 ACM-BestCoder Round #21
A-CET-6 test题意:给出某一天n,让算前其1、2、4、7、15天。分析:一种方法是直接从第一天开始遍历到第n天,判断n-i是否满足条件。我想的是找出离第n天最远的存在的一天,然后顺序打印即可。源代码:#include int main(){ int n, data[]={1,2,4,7,15}; while(~scanf("%d", &n))
2014-12-07 01:40:31
487
原创 ACM-Codeforces Round #280 (Div. 2)
A. Vanya and Cubes题意:有n个方块,要将他们堆起来,第一层要1个方块,第二层要1+2个方块,第三层要1+2+3个方块,等等,也就是第i层要1+...+i个方块,问n个方块最多能堆几层。分析:其实每一层需要的方块就是一个等差数列的前i项和,既然这样我们就可以算出每一层需要的方块数,上限也就是1000层,打好表之后,累加层数即可。源代码:#include
2014-12-06 19:14:55
521
原创 ACM-BestCoder Round #20
A-who is the best?题意:给出n个数,求出现频率最高的数,如果最高出现次数一样,则输出最先出现的数。分析:由于数据范围不大,可以直接将数据哈希为数组下标,数组值存放出现次数,最后遍历出答案即可。源代码:#include #include #include #include using namespace std;int data[105]
2014-11-29 21:10:57
516
Introduction to 3D Game Programming with DirectX 11
2017-08-29
windows下7种winsocket的I/O编程模型
2015-07-19
WinSocket编程
2015-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人