知识点总结
文章平均质量分 81
zeng_jun_yv
title:
退役小曾
展开
-
算法:tips
ceil函数:返回大于或者等于指定表达式的最小整数floor函数:返回计算不大于给定值的最大整数#include<stdio.h>#include<math.h>int main(void){ double number=123.45; double down,up; down=floor(number); up=ceil(number); printf("originalnumber%5.2lf\n",number); pr原创 2021-07-14 14:47:18 · 86 阅读 · 0 评论 -
字符串相关
文章目录字符串基础字符串的存储标准库字符串匹配单串匹配多串匹配其他类型的字符串匹配问题字符串哈希Hash 的实现Hash 的分析与改进错误率多次询问子串哈希字符串基础字符串的存储使用 char 数组存储,用空字符 \0 表示字符串的结尾。(C 风格字符串)使用 C++ 标准库提供的 string 类。字符串常量可以用字符串字面值(用双引号括起来的字符串)表示。标准库C 标准库是在对字符数组进行操作:char[]/const char*代码作用strlen(const原创 2021-05-29 15:41:51 · 991 阅读 · 0 评论 -
搜索
DFS(搜索)DFS 为图论中的概念,中文名是深度优先搜索,是一种用于遍历或搜索树或图的算法。所谓深度优先,就是说每次都尝试向更深的节点走。在 搜索算法 中,该词常常指利用递归函数方便地实现暴力枚举的算法,与图论中的 DFS 算法有一定相似之处,但并不完全相同。#include<iostream>#include<algorithm>using namespace std;int a[]={1,2,3};int m;void Permutation(int k) //全原创 2021-05-14 09:32:56 · 423 阅读 · 3 评论 -
数据结构整理中。。。
栈作用函数方法作用定义栈Stack⟨char⟩s\left \langle char \right \rangle s⟨char⟩s定义一个char型的栈元素访问:s.top()返回栈顶容量:s.empty()返回是否为空s.size()返回堆的大小修改:s.push()插入传入的参数到栈顶s.pop()弹出栈顶括号匹配+Java栈队列作用函数方法作用定义栈queue⟨int⟩q\left \la原创 2021-05-11 18:01:59 · 283 阅读 · 1 评论 -
数据结构专题
Stackstack<int> s;s.push();//向栈顶添加元素s.pop();//从栈顶移除一个元素s.top();//返回栈顶元素s.empty();//判断堆栈是否为空s.size();//返回栈的大小单调栈:#include<stack>#include<vector>ll n,h,ans,th,tw,w;int main() { while(scanf("%lld",&n)) { if(!n)break; sta原创 2021-05-11 10:57:11 · 595 阅读 · 0 评论 -
动态规划专题
动态规划(Dynamic programming,简称 DP)通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指数增长时特别有用。严格意义上,动态规划只能用来解决最优化问题,但在 OI原创 2021-05-10 09:10:13 · 750 阅读 · 0 评论 -
数论相关
符号复数位运算快速幂进位制高精度计算平衡三进制数论多项式生成函数线性代数线性规划组合数学概率初步置换群斐波那契数列博弈论牛顿迭代法数值积分分段打表原创 2021-04-30 22:00:19 · 2744 阅读 · 1 评论 -
Markdown编译器插入公式的数学符号及字体颜色、背景
符号代码xax_{a}xax_{a}xabx\tfrac{a}{b}xbax\tfrac{a}{b}ab\frac{a}{b}ba\frac{a}{b}xabx_{a}^{b}xabx_{a}^{b}xab{x_{a}}^{b}xab{x_{a}}^{b}abC_{a}^{b}\textrm{C}abC_{a}^{b}\textrm{C}x\sqrt{x}x\sqrt{x}xn\sqrt[n]{x}nx\sqrt[...原创 2021-04-30 20:32:23 · 736 阅读 · 1 评论 -
2021—ICPC省赛冲刺
OI-wiki 知识点汇总算法基础数论计算几何逐步完善中。。。。原创 2021-04-28 15:47:32 · 791 阅读 · 0 评论 -
算法基础
枚举模拟递归$分治贪心排序前缀$查分二分倍增构造原创 2021-04-28 15:44:17 · 1042 阅读 · 0 评论 -
STL中vector建立最大堆和最小堆
1.堆的概念:堆是一种非线性结构,可以把堆看作一个数组,也可以被看作一个完全二叉树,通俗来讲堆其实就是利用完全二叉树的结构来维护的一维数组按照堆的特点可以把堆分为大顶堆和小顶堆大顶堆:每个结点的值都大于或等于其左右孩子结点的值小顶堆:每个结点的值都小于或等于其左右孩子结点的值(堆的这种特性非常的有用,堆常常被当做优先队列使用,因为可以快速的访问到“最重要”的元素)2.heap性质heap本质是用一个数组表示的完全二叉树,并且父节点总是大于(或者小于)子节点的值。在STL中用于实现优先队列(p原创 2021-04-21 15:40:00 · 1323 阅读 · 0 评论 -
备战ccpc分站赛:秦皇岛和威海站(数论模块和dp模块)
挑战程序设计竞赛(第2版)练习题1 . 记录结果再利用的“动态规划”基础的动态规划算法:POJ 3176 POJ 2229 POJ 2385 POJ 3616 POJ 3280优化递推关系式:POJ 1742 POJ 3046 POJ 3181需要稍加思考的题目:POJ 1065 POJ 1631 POJ 3666 POJ 2392 POJ 21842. 数学问题的解题窍门辗转相除法:Aizu 0005 POJ 2429 POJ 1930素数:Aizu 0009 POJ 3126 P原创 2020-10-05 20:49:05 · 501 阅读 · 0 评论 -
Power Network POJ - 1459(EK算法模板+详解)
题意:总共有a个节点,其中有发电站b个、用户c个和调度器a-b-c个三种节点,每个发电站有一个最大发电量,每个用户有个最大接受电量,现在有d条有向边,边有一个最大的流量代表,最多可以流出这么多电,现在从发电站发电到用户,问最多可以发多少电。题目:A power network consists of nodes (power stations, consumers and dispatch...原创 2020-04-23 21:45:39 · 215 阅读 · 0 评论 -
凸包算法知识总结
首先,什么是凸包?假设平面上有p0~p12共13个点,过某些点作一个多边形,使这个多边形能把所有点都“包”起来。当这个多边形是凸多边形的时候,我们就叫它“凸包”。处理何种问题:凸包可以看成在木板上钉许多钉子,用一根橡皮筋框住所有钉子所得到的多边形,最终能求得都由哪些钉子构成该凸包。如下图所示:然后,什么是凸包问题?我们把这些点放在二维坐标系里面,那么每个点都能用 (x,y) 来表示。现...原创 2020-04-16 22:05:42 · 880 阅读 · 0 评论 -
Pipe HDU - 2150(判断线段相交+向量叉乘线代详解)
题目:经过激烈的争夺,Lele终于把那块地从Yueyue的手里抢了回来。接下来,Lele要开始建造他的灌溉系统。通过咨询Lele的好友——化学系的TT,Lele决定在田里挖出N条沟渠,每条沟渠输送一种肥料。每条沟渠可以看作是一条折线,也就是一系列线段首尾连接而成(除了第一条线段开头和最后一条线段的结尾)。由于沟渠很细,你可以忽略掉它的宽度。由于不同的肥料之间混合会发生化学反应,所以修建的沟...原创 2020-04-13 22:03:40 · 724 阅读 · 0 评论 -
奔小康赚大钱 HDU - 2255( 二分图匹配KM算法详解)
笔者刷数模题的时候有一道题考到了“二分图最大权分配”,需要用到KM算法,但是书上对KM算法的介绍又臭又长,更何况有些同学“匈牙利算法”也没学过(由匈牙利数学家Edmonds提出),自然难以理解所谓的KM算法。本文旨在用通俗易懂的语言,向读者介绍匈牙利算法和KM算法。一、匈牙利算法匈牙利算法用于解决什么问题?匈牙利算法用于解决二分图的最大匹配问题。什么是二分图?我们不妨来考虑这...转载 2020-04-11 21:59:33 · 210 阅读 · 0 评论 -
并查集+基础知识点详解
并查集概念并查集单看名字大家也能猜到这个算法的作用,是用来对集合进行合并和查找操作并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。——来自百度百科就是将原本不一样的集合,但是由于某种关系有了联系,把他合并成同一个集合,就是实现一个这样的功能。基本操作并查集是一种非常简单的数据结构,(我是说它的算法实现简单)它主要涉及两个基本操作,分别...原创 2020-04-08 15:40:36 · 498 阅读 · 1 评论 -
2-SAT适定性(Satisfiability)问题知识点详解
首先我们考虑将2-SAT问题往图论的方向靠,我们发现每个点要么取0,要么取1。因此对于ai,我们建两个点2i−1与2i分别表示ai取0和1然后我们考虑建边来表示这些关系,我们令一条有向边的意义:x→y表示如果选择了x就必须选y那么我们可以举一些简单的例子来总结下连边的规律(用i′表示i的反面):i,j不能同时选:选了i就要选j′,选j就要选i′。故i→j′,j→i′。一般操作即为aixoraj=1i,j必须同时选:选了i就要选j,选j就要选i。故i→j,j→i。一般操作即为aixoraj=0原创 2020-04-04 21:04:02 · 2133 阅读 · 0 评论 -
Mayor's posters POJ - 2528 (离散化+线段树)
题意:在1~10000000这个区间中读取n个海报的区间信息,后面的海报会覆 盖前面的海报,问最后能看到几张海报.(本题是一道bug题下面会提)题目:The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign have been placing th...原创 2019-08-04 20:56:53 · 161 阅读 · 0 评论 -
A Simple Problem with Integers POJ - 3468(线段树+区间查询+区间修改+建树+懒惰标记模板)+(树状数组)
题意:有一个数组,有两种操作。1: Q a b 求[a,b]的和 2:C a b c 给[a,b] 的所有元素都加上c。题目:You haveNintegers,A1,A2, ... ,AN. You need to deal with two kinds of operations. One type of operation is to add some given nu...原创 2019-08-02 20:16:14 · 217 阅读 · 0 评论 -
C++中函数调用时的三种参数传递方式(x,*x,&x)
先看三种方式实现函数中参数传递的实例程序输入描述:两个待交换的整数 程序输出:交换后得按值传递两个整数 (一)按值传递:按值传递的过程为:首先计算出实参表达式的值,接着给对应的形参变量分配一个存储空间,该空间的大小等于该形参类型的,然后把以求出的实参表达式的值一一存入到形参变量分配的存储空间中,成为形参变量的初值,供被调用函数执行时使用。这种传递是把实参表达式的值传送给对应的形参变量,故称...原创 2019-08-08 14:27:18 · 2792 阅读 · 0 评论 -
拓展欧几里得小结(初级理解)
什么是拓展欧几里得?简单的说,就是求关于x,y的方程 ax + by = gcd(a,b) 的所有整数解现在我们令g = gcd(a,b)则方程变成了ax + by = g假如我们现在知道了关于这个方程的一个特解x0, y0,我们就可以用一种方法求出所有的整数解。说的比较模糊,现在整理一下。上面提到了两个问题一、怎么求出这个特解?二、怎么由特解推出其它的所有解?一、求特解我们知...原创 2019-08-12 17:50:08 · 201 阅读 · 0 评论 -
最长回文 HDU - 3068(求最长回文串的长度【马拉车算法Manacher】)
马拉车算法 Manacher‘s Algorithm 是用来查找一个字符串的最长回文子串的线性方法,由一个叫Manacher 的人在 1975 年发明的,这个方法的最大贡献是在于将时间复杂度提升到了线性dp[i] = ma > i ? min(dp[2 * mod - i], ma - i) : 1;可以这么说,这行要是理解了,那么马拉车算法基本上就没啥问题了,那么这一行代码拆开来看...原创 2019-08-16 19:08:38 · 200 阅读 · 0 评论 -
Seek the Name, Seek the Fame POJ - 2752 (理解KMP函数的失配)既是S的前缀又是S的后缀的子串
题意:给一个字符串S, 求出所有前缀pre,使得这个前缀也正好是S的后缀。 输出所有前缀的结束位置。就是求前缀和后缀相同的那个子串的长度 然后从小到大输出,主要利用next数组求解。例如 “ababcababababcabab”, 以下这些前缀也同时是S的后缀ab : 位置2abab : 位置4ababcabab : 位置9ababcababababcabab : ...原创 2019-08-22 19:34:44 · 349 阅读 · 0 评论 -
数位dp总结 之 从入门到模板(stO)
#转载自https://blog.csdn.net/wust_zzwh/article/details/52100392基础篇数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。所谓数位dp,字面意思就是在数位上进行dp咯。数位还算是比较好听的名字,数位的含义:一个数有个位、十位、百位、千位......数的每一位就是数位啦!之所以要引入数位的概念完全就...转载 2019-11-14 17:00:08 · 410 阅读 · 0 评论 -
RMQ算法讲解
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声...转载 2019-11-26 21:52:15 · 325 阅读 · 0 评论 -
Compound Words UVA - 10391(c++用法中substr函数用法+map实现)
题意:给出字典中一堆单词,单词的输入方式是以字典序输入的。问:在这一堆单词中,有那些单词是通过其它两个单词组合而来的。按字典序升序输出这些单词。题目:You are to find all the two-word compound words in a dictionary. A two-word compound word is aword in the dictionary that...原创 2020-02-28 21:27:27 · 397 阅读 · 0 评论 -
map的专项知识点总结
map的专项知识点总结标准库map类型是一种以键-值(key-value)存储的数据类型。以下分别从以下的几个方面总结:(1).map对象的定义和初始化(2).map对象的基本操作,主要包括添加元素,遍历等map为pair类型(先了解pair类型)(1)pair类型的定义和初始化pair类型是在有文件utility中定义的,pair类型包含了两个数据值,通常有以下的一些定义和初始化的一...原创 2020-03-06 21:56:11 · 672 阅读 · 0 评论 -
string函数知识点总结
标准c++中string类函数介绍之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。好了,进入正题………首...原创 2020-03-07 21:15:18 · 259 阅读 · 0 评论