
C/C++算法知识
相关知识
ling_wang
小白要奋斗~~~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最长回文子串——Manacher 算法
转载自:https://segmentfault.com/a/1190000003914228?_ea=1954301 我把该大牛中python的代码用c++实现了一遍。。。和原博客稍有不同。。。想看Python版的请点击上方链接(动态规划暂时不会还未改为c++,稍后再改) 0. 问题定义最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果一个字符串正着读和反着读是一样的,那...转载 2018-04-27 17:00:35 · 283 阅读 · 0 评论 -
博弈专题练习
ACM博弈知识总结原创 2018-07-31 15:31:37 · 636 阅读 · 0 评论 -
ACM博弈知识总结及相关例题
由于一直没接触博弈,我已经被博弈题坑了好几把了,所以有了这篇写给自己的学习历程 定义转载自: https://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html https://blog.csdn.net/qq_15714857/article/details/49691585博弈博弈:有若干堆物体(可以是火柴棍或是围...原创 2018-07-30 11:17:08 · 698 阅读 · 0 评论 -
hdu 1698 Just a Hook(区间修改)
In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. The hook is made up of several consecutive metallic sticks which are of the same length.Now Pudge w...原创 2018-08-16 10:12:16 · 995 阅读 · 0 评论 -
poj 2528 Mayor's posters(线段树+离散化)
The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign have been placing their electoral posters at all places at their whim. The city council has finally d...原创 2018-08-15 17:11:25 · 1032 阅读 · 0 评论 -
poj 3468 A Simple Problem with Integers (区间更新+区间查询)
You have N integers, A1, A2, … , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number in a given interval. The other is to ask for the su...原创 2018-08-13 20:05:34 · 685 阅读 · 0 评论 -
hdu 1754 I Hate It(单点更新+查询区间最大值)
很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input 本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和 M ( 0 < N<=200...原创 2018-08-13 19:21:26 · 556 阅读 · 0 评论 -
hdu1166 敌兵布阵(模板题 单点修改 + 区间查询)
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。 中央情报局要研究敌人究竟演习什么...原创 2018-08-13 15:53:50 · 706 阅读 · 0 评论 -
poj 1182 食物链(带权区间并查集)
动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这N个动物所构成的食物链关系进行描述: 第一种说法是”1 X Y”,表示X和Y是同类。 第二种说法是”2 X Y”,表示X吃Y。 此人对N个动物...原创 2018-08-09 15:07:56 · 564 阅读 · 0 评论 -
hdu 3038 How Many Answers Are Wrong(带权并查集)
TT and FF are … friends. Uh… very very good friends -__-bFF is a bad boy, he is always wooing TT to play the following game with him. This is a very humdrum game. To begin with, TT should write down...原创 2018-08-08 21:04:14 · 590 阅读 · 0 评论 -
poj 1611 The Suspects(并查集)
Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To minimize transmission to others, the best strategy is to s...原创 2018-08-08 15:38:47 · 862 阅读 · 0 评论 -
poj 2236 Wireless Network(并查集)
An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wireless network with the lap computers, but an unexpected aftershock attacked, all computers in the n...原创 2018-08-08 11:14:18 · 537 阅读 · 0 评论 -
hdu 1525 Euclid's Game(博弈 找规律)
Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, subtracts any positive multiple of the lesser of the two numbers from the greater of the two numbers, prov...原创 2018-07-31 10:24:27 · 216 阅读 · 0 评论 -
FZU 1686 神龙的难题(重复覆盖问题)
这是个剑与魔法的世界.英雄和魔物同在,动荡和安定并存.但总的来说,库尔特王国是个安宁的国家,人民安居乐业,魔物也比较少.但是.总有一些魔物不时会进入城市附近,干扰人民的生活.就要有一些人出来守护居民们不被魔物侵害.魔法使艾米莉就是这样的一个人.她骑着她的坐骑,神龙米格拉一起消灭干扰人类生存的魔物,维护王国的安定.艾米莉希望能够在损伤最小的前提下完成任务.每次战斗前,她都用时间停止魔法停住时间,然后...原创 2018-07-27 10:07:49 · 678 阅读 · 0 评论 -
zoj 3209 Treasure Map(dancing links 精准覆盖问题)
Your boss once had got many copies of a treasure map. Unfortunately, all the copies are now broken to many rectangular pieces, and what make it worse, he has lost some of the pieces. Luckily, it is po...原创 2018-07-26 20:18:08 · 423 阅读 · 0 评论 -
HDU 2295 Radar(dancin links 重复覆盖问题 +二分)
N cities of the Java Kingdom need to be covered by radars for being in a state of war. Since the kingdom has M radar stations but only K operators, we can at most operate K radars. All radars have the...原创 2018-07-26 20:00:25 · 341 阅读 · 0 评论 -
HDU - 4763 Theme Section(kmp)
It’s time for music! A lot of popular musicians are invited to join us in the music festival. Each of them will play one of their representative songs. To make the programs more interesting and challe...原创 2018-07-24 11:42:11 · 287 阅读 · 0 评论 -
hdu 4300 Clairewd’s message(扩展kmp)
Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important messages and she was preparing for sending it to ykwd. They had agreed that each letter of these mes...原创 2018-07-23 20:49:11 · 300 阅读 · 0 评论 -
hdu 2594 Simpsons’ Hidden Talents(kmp)
Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had.Marge: Yeah, what is it?Homer: Take me for example. I want to find out if I have a talent in politics,...原创 2018-07-23 14:46:55 · 244 阅读 · 0 评论 -
扩展kmp算法总结
转载自:https://segmentfault.com/a/1190000008663857问题定义:给定两个字符串S和T(长度分别为n和m),下标从0开始,定义extend[i]等于S[i]…S[n-1]与T的最长公共前缀的长度,求出所有的extend[i]。举个例子,看下表:i01234567Saaaaabbbextend[i]5...转载 2018-04-26 16:27:31 · 440 阅读 · 0 评论 -
用顺序栈实现十进制转二进制
//十进制转二进制#include<bits/stdc++.h>using namespace std;#define maxsize 1000struct Stack{ int *base; //栈底指针 int *top; //栈顶指针 int stacksize; //栈可用的最大容量};bool initstac...原创 2018-04-19 16:27:57 · 12223 阅读 · 0 评论 -
hdu3336 Count the string(kmp字符串比较)
It is well known that AekdyCoin is good at string problems as well as number theory problems. When given a string s, we can write down all the non-empty prefixes of this string. For example: s: “...原创 2018-01-20 21:39:53 · 303 阅读 · 0 评论 -
HDU1213 How Many Tables (并查集)
Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants to know how many tables he needs at least. You have to notice that not all the friends know each other, an原创 2017-12-02 21:38:04 · 172 阅读 · 0 评论 -
容斥原理
一.基础思想 先不考虑覆盖情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。二.公式 其实换句话就是变量个数为多少,就需要计算多少种容斥情况;每种中的项数为C(n, m); 当该种选择的变量个数为奇数时,符号为正,变量个数为偶数时,符号为负...原创 2018-05-28 21:11:03 · 457 阅读 · 0 评论 -
51nod 2 3 5 7的倍数(容斥原理 + 反向计算)
给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。 Input 输入1个数N(1 <= N <= 10^18)。 Output 输出不是2 3 5 7的倍数的数共有多少。 Sample Input10Sample Output1#include<bits/stdc++....原创 2018-05-28 20:43:43 · 388 阅读 · 0 评论 -
poj The Perfect Stall(二分图匹配)
The Perfect Stall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 27949 Accepted: 12335Description Farmer John completed his new barn just last week, complete with all the ...原创 2018-04-27 21:17:36 · 346 阅读 · 0 评论 -
最近公共祖先——Tarjan算法
首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 所以LCA主要是用来处理当两个点仅有唯一一条确定的最短路径时的路径。 有人可能会问:那他本身或者其父亲节点是否可以作为祖先节点呢?...转载 2018-04-11 20:30:27 · 986 阅读 · 1 评论 -
二分图大合集——二分图最大匹配(最小覆盖数),完美匹配以及最优匹配(带权最大匹配)
二分图:定义:二分图又称作二部图,是图论的一种特殊模型。设G=(V, E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A , B),且图中的每条边(i, j)所关联的两个定点分别属于这两个不同的顶点集(i in A, j in B),则称图G为一个二分图。简单的说,一个图被分成了两部分,相同的部分没有边,那这个图就是二分图,二分图是特殊的图。(不含奇环) 由定义可知,二分图没有自...原创 2018-04-06 09:01:51 · 50854 阅读 · 4 评论 -
全网最!详!细!tarjan算法讲解
转自:点击打开全网最详细tarjan算法讲解,我不敢说别的。反正其他tarjan算法讲解,我看了半天才看懂。我写的这个,读完一遍,发现原来tarjan这么简单!tarjan算法,一个关于 图的联通性的神奇算法。基于DFS(迪法师)算法,深度优先搜索一张有向图。!注意!是有向图。根据树,堆栈,打标记等种种神(che)奇(dan)方法来完成剖析一个图的工作。而图的联通性,就是任督二脉通...转载 2018-03-23 20:40:12 · 353 阅读 · 0 评论 -
链式前向星
链式前向星,一般使用建立边结构体来解决稀疏图时使用二维数组的浪费问题,在最小生成树中的Prim算法,SPFA,Tarjan等算法都有应用。1. 结构体数组edge存边, edge[i]表示第i条边 对于以下“边结构体”的代码struct Edge{ //ecnt为边的计数,从0或1开始记录 int v; //这条边指向的终点 int ne; /...原创 2018-01-24 21:33:23 · 553 阅读 · 0 评论 -
离散化详解
本来应该是很简单的东西,但是之前学长讲的时候也没怎么听,然后现在遇到需要离散化的题目就有点茫然了。看了下网上大佬们的博客,基本理解了,做个记录。 以下内容部分思路来自: https://blog.csdn.net/xiangaccepted/article/details/73276826 离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。这是百度...转载 2018-08-15 17:14:31 · 2424 阅读 · 0 评论 -
线段树详解
一.基本概念1.线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 (严格来说:二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点...原创 2018-08-12 18:44:56 · 7384 阅读 · 2 评论 -
五大常用算法:分治、动态规划、贪心、回溯和分支界定
转自:http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741374.html 转自:https://blog.csdn.net/yake827/article/details/52119469五大常用算法之一:分治算法一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两...转载 2018-08-10 11:51:40 · 902 阅读 · 0 评论 -
带权并查集之区间统计类和种类并查集
我们都知道普通并查集可以理解为查看集合间的关系和集合间的合并。 带权并查集不仅记录集合间关系,还记录集合内元素间的关系(元素间连线的权值)。带权并查集主要分为两类:区间统计类和种类并查集一.区间统计类例题.hdu 3038 How Many Answers Are Wronghttp://acm.hdu.edu.cn/showproblem.php?pid=3038 题意:...原创 2018-08-09 15:06:04 · 1109 阅读 · 0 评论 -
二进制枚举
如果某一事件情况只有两种,例如棋子翻转问题,除了黑就是白,那么我们就可以利用二进制来对事件的所有情况进行枚举。 通常我们设 1 为选取状态, 0 为未选取状态先介绍位运算: 位运算是对二进制的每一位进行计算,所以每一位只有 0或 1两种可能四种常用的位运算符:与&、或|、异或^, 按位取反~;与运算:两者都为 1时,结果即为1,否则为0。--有0出0或运算:两者都为 ...原创 2018-08-02 10:11:30 · 990 阅读 · 0 评论 -
dancing links(舞蹈链)——求解精准覆盖及重复覆盖问题
跳跃的舞者,舞蹈链(Dancing Links)算法——求解精确覆盖问题精确覆盖问题的定义:给定一个由0-1组成的矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个1例如:如下的矩阵就包含了这样一个集合(第1、4、5行)如何利用给定的矩阵求出相应的行的集合呢?我们采用回溯法矩阵1:先假定选择第1行,如下所示:如上图中所示,红色的那行是选中的一行,这一行...转载 2018-07-25 15:38:39 · 2565 阅读 · 0 评论 -
ACM常用的解题技巧:尺取法及相关例题
常用的解题技巧:尺取法尺取法:顾名思义,像尺子一样取一段,借用挑战书上面的话说,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后根据实际情况不断地推进区间左右端点以得出答案。之所以需要掌握这个技巧,是因为尺取法比直接暴力枚举区间效率高很多,尤其是数据量大的时候,所以尺取法是一种高效的枚举区间的方法,一般用于求取有一定限制的区间个数或最短的区间等等。当然任何技巧都存在其不足的地...转载 2018-06-07 19:12:36 · 1592 阅读 · 0 评论 -
C/C++ 之 fill ()的运用
fill()函数参数:fill(first,last,val); // first 为容器的首迭代器,last为容器的末迭代器,val为将要替换的值。举例:int a[200];fill(a, a+100, 1);注意: fill()中 ,它的原理是把那一块单元赋成指定的值,也就是说任何值都可以 memset(),则是将s所指向的某一块内存中的每个字节的内容全部设置为c...原创 2018-03-03 22:18:01 · 13581 阅读 · 3 评论 -
树状数组求逆序数
算法学习(二)——树状数组求逆序数 1、什么是逆序数?2、用树状数组求逆序数的总数 2.1该背景下树状数组的含义 2.2如何使用树状数组求逆序数总数 2.3 C++实现代码目录&n...转载 2018-02-23 11:26:08 · 618 阅读 · 2 评论 -
数据结构专题——线段树
线段树转载请注明出处,谢谢!http://blog.csdn.net/metalseed/article/details/8039326 持续更新中···一:线段树基本概念1:概述线段树,类似区间树,是一个完全二叉树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(lgN)!性质:...转载 2018-02-22 21:04:22 · 305 阅读 · 0 评论