自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 栈 & 队列 & 优先队列 & map & set & vector

栈 栈和队列相似但是不同,不同的是队列先进先出从末尾进排头出,栈像一个瓶子容器,从瓶口进,瓶口出,先进的在瓶底所以后出,所以栈的特点 先进后出,后进先出。然后下面讲用法和例题。 #include<stack> stack<char(可以是int等)> q(名字); q.push(a); //将a入栈 q.pop(); //将栈顶出栈 q.top(); ...

2019-04-12 20:55:06 143

原创 2019年蓝桥杯省赛B组题解(A,B,C,D,F,G)

A.选五个队员 每个人有五个分,别看成了一个人20个分… 答案 490 B.26进制 2019=22626+25*26+17; 答案 BYQ C.选三个数和为2019,且每个数不包括2,4 #include<stdio.h> #include <iostream> #include<stdio.h> #include<stdlib.h> #inclu...

2019-03-24 18:51:31 1748

转载 状压DP入门

状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴。 为了更好的理解状压dp,首先介绍位运算相关的知识。 1.’&amp;amp;amp;amp;amp;’符号,x&amp;amp;amp;amp;amp;y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。例如3(11)&amp;amp;amp;amp;amp;2(10)=2(10)。 2.’|’符号

2018-08-04 09:53:06 2014

原创 二分图匹配

匈牙利算法 bool finds(int x) //查找函数 { for(int i=1;i<=m;i++) { if(line[x][i] && !used[i]) { used[i]=1; if(nxt[i]==0 || finds(nxt[i])) {...

2019-04-14 18:18:50 130

原创 最小生成树

