- 博客(113)
- 收藏
- 关注
原创 可交互博文的小尝试
由于CSDN的原因,第二个交互程序基于webGL,在CSDN上不能跑。有兴趣可以在我独立博客看到。原文链接一直想在博文中加入可交互的内容,但对web一窍不通。如今找了个简单的方法,只要直接在markdown中嵌入html的iframe标签即可。具体交互的内容,单独写在一个html文件中,iframe引用这个文件。最早出现这样的想法是看到很多大佬的博客,例如:《SIGHT & ...
2018-10-14 20:48:31
399
原创 Ludum Dare 41 作品《Moth and Bat》
http://ovlm5fq65.bkt.clouddn.com/Moth%20and%20Bat.png http://ovlm5fq65.bkt.clouddn.com/Moth%20and%20Bat%20score.png第二次参加Game Jam,第一次参加Ludum Dare。在开发该游戏时,我学习游戏开发110天了。项目源码:https://github.com/Samue...
2018-08-30 22:13:50
632
原创 【游戏开发阅读列表3】图形学
在【游戏开发阅读列表1】Unity Shader中,分享了很多shader的入门内容。但没有涉及更本质的东西。理解游戏开发技术上更本质的东西,长远来看也有不小价值吧。所分享的内容都亲自品尝,保证无毒无害,营养价值极高!在互联网上我们缺少的不是内容,而是索引。《The Book of Shaders》这本电子书只完成了一半,不知什么原因没有再写下去。每一节都写得非常精致。内容上更偏向...
2018-08-30 10:29:03
440
原创 【游戏开发阅读列表2】动画(Anima2D、粒子、物理等)
游戏中动画的实现有很多不同方法,帧动画、骨骼动画、基于物理的动画、基于Shader的动画、粒子等。在这篇文章中,列出了我最近读到过的不同种类动画入门级的文章、视频。关于Unity动画状态机这一类太常见的,这里不再赘述。所分享的内容都亲自品尝,保证无毒无害,营养价值极高!在互联网上我们缺少的不是内容,而是索引。1. 基于物理的动画与其他的动画相比,基于物理动画最大的好处是交互时更真实...
2018-08-22 20:37:32
1406
原创 【shadertoy】线性动态模糊的实现 Analytical Motion Blur
在shadertoy看到这个动态模糊的代码Analytical Motionblur 2D。不只是他的动态模糊,他整体的颜色、背景、小球的运动等都感觉很棒。看了一下代码也不长,因此研究了一下。他基本的效果如下:下面一步步实现。## 1.坐标映射 ##首先对原来的屏幕坐标 fragCoord 重新...
2018-08-02 20:26:33
1571
原创 【游戏开发阅读列表1】Unity Shader 入门到进阶
动机在豆瓣上看到有人写《GameDev Weekly》 系列,主要是记录每周阅读的游戏开发相关内容,包括视频、文章等。但我自身水平较弱,他分享的一些内容我还看不懂。于是自已也打算写类似的系列,不一定是weekly,把自己阅读过的有价值的内容尽量分类,按从入门到精通的顺序罗列出来,也做一些总结。所分享的内容都亲自品尝过,保证无毒无害,营养价值极高!入门《猫都能学会的Unit...
2018-07-24 20:43:21
1076
原创 【DX12】DirectX Math库 Vector和Matrix类型 XMVECTOR、XMMATRIX
DirectX Math Library 是一个3D数学库,包含在Windows SDK中。该库使用了SSE2(Streaming SIMD Extensions 2)指令集。使用128位宽的SIMD(Single Instruction Multiple Data)寄存器,因此做向量计算会更快。 注:在X86平台下,需要在VS中手动设置,启用SSE2(Enable Enhanced Ins...
2018-06-19 23:10:35
2878
原创 使用Python修改windows键位
本文参考了《键盘键位修改及管理(Windows篇)》一文。但原文中代码有几处错误,因此有所修改。在Windows注册表中有个”Scancode Map”(即扫描码映射)的键,我们可以通过修改这个键的值来实现键位映射的更改。“Scancode Map”的值的格式是”hex:00,00,00,00,00,00,00,00,xx,00,00,00,[yy,yy,yy,yy,…,yy,yy...
2018-04-20 16:00:37
2094
原创 我的美学价值观
前段时间读了美学大师朱光潜写的《谈美》,受益匪浅。虽说很多观点我并不认同,但也太多次给我醍醐灌顶之感。本文可以算作是读后感,但并不是单纯的读后感。有些地方引用了书中观点,但经过了我大脑加工,有些地方完全是我个观点,总体来说,是我在朱光潜老先生指引下构建起来的美学价值观。什么是美感? 人看待事物有三种不同的态度:实用态度、科学态度、美感态度。 所谓实用态度,是指对自己有无意义、利...
2018-04-17 17:39:57
1282
原创 游戏设计的第一步:设计体验
《游戏设计艺术》(The Art of Game Design)是卡耐基梅隆大学的教授Jesse Schell的著作。阅读过程中,我会记录并整理自己的思考。 下面是来自原文的两块透镜。所谓透镜,指的是检验设计的不同角度。因为对于设计而言(不仅仅是游戏设计),都没有一个完备的系统来评价最终的作品。但是各种不同角度的评价是存在的。这些不同的角度能协助设计。...
2018-03-27 17:44:06
1513
3
原创 C++内存管理(下) 栈分配器、单帧和双缓冲内存分配器
这篇文章将介绍堆栈分配器,以及堆栈分配器的两种特殊使用场景——单帧和双缓冲内存分配器。 基于堆栈的分配器(stack allocator) 这种分配器和C++本身的堆栈分配使用相同逻辑。就不多赘述。 一种特殊的进化版本:双端堆栈分配器(double-ended stack allocator):一块内存给两个堆栈分配器使用,一个从底端向上分配,一个从顶端向下分配。 在M...
2018-03-20 20:18:41
992
1
原创 C++内存管理(上) 池分配器、对齐
内存对程序效率的影响很大。即使是好的算法,用了不正确的内存分配,仍然会有效率问题。 内存对效能的影响有两方面:动态内存分配(dynamic memory allocation)非常慢。它慢主要有两个原因。首先,堆分配器必须处理任何大小的分配请求;其次,在多数操作系统上,malloc()/free()必然会从用户模式(user mode)切换至(kernel mode),处理请求,再...
2018-03-20 11:52:32
1520
1
原创 C++如何由文件组成项目
本文同时发布于我的个人博客 链接 当我们学习了C++的语法以及种种特性之后,可能要开始做一个项目。但是一个C++的项目究竟是怎么组成的呢?当我们用Visual Studio新建一个项目时,里面的cpp文件和项目究竟是怎样的关系?这篇文章就是为了解答这些问题。我们将解释项目、解决方案、库等各种术语的含义。 首先要知道,C++从源文件到可执行文件的一个基本流程。C++的源文...
2018-03-16 17:22:02
5126
原创 Global Game Jam作品 《搞事男孩》
这是我第一次参加Game Jam,也是我人生中第一款完整开发的游戏。在开发该游戏时,我学习游戏开发的时间还只有26天。因此游戏还有很多不足。项目源码:https://github.com/tkchu/2018GameJam 项目游戏下载:https://globalgamejam.org/2018/games/trouble-boy团队我们团队有三个人,分别是: 1. 楚天阔 游戏...
2018-03-10 12:21:31
1634
原创 什么是游戏AI
总得来说,游戏AI(Game AI)就是一种能让开发者为玩家创造引人入胜体验的东西。我们用的每一个技术、每一个技巧、每一种算法,都是为了那么一个单一的目标。本文将围绕这一点展开讲解究竟什么是游戏AI。 首先需要明白的一点是,游戏AI中的AI(Artificial Intelligence,人工智能)与我们讨论计算机视觉、自然语言处理等领域时所说的AI
2018-01-19 19:37:53
8274
2
原创 TF-IDF特征提取 用sklearn提取tfidf特征
n-gram此处的TF和IDF的公式,都是sklearn中的tfidf使用的公式。和最原始的公式会有些出入。并且根据一些参数的不同而不同。名词的解释: corpus:指所有documents的集合 documents:词语的有序排列。可以是一篇文章、一个句子之类。词频(TF)在一份给定的文件里,词频(term frequency,tf)指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数
2017-07-09 20:12:04
17025
1
原创 Word Vectors详解(2)
3.3 Skip-Gram ModelAnother approach is to create a model such that use the center word to generate the context.Let’s discuss the Skip-Gram model above. The setup is largely the same but we essentially
2017-06-21 19:12:05
1539
原创 更改jupyter notebook的主题颜色(theme) 包括pycharm
在用jupyter notebook时,想到一个问题,能不能更改jupyter notebook的主题颜色,总是看着白色的默认主题,有些乏味,也不够酷炫。 使用之后: 除此之外,在pycharm中的jupyter notebook,颜色上也有一些问题。我不知道是特例还是普遍现象,在pycharm中,jupyter notebook的背景颜色很多时候不能根据IDE的主题来一起更改,很多时候
2017-06-17 19:47:47
73904
20
原创 Word Vectors详解(1)
We want to represent a word with a vector in NLP. There are many methods.1 one-hot VectorRepresent every word as an ℝ|V|∗1\mathbb{R}^{|\it{V}|*1} vector with all 0s and one 1 at the index of that word
2017-06-16 00:52:04
1102
原创 正态分布以及相关的抽样分布
by QZQ基本定义性质定性分析参数标准正态分布引理分位点相关的样本分布2chi2分布性质上分位点tt分布上分位点FF分布上分位点正态总体的样本均值与样本方差的分布基本定义若连续型随机变量X的概率密度为f(x)=12π‾‾‾√σe−(x−μ)22σ2,−∞<x<∞f(x)=\frac{1}{\sqrt{2\pi }\sigma } e ^{- \frac{(x-\
2016-12-22 17:40:17
6283
原创 hdu 4796 Winter's Coming 插头DP
目前OJ上跑的最快 187ms 要求建造城墙把W分在左边,L分在右边,并且上下联通做法是从地图第一行上面连一个插头下来。DP的最终状态是最后一行连一个插头到下面。 至于W分在左边,L分在右边,做法是: 保证任意一个W左边的下插头为偶数个,L的下插头为奇数个。具体看代码#include<stdio.h>#include<string.h>#include<ctype.h>#include<
2016-11-04 16:48:39
650
原创 hdu5885 XM Reserves FFT
感觉是难度一般的FFT题,比赛时没看这个题。。。 把原来二维坐标映射到一维上,即(x,y)->(x*m+y)这样整个地图就可以用一个多项式表示,系数是格子上初始的值,下标(即指数)是格子编号。 再用一个多项式表示转移,半径r内的点,系数是1/(dis+1),半径外的点是0,下标(即指数)是格子编号。 两个多项式卷积就能求得答案//#include<bits/stdc++.h>#define
2016-11-01 15:14:16
876
原创 bzoj 3112 从 线性规划 到 网络流 浙江oi2013 战线防守
线性规划约束条件中如果每个变量在且只在两个约束条件中出现,并且系数为+1、-1,则可构造出网络流模型。题意:战线看作长度为n的序列,现在需要在这个序列上建塔,在i号位置上建一座塔有cic_i花费。有m限制,每个限制形如区间[lil_i,rir_i]中至少有did_i个塔。求最小花费。设sis _i 为前i个位置塔的数量。 可以得到: 目标函数(最小化):∑i=1n(si−si−1)∗ci\s
2016-10-28 17:06:38
1163
原创 多对独立源汇共享同一网络的网络流问题
基本模型:给出多对源点、汇点si,tis_{i},t_{i}。sis_{i}只能流向tit_{i},不能流向其他汇点。 但是所有源汇共用同一个网络。问题一:sis_{i}流向tit_{i}的流量为flowiflow_i,能够得到价值ki∗flowik_i*flow_i。 求该网络能获得的最大价值。(暂时只知道线性规划解法) 设u流向v的流量限制为c(u,v)c(u,v),第i对源汇从u留向v
2016-10-27 14:23:01
787
原创 01串出现奇数个1的方案数 2016四川省赛 Odd Discount
题目链接:https://acm.bnu.edu.cn/v3/problem_show.php?pid=52300先证明结论,后说题目; 结论1:长度为n的01序列出现奇数个1的方案为总方案的1/2(即出现奇数个1和出现偶数个1的方案数相等) 证明:(数学归纳法) n=1的情况,显然成立; 如果n=i成立:那么再额外增加1个1,奇数个1和偶数个1的方案会对调;再额外增加1个0,奇数个1和偶数
2016-10-03 21:08:02
2014
原创 Hdu 5514 类莫比乌斯函数 容斥原理
题意:有m个石子围成一圈, 有n只青蛙从跳石子, 都从0号石子开始, 每次越过a[i]个石子 问所有被至少踩过的石子的序号之和思路: 设所有踩到的石头下标集合为 P,题目求sum(P),青蛙集合为a 总共m个石子,青蛙每次跳ai。等价于m个石子,青蛙每次跳gcd(m,ai)。并且 当 gcd(m,ai)|k 时,第k个石头可以背踩到。 先对青蛙集合a做一个等价替代,ai = gcd(m,a
2016-09-29 17:59:59
1867
原创 hdu 5743 Join The Future
http://acm.hdu.edu.cn/showproblem.php?pid=5743令pre[i]为前i个数的和(mod 2)。题中给的m个限制条件l,r,s,可以转化为pre[r] - pre[l-1] = s,就把区间转化为了点。每个限制条件表示两点间的关系 与其他 pre[] 都没有关系的 pre[i] 可以单独考虑。 而与其他数有限制关系 ,就至少与
2016-07-24 14:39:06
894
原创 hdu 5741 Helter Skelter 官方题解做法的详细证明
题意:给定一个只有0和1组成的字符串(总长度小于等于10^9,不被分割的0或1段 的个数n 可以用扫描线做,但是官方题解给出另一种做法,官方题解中各种猜想假设,均未证明。强迫症患者表示不能忍。虽然写那么长的脑残证明也没人会看。a为0的个数,b为1的个数把可行的(a,b)放到二维坐标平面上,横坐标表示0的个数,纵坐标表示1的个数。下面证明,所有合法(a,b)组成的图形
2016-07-23 00:26:54
1337
原创 hdu 5628 Clarke and math Dirichlet卷积
设f,g为两个数论函数,那么规定 (f∗g)(n)=∑d|n f(d)g(n/d)为f,g的Dirichlet卷积该运算满足 交换律、结合律、分配律。并且存在一个幺元e,使得e*f = f。 当i = 1 时 e[i] = 1,i != 1 时 e[i] = 0;另函数 h[i] 恒等于 1.g(i)=∑i1∣i∑i2∣i1∑i3∣i2⋯∑ik∣i
2016-07-13 17:04:51
1313
原创 hdu 4997 状压dp
/************************************************************************* > File Name: hdu4997.cpp > Author: TechMonster > Mail: 928221136@qq.com > Created Time: 六 7/ 9 12:15:10 2016 **********
2016-07-09 13:51:08
896
原创 hdu 5304 基尔霍夫矩阵
关于基尔霍夫矩阵:*算法引入: *给定一个无向图G,求它生成树的个数t(G); * *算法思想: *(1)G的度数矩阵D[G]是一个n*n的矩阵,并且满足:当i≠j时,dij=0;当i=j时,dij等于vi的度数; *(2)G的邻接矩阵A[G]是一个n*n的矩阵,并且满足:如果vi,vj之间有边直接相连,则aij=1,否则为0; *定义图G的Kirchhoff矩阵C[G
2016-07-09 00:13:59
2404
原创 插头dp入门 hdu 4804 + 5286
论文:http://wenku.baidu.com/view/4fe4ac659b6648d7c1c74633.htmlhdu 4804/************************************************************************* > File Name: hdu4804.cpp > Author: TechMonster
2016-07-08 14:11:40
787
原创 hdu 5711 Ingress 状态压缩 46ms第一
趁还是第一,赶紧截图/************************************************************************* > File Name: hdu5711.cpp > Author: TechMonster > Mail: 928221136@qq.com > Created Time: 三 7/ 6 1
2016-07-06 16:35:47
814
原创 hdu 5286 wyh2000 and sequence 分块
学别人的。。。。对于答案我们不好用线段树维护,但是n只有50000,所以我们可以用分块的方法,来处理令f(l,r)表示[l,r]的答案。我们对于序列分块,对于第i块,令Si为第i块的左端点。令g(a,b)表示第a块开头到第b块末尾这一段序列的答案。下面我们讨论如何求g(a,b)。我们枚举a,再枚举j(Sa≤j≤n),考虑j 转移到j+1,f(Sa,j)和f(Sa,j+1)的关系。f
2016-07-05 23:07:36
636
原创 hdu 5193 Go to movies Ⅱ 块状链表 + 树状数组
数组的定位o(1),插入o(n). 链表的定位o(n),插入o(1).所以把二者结合,是复杂度均摊为 sqrt(n)设每块的大小为S,那么删除或者添加元素时,维护逆序对数的复杂度是O(S+\frac{P}{S}* \log n)o(S+(p/s)*logn),S是块内直接暴力更新逆序对的代价,(n/s)∗logn在前面块找比它大和在后面块中找比它小的代价,P表示当前元素的个数。
2016-07-05 15:03:10
1072
原创 hdu 3434 Sequence Adjustment
首先把序列变成长度n−1的差分数列,那么这时的目标是将这个序列的每一个值都变为0。将区间操作转化成差分数列上的操作,就有: 1.将任意一个数减去或加上1(此时只要直接对前缀区间或后缀区间操作即可)。 2.将任意两个数进行相反的加减操作(此时只要直接对这个区间进行操作即可)。 设这个数列中小于0的数的和为A,大于0的数的和为B,且A>B(其他的情况一样)。对于B这一部分,可以用B的次数直
2016-06-26 15:04:26
653
原创 hdu 5713 K个联通块 2016百度之星复赛1002 DP
用dp[i][j] 表示 状态i分成k个联通块的方案数。状态i的二进制第j位代表编号为j的点。f[i]表示状态i内删边,仍保持一个联通块的方案数。则有 转移方程 dp[i][k] = sum(dp[i-j][k-1]*f[j]). j 是i的子状态,但不是i的所有子状态。为什么呢?假设i 表示 点集 {1,2,3,4} 然后分成 {1,2} {3,4} 如果枚举所有子状态,则在j
2016-05-30 17:52:26
1844
原创 hdu 3017 Treasure Division 折半枚举 + 双指针
运气不错排了第二。内存比他们大了好多。不知道他们是什么方法。把n个coin分成两半,在两半里分别枚举所有情况,第一半取了i枚硬币则把价值存入s1[i],第二半取了i枚硬币则把价值存入s2[i]。时间复杂度2 × 2^(n/2 ) 。然后都排序。假设所有硬币总价值为sum,aim = sum/2. 最后要把硬币都分成两部分,我们只求价值小的那部分。所以这个要求的 一定小于等于a
2016-05-18 19:57:04
846
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人