
编程学习
文章平均质量分 79
q437634645
这个作者很懒,什么都没留下…
展开
-
DirectX学习——数学基础(2)
矩阵的基本运用:矩阵的作用是对点和向量进行变换(例如平移之类的操作)DirectX使用4x4矩阵,因为通常在把向量和点扩展一维变成一个4D向量(最后一维分别为0或1,0是向量,1是点)因为最后一维为0则,平移矩阵对向量影响为0,联系平移矩阵的特点容易得出该结论。创建并使用4*4矩阵:#include #include #include int WINAPI原创 2015-10-16 22:16:35 · 368 阅读 · 0 评论 -
快速傅里叶变换(FFT)
挖坑,原理有待补充附上代码://按照二进制位倒序重排templatevoid resort(int N, T* inRe, T* inIm,T* outRe,T* outIm){ int n = 1 << N; int i, j, k; for (i = 0; i < n; i++){ j = 0; for (k = 0; k < N; k++) j |=原创 2016-07-17 23:31:53 · 380 阅读 · 0 评论 -
HYSBZ 3991 寻宝游戏(lca)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3991一开始觉得只要按照lca来添加点就好了,结果错了,后来想到没那么简单。首先建立如图。添加4,7点后如图。把1,2,5,6也添加都路径上构成一个树(好像叫虚树),总路程=路径x2。显然1是4,7的最近公共祖先。当这个时候如果有新的点加入,假设为2,那么总路程没有任原创 2016-04-11 21:41:02 · 394 阅读 · 0 评论 -
HDU 5735 Born Slippy(dp+优化)
树形dp如果接暴力dp会超时,所以需要优化,dp[s]=max(dp[s],dp[i]+w[i] opt w[s]),其中i是s的祖先,那么暴力则是O(n^2)。优化思路:对于当前搜索到的点u,拥有数组ds(x,i),该数组储存ds(x,i)=max(dp[j]+ y opt i),其中x与y分别是j的前8位和后8位。那么dp[u]=max(dp[u],ds(i,B)+((A op原创 2016-07-22 22:47:32 · 274 阅读 · 0 评论 -
ZOJ 3933(网络流)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5693题目大意:给出两个队伍中的人,使其不同队的组合尽量多,还要最大话女生,其中还有人不愿意跟某个人组队。我用费用流来做,女生费用为0,男生为1。不同队伍的点之间有边,同一个队的没有边相连,且不愿意组队的两个点也不会有边。折磨我了半天,找不到超时原因原创 2016-04-23 22:43:18 · 350 阅读 · 0 评论 -
POJ 2688 Cleaning Robot(状压dp+bfs)
题目链接:http://poj.org/problem?id=2688大意:给出一个矩形图,回答从起点出发要经过所有指定点的最短路径长度。如果不能经过所有点就输出-1。因为指定点的数量不超过10,图的大小不超过20×20,所以可以先bfs预处理构建起点和指定点的邻接矩阵。然后状压dp就好了。dp[i][j]表示状态i,路径最后一个点为j的最短路径长度。i的每位代表哪些点走了。(ps原创 2016-04-13 20:54:01 · 455 阅读 · 0 评论 -
后缀数组
下面的例子取自刘汝佳大白书。后缀数组是一个强力的字符串处理工具。首先定义后缀i是以下标i为首到字符串末的子字符串。而后缀数组sa定义为以字典顺序记录后缀。所以,字符串AABAAAAB的后缀数组sa={3,4,5,0,6,1,7,2}。仅仅只有后缀数组还不够,还需要构造一个名次数组ra。名次数组ra定义为对应后缀的名次,上述字符串的名次数组ra={3,5,7,0,1,原创 2016-01-11 15:48:07 · 253 阅读 · 0 评论 -
Codeforces #337
A题:水题,特判是否为奇数,奇数则为0#include #include using namespace std;int main(){ int n; int a,b; while(scanf("%d",&n)==1) { if(n%2==1)printf("0\n"); else {原创 2015-12-30 20:28:06 · 224 阅读 · 0 评论 -
DirectX学习——数学基础(1)
向量的基本运用:创建3D向量:typedef struct D3DXVECTOR3 : public D3DVECTOR{public: D3DXVECTOR3() {}; D3DXVECTOR3( CONST FLOAT * ); D3DXVECTOR3( CONST D3DVECTOR& ); D3DXVECTOR3( CONST D3DXFLOAT原创 2015-10-16 13:32:11 · 489 阅读 · 0 评论 -
POJ 2449(A*算法与最短路算法)
题目描述:给定一个带权有向图,询问从起点到终点第k短路径长度,如果没有则输出-1。这个题目数据有特殊之处,就是如果起点与终点重合时,距离0并不算第一短最短路径。A*算法:使用估值函数来进行搜索,f(n)=g(n)+h(n),其中f(n)表示状态起点经过状态n到状态终点的估值,g(n)为状态起点到状态n的距离值,h(n)为状态n到状态终点的距离值。之所以说f(n)是估值函数是因为,h(n原创 2016-07-18 23:57:51 · 964 阅读 · 0 评论