自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 redis介绍

Redis介绍以下介绍基于Redis5.0.x版本数据结构Reids存储数据以Key-Value形式,一一对应,是一个全局字典,而每个Value则可以存放不同的数据接口搭配Redis提供的操作,就可以对数据进行增删改查Stringset get 命令分别设置和获取字符串值,substr 获取字符串的子串$ ./redis-cli -h localhost -p 6379loca...

2019-12-04 23:53:43 110

原创 插头dp

插头dp从入门到不会POJ 2411 Mondriaan's Dream#include #include #include #include #include #include #include #include #include #include using namespace std;#define ll long longconst i

2017-03-23 21:52:18 434

原创 HDU 5739(点双连通)

题目大意:给定一个无向图,对于每个连通分量的权值为其中点的权值乘积,而整个无向图的权值为所以连通分量的权值和。Gi表示删除点i,图的权值,求sum(i*Gi)%(10e+7)显然只有删除割点才会改变图的连通性,但我也没有想到怎么解决,这里根据官方题解显然, 只要删掉关键点才会使图不联通. 对于其他点, 权值很容易计算.首先求出所有的点双联通分量, 对于每一个点双联通分量SS

2017-01-01 16:51:22 297

原创 HDU 5768(中国剩余定理+容斥定理)

题目描述:计算(a,b)内能被7整除且不满足给定条件的数有多少个。首先找出能被7整除的数,再除去能被7整除且满足一个条件的数,这可能会把满足两个条件的数减去两次,所以要加上即为容斥定理。代码如下:#include #include #include #include using namespace std;#define ll long longconst i

2016-07-29 21:18:47 361

原创 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 232

原创 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 892

原创 POJ 1084(DLX重复覆盖)

问题描述:用棍子摆成一个n×n的正方形,问你最少取走多少根棍子可以使图中,任一正方形都是不完整的。DLX重复覆盖,把棍子看作行,对应的矩阵看作列,那么选择棍子就是选择棍子对应的行并覆盖该行所包括的列。代码如下:/*--------------------------------------------------------

2016-07-18 15:53:17 419

原创 快速傅里叶变换(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 339

原创 划分树

划分树划分树可以用logn时间复杂度解决任意区间第几大或者第几小问题,是个很好用的数据结构。先来说下为什么叫划分树,按照理解应该是把快速排序的过程的信息保存下来,用作查找。信息有3个数组,num存储数据,L存储当前有多少数据被划分到左子树,相反R存储当前有多少数据被划分到右子树。第一段:num:[1,4,2,3,5,6,7,8,9,0]       L:[1,2,3,4,4

2016-05-29 00:16:09 254

原创 ZOJ 3933(网络流)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5693题目大意:给出两个队伍中的人,使其不同队的组合尽量多,还要最大话女生,其中还有人不愿意跟某个人组队。我用费用流来做,女生费用为0,男生为1。不同队伍的点之间有边,同一个队的没有边相连,且不愿意组队的两个点也不会有边。折磨我了半天,找不到超时原因

2016-04-23 22:43:18 320

原创 POJ 2308 DFS+BFS

题目链接:http://poj.org/problem?id=2308这题没什么坑,就是dfs+bfs,bfs搜索当前方块可以与哪个快消,dfs暴力枚举先消哪个对。/*-------------------------------------------------------- Author:log

2016-04-15 23:07:58 494

原创 POJ 1324 BFS+状压

题目链接:http://poj.org/problem?id=1324模拟贪吃蛇行走到(1,1)方块的最短距离,有障碍物。错了2次,第一次内存超了,把队列改成stl的,第二次是有起点就是终点的数据。状态压缩思路:记录蛇头坐标,并记录下一个方块是在该方块的哪个方向,0,1,2,3分别对上,下,左,右。然后就可以bfs了。/*--------------------------

2016-04-15 20:54:57 279

原创 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 405

原创 linux下.vimrc配置

".vimrcset nuset tabstop=4set nobackupset rulerset autoindentset cindentset softtabstop=4set shiftwidth=4"插入文件头autocmd BufNewFile *.cpp exec ":call SetTitle()"func SetTitle()if &filetype

2016-04-13 19:43:52 277

原创 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 362

原创 POJ 1376(bfs)

简单bfs,预处理好图就可以了/*-------------------------------------------------------- Author:log Created Time:2016年04月09日 星期六 20时30分32秒-----------------------

2016-04-09 21:39:52 431

原创 POJ 1190(dfs剪枝)

题目大意:要求用m个圆柱构造构造m层的立体,要求该立体体积为n×pi,且外表面积最小。(其中每层的半径、高度都比下一层的要小)搜索减枝,dfs(r,h,v,d,s)表示当前的半径小于r,高度小于h,构造的体积v,构造的层m,已构造的外表面积。(ps:所有上底面相加就是最底层的圆面积)减枝,r和h一定不小于层数,如果当前已构造外表面积s+构造v最优外表面积>=当前最优解,则不需要再搜索。

2016-04-09 19:15:01 288

原创 后缀数组

下面的例子取自刘汝佳大白书。后缀数组是一个强力的字符串处理工具。首先定义后缀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 230

原创 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 194

原创 POJ 1151(线段树+扫描线)

CF上遇到一题扫描线,二话不说立刻补。

2015-12-30 20:14:23 300

原创 模式串匹配问题

问题描述:给出模板串P和文本串T有以下问题:1、模板串是否出现在文本串。2、文本串中出现模板串的所有位置。3、模板串在文本串出现的次数。对于上述的每个问题都可以逐个字符比较来找出答案。代码如下for(int i=0;i<len(T)-len(S);i++){    int j=0;    while(j<len(S))    {        if(T[i+

2015-12-23 21:36:46 544

原创 乘法逆元

乘法逆元:设ax≡1%b,则称x为a关于模b的乘法逆元。 Q:为什么要使用乘法逆元呢?A:假设要求(a/b)%c,a非常大(求出a的过程超出整型范围)无法直接求出值,所以希望可以想但是除法没有对应的模算术,所以出现了乘法逆元。证明:设bx≡1%c,则b*x=p*c+1得x=(p*c+1)/b把x带入(a*x)%c中,变为 [a*(p*c+1)/b]%c=[(a*

2015-11-02 22:26:34 269

原创 欧几里得算法

欧几里德算法:证明:gcd(a,b)=gcd(b,a%b)(a>b)(模算术(a+b)%c=(a%c+b%c)%c)因为a%b=a-k*b,显然式子中a和b的最大公约是gcd(a,b) 扩展欧几里德算法:求解ax+by=k*gcd(a,b)的整数解设:ax1+ by1= gcd(a,b)bx2+ (a%b)y2= gcd(b,a%b)因为gcd(a,b)=g

2015-11-02 22:10:48 326

原创 DirectX学习——数学基础(2)

矩阵的基本运用:矩阵的作用是对点和向量进行变换(例如平移之类的操作)DirectX使用4x4矩阵,因为通常在把向量和点扩展一维变成一个4D向量(最后一维分别为0或1,0是向量,1是点)因为最后一维为0则,平移矩阵对向量影响为0,联系平移矩阵的特点容易得出该结论。创建并使用4*4矩阵:#include #include #include int WINAPI

2015-10-16 22:16:35 335

原创 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 445

空空如也

空空如也

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

TA关注的人

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