- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 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 3790
原创 ACM-最大子序列和
最大子序列和问题,即给出一个序列a1,a2,a3,...,an,问该序列的所有子序列中,各项相加后和最大是多少,甚至还可能要求给出该子序列的起始位置和终止位置。算法一:最容易想到、直观的算法,就是枚举子序列的任何一个起点和终点位置,这样一定可以得到正确答案,并且也能求出子序列的位置,但同时也可以确定的是这样做的时间复杂度太高,达到了o(n^3),程序执行效率不高,一般都会超过时间限制。实现
2015-03-30 00:28:56 2175
原创 ACM-三分搜索
类似于二分查找,三分搜索法也是比较常用的基于分治思想的高效查找方法。但是和二分不同,二分只适用于单调函数,比如常用的对单调递增或单调递减的一个序列中的某一个元素进行查找,三分却突破了这种限制,可以用于左边递增右边递减或者相反的,这么一类函数,也就是常说的凸函数和凹函数。但是为什么三分法可以用于凸函数或者凹函数呐,这其实是因为这种函数总是有一个最大值或者最小值,这样就可以借此判断出三分法中两个中点相
2015-03-24 21:21:36 5959
原创 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 717
原创 COCOS-Tiled地图遮挡
一、地图层间的遮挡关系tiled可以设置多个地图层,那么就会产生层与层之间的遮挡关系,tiled地图编辑器可以设置这种遮挡关系,最上面的一层即地图上的最表面一层,它遮挡下面的层,以渲染顺序来看的话,最下面的zOrder=0,靠上面的层zOrder依次加1,但是对象层由于不可见所以没有zOrder值,总之zOrder值大的遮挡zOrder值小的,如下图:二、瓦片之间的遮挡关系瓦片之间的遮挡关系服从它...
2015-03-21 15:36:07 2963
原创 COCOS-Tiled地图编辑器
一、tiled简介瓦片地图是cocos游戏里重要的一个组成部分,tiled地图编辑器便是设计瓦片地图的有效工具,下载地址(),其工作界面如下图:
2015-03-21 14:34:44 1906
原创 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 1109
原创 COCOS-单点触摸
在cocos2dx 2.x版本中,单点触摸的实现是通过重写函数实现的,主要代码如下:// 需要重写的函数bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent); // 触摸开始,注意返回类型,true表示继续响应CCTouchMove,CCTouchEnd,CCTouchCancalled,false表示不响应void ccTouchM
2015-03-18 19:48:35 684
原创 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 537
原创 ACM-不同进制下的加法
加法是最基础的一种运算了,在ACM的题目中它也会以各种各样的形式出现,所以这里对其进行一些总结。这里主要讨论加法在不同进制下的实现过程,比如给出两个b进制下的数p和q,让计算出它们的和;假如继续增加条件,p和q的长度可以达到上百位(字符串),那么这种情况下,只有用最原始的方法进行模拟计算,即从个位开始,一位一位的相加求和进行计算。具体的实现方法的话,可以使用一个整型数组,将需要相加的各个数据的每一
2015-03-15 14:44:32 1627
原创 ACM-快速幂乘
在很多的题目中,经常会遇到求解幂次的问题,当幂次比较小的时候,最后的结果也不会太大,不会造成溢出,使用库函数pow就可以解决,时间也还过得去;但是当幂次变得比较大的时候,直接计算次方,先不说效率问题,就是最后的结果也是无法保存的,所以必须在计算的过程中逐步取模。至于具体该怎么解决,可以借鉴矩阵快速幂的思想,传送门(),实际上也就是利用二进制的性质进行逐步二分优化,过程就不多说了,下面给出一份模板:
2015-03-15 14:35:16 1100
原创 ACM-BestCoder Round #33
A-zhx's submissions题意:给出n个b进制的数据,要求计算它们的和,但是不需要进位。分析:反转每一个数据后,模拟每一位的加法即可,需要注意的地方主要有去掉前导零,但是当只有一个零时却要输出零。具体做法的话,可以将每一位转化成数字,累加到数组中,因为不需要进位,最后统一取模即可。源代码:// 用cstdio,交g++的话会超时#include #inclu
2015-03-15 10:46:31 513 2
原创 ACM-BestCoder Round #32
A-PM2.5题意:先按两次数据之差由大到小排序,若差相等则按第二次数据由小到大排序,若第二次数据还相等则按城市数据的输入的先后顺序排序。分析:由于排序数据有多个,所以搞个结构体按照规则排序就ok了。其实还有一点,就是最后按输入顺序排序其实不用排,因为存储数据的时候就是按输入顺序排的。源代码:#include #include using namespace std;
2015-03-07 21:53:00 431
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关注的人