
常用算法
Archger
Thanks for adventure.
展开
-
【DP_树形DP专题】题单总结
转载自 http://blog.youkuaiyun.com/woshi250hua/article/details/7644959#t2题单:http://vjudge.net/contest/123963#overview 树,一种十分优美的数据结构,因为它本身就具有的递归性,所以它和子树见能相互传递很多信息,还因为它作为被限制的图在上面可进行的操作更多,所以各种用于不同地方的树转载 2017-02-17 13:06:27 · 571 阅读 · 0 评论 -
用到qsort的一道题(+qsort模板)
用到qsort的一道题(+qsort模板)标签(空格分隔): STL qsort 排序 模板大致题意: 输入m个长度为n的DNA序列,把他们按照逆序数从小到大稳定排序输出。 PS:“稳定排序”就是当序列中出现A1==A2时,排序前后A1与A2的相对位置不发生改变。解题思路: 没难度,先求各个字符串的逆序数,再按逆序数对字符串快排,用qsort()函数。 虽然快排不是稳定的排序,但是只要在定义原创 2017-06-24 21:29:20 · 323 阅读 · 0 评论 -
二叉树遍历&构建
二叉树的遍历分为三类:前序遍历、中序遍历和后序遍历。(1)前序遍历先访问根节点,再遍历左子树,最后遍历右子树;并且在遍历左右子树时,仍需先遍历左子树,然后访问根节点,最后遍历右子树。 (2)中序遍历先遍历左子树、然后访问根节点,最后遍历右子树;并且在遍历左右子树的时候。仍然是先遍历左子树,然后访问根节点,最后遍历右子树。(3)后序遍历先遍历左子树,然后遍历右子树,最后访问根节点;同样,在遍历左右子原创 2016-07-09 14:28:58 · 567 阅读 · 0 评论 -
POJ 3974 Palindrome【manacher】【模板题】【模板】
PalindromeTime Limit: 15000MS Memory Limit: 65536KTotal Submissions: 9838 Accepted: 3724DescriptionAndy the smart computer science student was attending an algo原创 2017-08-16 22:09:23 · 459 阅读 · 0 评论 -
2017"百度之星"程序设计大赛 - 初赛(A)1005【打表】——HDU 6112
今夕何夕 Accepts: 1345 Submissions: 5533 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem Description今天是2017年8月6日,农历闰六月十五。小度独自凭栏原创 2017-08-12 16:43:48 · 1128 阅读 · 0 评论 -
ZOJ 3194 Coverage【贪心】【思维题】
CoverageTime Limit: 1 Second Memory Limit: 32768 KBGiven n points (xi, yi) (i = 1, 2 ... n) in a plane, where all xi will be distinct. After connecting the n points with staight lines i原创 2017-08-13 10:04:49 · 526 阅读 · 0 评论 -
HDU 6114 Chess【逆元+组合数】【模板题】
ChessTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 95 Accepted Submission(s): 72Problem Description車是中国象棋中的一种棋子,它能攻击同一行或同一列原创 2017-08-13 19:15:17 · 640 阅读 · 0 评论 -
KMP 算法(1):如何理解 KMP
转自:点击打开链接KMP 算法(1):如何理解 KMP2017 年 03 月 05 日 • 阅读: 6733 • 技术系列文章目录KMP 算法(1):如何理解 KMPKMP 算法(2):其细微之处一:背景展开目录给定一个主字符串(以 S 代替)和模式串(以 P 代替),要求找出 P 在 S 中出现的位置,即串的模式匹配问题。今天来介绍解决转载 2017-08-20 20:38:34 · 479 阅读 · 0 评论 -
【数论】——逆元
数论倒数,又称逆元(因为我说习惯逆元了,下面我都说逆元)数论中的倒数是有特别的意义滴你以为a的倒数在数论中还是1/a吗(・∀・)哼哼~天真 先来引入求余概念 (a + b) % p = (a%p + b%p) %p (对)(a - b) % p = (a%p - b%p) %p (对)(a * b) % p转载 2017-08-13 20:53:16 · 444 阅读 · 0 评论 -
HDU 6119 小小粉丝度度熊【线段合并+尺取法】(2017"百度之星"程序设计大赛 - 初赛(B))
小小粉丝度度熊Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 540 Accepted Submission(s): 164Problem Description度度熊喜欢着喵哈哈村的大明星——星星小姐原创 2017-08-13 21:58:25 · 424 阅读 · 0 评论 -
Tarjan 算法&模板
Tarjan 算法一.算法简介Tarjan 算法一种由Robert Tarjan提出的求解有向图强连通分量的算法,它能做到线性时间的复杂度。 我们定义:如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly con转载 2017-08-23 10:23:19 · 584 阅读 · 0 评论 -
bitset位集合容器
bitset位集合容器标签(空格分隔): STL bitset头文件#include<bitset>声明bitset<100> b表示声明一个100 bit位的容器方法b.count()b中位置为1的二进制为数b.set()将b中所有而二进制为置1b.reset()将b中所有二进制位置0b.flip()将b中所有二进制位反转b[pos]b中pos位置的二进制位b.size()b的大小b.set(原创 2017-06-24 21:28:37 · 470 阅读 · 0 评论 -
最小生成树Prim算法理解
最小生成树Prim算法理解标签(空格分隔): 最小生成树 图论 PrimMST(Minimum Spanning Tree,最小生成树)问题有两种通用的解法,Prim算法就是其中之一,它是从点的方面考虑构建一颗MST,大致思想是:设图G顶点集合为U,首先任意选择图G中的一点作为起始点a,将该点加入集合V,再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小,此时将b点也加入集合V;以此类推,原创 2017-06-24 21:27:50 · 295 阅读 · 0 评论 -
常用的STL查找算法
查找有三种,即点线面:点就是查找目标为单个元素; 线就是查找目标为区间; 面就是查找目标为集合;针对每个类别的查找,默认的比较函数是相等,为了满足更丰富的需求,算法也都提供了自定义比较函数的版本;单个元素查找find() 比较条件为相等的查找find()从给定区间中查找单个元素,定义:template int myints[] = { 10, 20, 30, 40 };std::vecto原创 2017-03-02 10:03:39 · 437 阅读 · 0 评论 -
树形dp
多角度思考 创造性思维—-运用树型动态规划的解题思路和方法的探析摘要在近几年信息学竞赛中,需要运用树型动态规划解决的问题频繁出现,这些问题变化繁多、各类思想精华渗透其中,对选手分析问题的能力和解题创造性思维有着较高的要求,因此它在竞赛中占据了重要地位。本文将分析近几年国际比赛、全国比赛中的树型动态规划问题,重点探讨几种树型动态规划问题的解法,并从这些问题的分析过程中,提炼出解决这类问题的思想方法——原创 2017-03-02 10:06:35 · 472 阅读 · 0 评论 -
组合数【模板】
直接求模板:int long long C[N][N];void get_C(int maxn){ C[0][0] = 1; for(int i=1;i<=maxn;i++) { C[i][0] = 1; for(int j=1;j<=i;j++) C[i][j] = (C[i-1][j]+C[i-1][j-1]原创 2017-06-28 21:18:19 · 356 阅读 · 0 评论 -
最短路算法包
最短路算法包标签: ACM 最短路#include<iostream>#include<string>#include<string.h>#include<algorithm>#include<iomanip>#include<cstdio>#include<queue>#include<stack> #include<vector>#include<functional>原创 2017-06-24 21:06:46 · 349 阅读 · 0 评论 -
树形dp
树形dp标签: ACM dp 树形dp 论文 动态规划 树结构多角度思考 创造性思维—-运用树型动态规划的解题思路和方法的探析摘要在近几年信息学竞赛中,需要运用树型动态规划解决的问题频繁出现,这些问题变化繁多、各类思想精华渗透其中,对选手分析问题的能力和解题创造性思维有着较高的要求,因此它在竞赛中占据了重要地位。本文将分析近几年国际比赛、全国比赛中的树型动态规划问题,重点探讨几种树型动态规划问题的解原创 2017-06-24 21:08:15 · 649 阅读 · 0 评论 -
背包问题总结
背包问题总结标签: ACM dp 背包0-1背包描述:nn物品,一个背包,每个物品价值WiW_i体积ViV_i背包容量CC,求最大价值特点:对于物品ii可选可不选解决方法:Fi[j] = Fi-1[j] (Vi>j>=0) Fi[j] = max{ Fi-1[j] , Fi-1[j-Vi]+Wi } (C>=j>=Vi)完全背包描述:给定 nn 种物品和一个背包。第 ii 种物品的价值是 WiW_原创 2017-06-24 21:09:02 · 334 阅读 · 0 评论 -
D(背)P(包)专题
D(背)P(包)专题标签(空格分隔): ACM DP 干货 ShengRang && Thea.R 2016.07.11D背P包专题01背包POJ 2923 RelocationDescriptionSample InputSample原创 2017-06-24 21:14:02 · 504 阅读 · 0 评论 -
干货
干货标签(空格分隔): ACM 汇总 干货图的连通性问题计算几何:半平面交DP背包问题原创 2017-06-24 21:17:30 · 468 阅读 · 0 评论 -
最短路
最短路标签(空格分隔): ACM 最短路 图论最短路Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 28761 Accepted Submission(s): 12444Problem Description在每年的校赛里,所有原创 2017-06-24 21:18:49 · 410 阅读 · 0 评论 -
C++优先队列详解
C++优先队列详解标签(空格分隔): ACM STL 优先队列 priority_queue优先队列:顾名思义,首先它是一个队列,但是它强调了“优先”二字,所以,已经不能算是一般意义上的队列了,它的“优先”意指取队首元素时,有一定的选择性,即根据元素的属性选择某一项值最优的出队~ 百度百科上这样描述的: 优先级队列 是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素原创 2017-06-24 21:19:26 · 4753 阅读 · 0 评论 -
vector 数组的用法
vector 数组的用法标签(空格分隔): vector STL C++ ACM STL标准模板库提供三种类型的组件:容器,迭代器和算法,他们都支持泛型程序设计标准; 容器主要分为两大类:顺序容器和关联容器。顺序容器有:(vector,list,deque和string等)是一系列元素的有序集合。关联容器:(set, multiset,map, multimap)包含查找元素的键值;迭代器的原创 2017-06-24 21:20:48 · 7069 阅读 · 0 评论 -
背包九讲
转载:dd_engi 的背包九讲目录第一讲 01背包问题第二讲 完全背包问题第三讲 多重背包问题第四讲 混合三种背包问题第五讲 二维费用的背包问题第六讲 分组的背包问题第七讲 有依赖的背包问题第八讲 泛化物品第九讲 背包问题问法的变化附:USACO中的背包问题前言本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作计划的一部分,这个计划的内容是写作一份较为完善的NOIP难度的动态规划总结,...转载 2018-04-02 16:27:33 · 274 阅读 · 0 评论