- 博客(51)
- 收藏
- 关注
转载 费马小定理
转载自:http://www.xieguofang.cn/Maths/Number_Theory/Fermat%27s_Little_Theorem_1.htm#cj2神奇的费马小定理 (1) ——从实验、观察、发现到猜想和证明 谢国芳(Roy Xie) Email: roixie@163.com
2017-07-29 12:07:19 1651
转载 LCT
转载:http://blog.csdn.net/jeremygjy/article/details/51078087引入现在我们需要一个数据结构满足支持以下的操作:两个节点连接(保证不出现环)两个节点断开求任意两个节点之间的区间和这样是不是很像树链剖分? 但是因为是动态的所以我们采用动态树来进行维护。样例现在给出一个样例,我们一下的解释都以当前样例为
2017-07-27 15:49:55 363
转载 splay讲解
转载自:http://blog.csdn.net/clove_unique/article/details/50630280首先声明:万分感谢gty大哥的帮助!这年头能找到简单易懂的数组版平衡树模板只能靠学长了!变量声明:f[i]表示i的父结点,ch[i][0]表示i的左儿子,ch[i][1]表示i的右儿子,key[i]表示i的关键字(即结点i代表的那个数字),cn
2017-07-27 15:48:44 418
转载 manacher算法求解最长回文字串
转载自:http://blog.csdn.net/yzl_rex/article/details/7908259回文串定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。经常有一些题目围绕回文子串进行讨论,比如POJ3974最长回文,求最长回文子串的长度。朴素算法
2017-07-19 07:05:18 409
转载 数位DP讲解
转载自:http://www.cnblogs.com/itlqs/p/5935308.html数位DP其实是很灵活的,所以一定不要奢求一篇文章就会遍所有数位DP的题,这一篇只能是讲清楚一种情况,其他情况遇到再总结,在不断总结中慢慢体会这个思想,以后说不定就能达到一看到题目就能灵活运用的水平。(其实DP都是这样……) 这一篇要说的数位DP是一道最简单的数位DP:htt
2017-07-18 14:52:05 10644 20
转载 数位DP
转载自:http://blog.csdn.net/wust_zzwh/article/details/52100392基础篇数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!
2017-07-18 14:50:48 949
转载 插头DP
转载自:http://blog.csdn.net/sf____/article/details/15026397最近两周一直在刷DP题,前几天接触了插头DP。说实话,直接做“入门”题Ural 1519 Formula 1难度略大,而网上也没有个由浅入深的题表和教程。故总结了一下最近做的、适合作为插头DP专题入门题的题目,专心写一篇博客。大牛见笑。 学习插头DP前,
2017-07-18 14:47:37 678
转载 状态压缩DP
转载自:http://blog.csdn.net/accry/article/details/6607703动态规划本来就很抽象,状态的设定和状态的转移都不好把握,而状态压缩的动态规划解决的就是那种状态很多,不容易用一般的方法表示的动态规划问题,这个就更加的难于把握了。难点在于以下几个方面:状态怎么压缩?压缩后怎么表示?怎么转移?是否具有最优子结构?是否满足后效性?涉及到一些位
2017-07-18 14:45:48 401
转载 Splay算法
转载自:http://blog.csdn.net/ric_shooter/article/details/20636487这是我的第一篇博文,由于被splay坑得太惨,所以毅然决定以此开博。 蜘蛛快来:伸展树解释splay的文章满大街都是,但用pascal的毕竟少,所以这是用pascal代码来解释的(C++代码在最后) 知道BST的请自动跳到
2017-07-18 14:18:55 1354
转载 Splay
首先声明,本教程的对象是完全没有接触过splay的OIer,大牛请右上角。。PS:若代码有误,请尽快与本人联系,我会尽快改正首先引入一下splay的概念,他的中文名是伸展树,意思差不多就是可以随意翻转的二叉树PS:百度百科中伸展树读作:BoGang,不知道是不是因为和某位大牛有关系先看一道题目:skydec有n个数,每次他都会把一些数放进一些盒子里,由于sk
2017-07-18 14:17:53 495 1
转载 LCT问题
Update on 2017/4/17 多坑慎入…… 这篇文章不仅没有讲什么虚实边,作者还是个智障。 大家如果要看的话建议先去参考其他人的TAT 窝理解清楚再补。。。QAQ这次不是在很多人的帮助下……而是自己调的代码、、、 略微看了看自己LCT掉进去的几个坑、、、 略微介绍一下: LCT的类似于树链剖分,只不过树链剖分是静态的,而LCT是动态的。 LCT
2017-07-18 14:16:20 773
转载 link-cut tree
转载自:http://www.cnblogs.com/BLADEVIL/p/3510997.htmlBLADEVILHis judgement cometh and that right soon.动态树之LCT(link-cut tree)讲解 动态树是一类要求维护森林的连通性的题的总称,这类问题要求维护某个点到根的某些数据,支持树的切分,合并,
2017-07-18 14:14:05 277
原创 vijos1193扫雷
题目地址:https://vijos.org/p/1193只能说一道非常好的题。这道题的dp递推非常有意思,我还是看了题解明白的,要让我自己想,肯定想不出来orz。f[i][j][k]表示前i个数,j表示下一行有没有雷,k表示这一行有没有雷的方案数。那么递推式有非常的多,就看程序:#include#define ll long long#define st stri
2017-07-07 09:34:46 292
原创 2017-7-4近期总结
近期每天刷的还是noip上下的难度的题,效率比从前提高不少。一天大概都是6道题左右的样子,我还是比较满意的。但是昨天跟贾老师聊完后我觉得确实应该把近期学习的东西进行总结,期间找到的感觉也写下来,要不然都忘了可不是很好^ _ ^这段时间我刷的最多的应该是DP题,我能感觉到我的DP能力提升了不少。在做DP的时候,我习惯先确定有几层循环,分别对应什么。然后不管空间,先写出数组,然后再
2017-07-05 10:10:05 367 1
原创 vijos1023 Victoria的舞会3
这道题我用的是floyd预处理,并查集的思想。虽然实现很简单,但是有很多细节问题还是值得认真研究的。https://www.vijos.org/p/1023先上一下我之前错的代码://#include#include#include#include#include#include#include#include#include#include#include#
2017-07-04 10:37:05 362
原创 vijos1698单轨纵帆船
初看这道题,不过是一道非常非常非常不仅辣鸡而且朴实无华的大水题。直接模拟就可以搞定!!!qwq我还wa了两次#include#define ll long long#define st string#define mem(x) memset(x,0,sizeof(x))using namespace std;const int INF=1e9;bool check(int a
2017-07-03 15:15:53 640
原创 高斯消元
高斯消元这种高深的数学内容,想我这种oi方面数学最弱的蒟蒻就不要瞎搞事情了。直接上一个博客:http://www.cnblogs.com/Robert-Yuan/p/4621481.html这个博客还没有看懂(2017-7-3 14:30)然后来一个贾老师给的材料的来源:http://jingyan.baidu.com/article/39810a23e40c80b636fda
2017-07-03 14:31:29 271
原创 vijos1428贪婪的格尔曼
题目链接:https://vijos.org/p/1428这道题其实是非常简单的,就是一个背包的变形。f[i][j]为小的叫i下,大的叫j下的最小价格。那么转移方程非常好写,具体看代码。#include#define ll long long#define st string#define mem(x) memset(x,0,sizeof(x))using namespa
2017-07-03 10:48:30 529
转载 dancing links(舞蹈链)
转载自:http://www.cnblogs.com/grenet/p/3145800.html精确覆盖问题的定义:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个1例如:如下的矩阵就包含了这样一个集合(第1、4、5行) 如何利用给定的矩阵求出相应的行的集合呢?我们采用回溯法 矩阵1:
2017-06-27 13:38:06 645
原创 八数码问题
大前天lxt把八数码问题给我们留成了作业。https://vijos.org/p/1360还记得大概半年前我第一次接触这道题,当时基本功很差,完全看不懂。大前天下午写完vijos1205之后写了一下八数码,可以说思路跟标程是完全一样的,都用了一个小技巧:zerox,zeroy.包括在转移的时候,也是很简单:x[newzerox][newzeroy]=x[zerox][zer
2017-06-27 12:15:23 416
原创 vijos1441 打鼹鼠
今天看到一道非常好的题,vijos1441 打鼹鼠。https://vijos.org/p/1441开始智障的想了一个n^3的大DP,就是第i时刻,处在j行,k列。n其实很简单:f[i]表示第i时刻打到的最多鼹鼠,然后…… 然后就没了。
2017-06-27 11:04:35 418
转载 图的计数
本文没有内容,只有:https://wenku.baidu.com/view/7d370476f242336c1eb95e21.html###
2017-06-25 10:36:13 446
转载 数位DP
转载自:http://blog.csdn.net/wust_zzwh/article/details/52100392基础篇数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!之所以要引入
2017-06-25 09:11:10 333
转载 判断一个图是否为二分图
转载自:http://blog.csdn.net/joy_go/article/details/8567069怎样判断一个图是否为二分图?很简单,用染色法,即从其中一个顶点开始,将跟它邻接的点染成与其不同的颜色,如果邻接的点有相同颜色的,则说明不是二分图,每次用bfs遍历即可。[cpp] view plain copy#inc
2017-06-25 08:49:15 11995
原创 汉诺塔通项公式证明
汉诺塔通项公式汉诺塔问题家传户晓,其问题背景不做详述,此处重点讲解在有3根柱子的情况下,汉诺塔问题求解的通项公式的推导。问题背景:有A,B和C三根柱子,开始时n个大小互异的圆盘从小到大叠放在A柱上,现要将所有圆盘从A移到C,在移动过程中始终保持小盘在大盘之上。求移动盘子次数的最小值。变量设置:n为圆盘个数,H(k)为n=k时移动盘子次数的最小值。递推公式: H(k)=2H(k-1)+1。通项公式:
2017-06-23 21:18:45 2027
转载 2-sat问题
本文转载自http://blog.csdn.net/jarjingx/article/details/8521690序言 最近花了一点心思研究2-sat模型,看了很多论文博客等等,也在POJ上做了一点题。其实这个东西也还挺好玩的,当然,前提是每道题你都有认真分析,认真想清楚模型的意义,搞明白为什么可以这样,而不是简单的知道怎样做,就套上一个模板
2017-06-03 15:46:49 349
原创 AC自动机-理解
勉强看了一遍飘过的小牛的博客,稍微对AC自动机有了点理解。看完博客,第一感觉就是想要理解他是怎么做的非常难,可以说比学习KMP的时候还要难(我已经学了KMP,trie树,trie树模版真心简单),但是能感觉到,实现非常复杂,但是看懂了AC自动机是什么意思之后,就非常简单了。(我只是对模版的理解)整体来讲,AC自动机可以说用的是trie树这个数据结构,KMP算法的思想。首先,构造一个tr
2017-05-29 19:47:56 423
转载 AC自动机
转载自http://blog.csdn.net/niushuai666/article/details/7002823AC自动机简介: 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自
2017-05-29 19:33:31 410
转载 KMP算法
转载自http://blog.csdn.net/u011564456/article/details/20862555?utm_source=tuicool&utm_medium=referral如果你看不懂KMP算法,那就看一看这篇文章(绝对原创,绝对通俗易懂) KMP算法,俗称“看毛片”算法,是字符串匹配中的很强大的一个算法,不过,对于初学者来说,要弄懂它确实不
2017-05-29 19:00:28 322
转载 trie树
转载自http://blog.csdn.net/hackbuteer1/article/details/7964147一、知识简介 最近在看字符串算法了,其中字典树、AC自动机和后缀树的应用是最广泛的了,下面将会重点介绍下这几个算法的应用。 字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟 Java 的 HashMap 功能相同,都是 key-
2017-05-29 14:52:40 301 1
转载 埃及分数问题-IDDFS
本文转自http://blog.csdn.net/u014800748/article/details/47376435迭代加深搜索(IDDFS)的思想迭代加深搜索一般用来求解状态树“非常深”,甚至深度可能趋于无穷,但是“目标状态浅”的问题。如果用普通的DFS去求解,往往效率不够高。此时我们可以对DFS进行一些改进。最直观的一种办法是增加一个搜索的最大深度限制maxd,一般是从1开
2017-05-25 21:03:59 1697
原创 关于A*算法
看完了A* 算法的讲解,总结出来就是求F=G+H 然后直接dfs就完了。我入门完全是看的这篇文章 http://www.360doc.com/content/16/1201/12/99071_610999046.shtml这里面有很多很好的扩展,可惜该死的360doc不让我点进去……需要登陆……我发现A* 算法的思想用途其实很广:第k短路,据说A* + Dijkstra也是
2017-05-25 21:00:31 468
转载 迭代加深、IDDFS解决埃及分数问题
http://blog.csdn.net/u014800748/article/details/47376435迭代加深搜索(IDDFS)的思想迭代加深搜索一般用来求解状态树“非常深”,甚至深度可能趋于无穷,但是“目标状态浅”的问题。如果用普通的DFS去求解,往往效率不够高。此时我们可以对DFS进行一些改进。最直观的一种办法是增加一个搜索的最大深度限制maxd,一般是从1开始。
2017-05-24 15:38:52 518
原创 2017-4-15
tarjan算法模版#include using namespace std; int DFN[105]; //记录在做dfs时节点的搜索次序 int low[105]; //记录节点能够找到的最先访问的祖先的记号 int count=1;
2017-04-15 10:58:07 256
原创 2017-4-12 最小生成树
今天上午做了做特殊的排序题,基本上都是非常简单的模拟,没什么可说的,可能也就是积累积累经验了。下午跟liujianren做了一套noip的模拟题。我的直观感觉就是根本不想普及组水平的题,难死了,我竟然什么都不会。好不容易有一道会的,结果忘开long long直接爆int拿了60分。我做的是f/80/c++/day6里的普及组。第一题就是bfs,本来比较简单,结果当时没调出来,0分。
2017-04-12 16:39:57 319
原创 2017-3-17 vijos1844一道坑爹的贪心
刚读完题的时候我完全是蒙了的状态,在观摩了刘。。的代码之后,我依旧觉得不太对,但是我有了一点思路。随后,我写出来了一个思路完全不一样的代码#include#define ll long long#define st stringusing namespace std;int a[100005];int main(){ memset(a,0,sizeof(a)); int n;
2017-03-17 13:35:07 302
转载 线段树题目
转载自:http://blog.csdn.net/yrhsilence/article/details/5793699这几天陆陆续续更新了下边几道我所能找到得具有一些代表性的线段树题目从最最简单的区间求和到对区间的各种操作都包涵在这些题目里了相信对一些准备学习线段树的人有一定得帮助突然发现自己对数据结构的题目非常有感觉,所以在刷下边的题的同时也生出灵感出了好几道线段
2017-03-17 13:19:11 379
原创 2017-3-11 近期总结
最近我感觉其实相比假期实力提升了不少:假期的时候我写的总结说是最近要练一段dp,可以说完成的还不错吧。先从vijos上面刷了一些题,然后回头来做老师给的dp百题,也做了不少。然后学了一些其它东西:(按时间顺序排序)并查集,树状数组,线段树,记忆画搜索,kmp,邻接矩阵,最短路径算法。看并查集的时候还看了看堆,但是并没有看懂,也就没看。现在主要写一写详细的题目,感受:
2017-03-11 17:04:04 456 1
转载 并查集经典题目
还是先看两道题:试题描述俗话说得好,敌人的敌人就是朋友。现在有n个人,编号1至n,初始互不相识。接下来有m个操作,操作分为两种:(1)检查x号和y号是否是朋友,若不是,则变成敌人(2)询问x号的朋友有多少个请你针对每个操作中的询问给出回答。输入第一行两个正整数n、m,表示人的数量和操作的数量。接下来
2017-03-03 09:26:47 3297
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人