prim 题目: 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可以拥有不止一个城市了! 但是,问题也接踵而来——小Hi现在手上拥有N座城市,且已知这N座城市中任意两座城市之间建造道路所需要的费用,小Hi希望知道,最少花费多少就可以使得任意两座城市都可以通过所建造的道路互相到达(假设有A、B、C三座城市,只需要在AB之间和BC之间建造道路,那么AC之间也是可以通过这两...

2019-04-14 18:14:27 92

原创 线段树

线段树的基础操作主要有5个: 建树、单点查询、单点修改、区间查询、区间修改。 int n,p,a,b,m,x,y; long long ans; struct node { long long l,r,w,f; }tree[800001]; inline void build(int k,int ll,int rr)//建树 { tree[k].l=ll,tree[k].r=rr...

2019-04-13 19:50:59 108

原创 背包问题

背包问题万能板子 #include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> #include<algorithm> #include<iostream> #include<queue> #include<stack>...

2019-04-13 19:48:36 138

原创 DP

DP 开宝箱(简单DP) 题目: 你确定我是来开宝箱不是来比赛的吗??艾玛,这是哪,天啊,伦家竟然穿越了。 摆在眼前的是1个n*m(0< n<=100&&0< m<=100)的宝箱矩阵,而你就在这个矩阵的左上角也就是入口处。冲啊,开宝箱去,然而脚不听话啊,你的脚失去了向左走与向上走(方向是相对于整个地图,换句话说不是通过你脸的朝向来决定方向,你只能↓和→)的...

2019-04-13 19:42:50 205

原创 树状数组

int a[50010]; int n,i; int lowbit(int k) { return k&(-k); } void add(int k,int num)//将第K位加num { while(k<=n) { a[k]+=num; k+=lowbit(k); } } void sub(int k,int num)//将第K位减num { while(k...

2019-04-13 19:19:04 69

原创 KMP

1.掌握Next数组的意义:当前前缀和后缀最大匹配数。如abcab,为2. 2.掌握循环节:int len=tlen-Next[tlen]; const int N = 1000005; int Next[N]; int S[N], T[N];//母串 子串 int slen,tlen; void getNext() //求next数组 { int j, k; j = 0; k...

2019-04-12 21:21:53 76

原创 并查集

int pre[200005]; int finds(int k) { if(pre[k]==k)return k; return pre[k]=finds(pre[k]); } void join(int x,int y) { int fx=finds(x),fy=finds(y); if(fx!=fy) pre[fx ]=fy; }...

2019-04-12 21:17:13 87

原创 DFS & BFS

DFS int DFS(int t) { if(满足输出条件) { 输出解; } else { for(int i=1;i<=尝试方法数;i++) if(满足进一步搜索条件) { 为进一步搜索所需要的状态打上标记; ...

2019-04-12 21:08:38 158

原创 最短路

本文摘抄自https://blog.csdn.net/zezzezzez/article/details/70245548,略微修改加了一些自己的简单见解,方便自己看。 floyd算法 很简单也很好理解,但是时间复杂度很高,O(nnn)。 这种算法可以找多源最短路,想知道a点到b点最短路,只能加入中间点来缩短路径,比如a到b 加入中间点k a到k到b 那么我们可以这样判断,要知道i到j的最短路,我...

2019-03-06 15:26:08 86

原创 大数运算

大数加法 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; #include&lt;string.h&gt; #include&lt;queue&gt; #include&lt;algorithm&gt; #include&lt;iostream&g

2019-01-19 16:48:26 148

原创 三分法

我所理解的三分很简单,就是求极小值极大值。思想和二分差不多。板子如下。 double solve(double x) { // 计算函数值,即f(x) } double sanfen(double left, double right) { // 三分搜索,找到最优解(求函数最大值下的自变量值) double midl, midr; while (right-l...

2018-11-05 18:49:18 181

原创 求N的阶乘(n很大)

题目 t组数据输入n,求n的阶乘,结果mod 1e9+7。 代码 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; #include&lt;string.h&gt; #include&lt;algorithm&gt; #include&lt;iostream&gt; #define exp 1e-9 #d...

2018-11-04 17:28:39 666

原创 位运算

位运算需要注意的地方: 1.注意打括号 2. 1 &amp;amp;amp; (state&amp;amp;gt;&amp;amp;gt;i) 和 state &amp;amp;amp; ( 1&amp;amp;lt;&amp;amp;lt; i ) 还是有差别的。 前者的答案只有0和1,而后者的答案有0和可能的正数。判断的时候还是要注意下写法 3. 当前行是否相邻的判断条件是: state &amp;amp;amp; (state&am

2018-11-04 15:58:56 102

转载 Trie树

暂时没学懂,先把板子放这吧。 题意:给出一个字符串和S个单词组成的字典,问把这个字符串分解成若干单词的连接,总共有多少种?(单词可重复) 思路:令d[i]表示从字符i开始的字符串的分解方案数,则dans[i]=sum{dans[i+d[x]] | 单词x是S[i…len]的前缀}; #include&lt;iostream&gt; #include&lt;string&gt; #include&l...

2018-10-22 21:18:31 74

原创 最长回文串(马拉车算法)

#include&lt;iostream&gt; #include&lt;string.h&gt; #include&lt;algorithm&gt; using namespace std; char s[1000]; char s_new[2000]; int p[2000]; int Init() { int len = strlen(s); s_new[0]...

2018-10-21 20:29:31 120

原创 【模板】线性筛素数

#include&amp;lt;stdio.h&amp;gt; #include&amp;lt;stdlib.h&amp;gt; #include&amp;lt;math.h&amp;gt; #include&amp;lt;string.h&amp;gt; #include&amp;lt;algorithm&amp;gt; #include&amp;lt;iostream&amp;gt; #inclu

2018-08-21 17:03:19 121

原创 Shortest Prefixes(字典树)

题目: A prefix of a string is a substring starting at the beginning of the given string. The prefixes of “carbon” are: “c”, “ca”, “car”, “carb”, “carbo”, and “carbon”. Note that the empty string is...

2018-08-07 16:37:07 235

转载 字典树

一:插入 void insert()//插入单词s { len=strlen(s);//单词s的长度 root=0;//根节点编号为0 for(int i=0;i&lt;len;i++) { int id=s[i]-'a';//第二种编号 if(!trie[root][id])//如果之前没有从root到id的前缀 ...

2018-08-07 16:29:35 104

空空如也

空空如也

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

TA关注的人

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