自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 期望DP入门(p1850换教室)

第一个,期望dp所有的情况一定要考虑好,每个现状态都由前一个状态转移而来,所以无论是前一个状态通过怎样的方式,两状态的起点终点如何,都应加在一起。此题关系到前一个是否成功和后一个是否成功,分别为i-1决定换教室,i决定换教室时 (i-1成功换教室+i失败换教室) (i-1成功换教室+i成功换教室)(i-1失败换教室+i失败换教室) (i-1失败换教室+i成功换教室)...

2019-08-19 16:50:00 104

转载 P2858 [USACO06FEB]奶牛零食Treats for the Cows

区间dp,,,我不会啊,,dp好久没做了。区间dp是用来处理相邻合并继承的问题的,例如本题,相邻是条件。f[i][j]中i,j一般是区间左右端点。可以表示还剩这个区间时最大价值(例如本题),所以最后列举的是长度为一的区间。但大多数是表示此区间已处理时的最大值。一般一维循环枚举len长度,一维枚举左端点,手算右端点。也可以枚举左右端点。#include <iostre...

2019-08-11 18:13:00 120

转载 2019 CCF夏令营 day 2

堆,并查集,加权并查集,树链剖分(重链,长链),lca。堆单次严格o(lgn)插入、删除最小(最大)的数字,o(1)询问最小(最大)的数字,实践中一个点常用x*2,x*2+1,x/2代表其左右儿子和父亲。删除任意数字除了插入/删除堆顶,还要实现删除堆中任意数字(要保证其一定在堆中)用一个堆来维护需要删除的数字,每次取堆顶时看看这个元素是否被删除了即可。堆排序 ...

2019-08-11 15:14:00 160

转载 2019 CCF夏令营 day 1

来这里第一天表示非常的懵逼。然后发觉ckw讲的线性数据结构非常的难。关于栈和队列1.双端队列的用法deque <int> de;de.push_back(x);de.push_front(x);de.pop()_back;de.pop()_front;de.back();de.front();de.empty();2.关于括号序列的...

2019-08-02 22:30:00 127

转载 双向存图解题

P1629邮递员送信P1342请柬P1821[USACO07FEB]银牛派对Silver Cow Party都是求的往返的最大,最小路径,用堆优化的dijkstra跑两遍就行,都是板子题银牛派对的代码:#include <iostream>#include <cstdio>#include <cstring>...

2019-07-19 20:47:00 64

转载 P3952 时间复杂度

#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;string tmp,b,a;int xu,e,circle,flag,stop,l[27],g[100002],h,t,...

2019-07-19 18:07:00 90

转载 P1347 排序(拓扑排序)

这个题是我照着题解一点点理解一点点打出来的。拓扑排序:定义:将有向图中的顶点以线性方式进行排序。即对于任何连接自顶点u到顶点v的有向边uv,在最后的排序结果中,顶点u总是在顶点v的前面。确定一个图的拓扑排序是基于bfs的,bfs是基于队列的。首先记录所有的点和所有点的入度(在连边时顺便求得的入度),   if(vis[aa]!=1) vis[aa]=1,tot++...

2019-07-17 20:11:00 178

转载 强连通分量+Tarjia+缩点

Tarjan貌似跟Hopcroft都是Cornell的大神。总的来说, Tarjan算法基于一个观察,即:同处于一个SCC中的结点必然构成DFS树的一棵子树。 我们要找SCC,就得找到它在DFS树上的根。那么怎么找呢?考虑一下,如果DFS访问到了某个结点u,又顺着u来到了结点v, 但从v发出了一条反向边,指向了u的前驱w,那根据DFS的性质, u->v->w->...

2019-07-17 09:55:00 70

转载 次小生成树

次小生成树,就是求除了最小生成树之外最小的那个生成树。下面介绍一下利用prim求次小生成树的主要步骤。1.先求出来最小生成树。并将最小生成树任意两点之间路径当中的权值最大的那一条找出来,为什么要找最大的呢,因为生成树加入一条边之后一定构成了回路,那么肯定要去掉这个回路当中一条边才是生成树,那么,怎么去边才是次小的,那就去掉除了刚刚添加的一条边之外回路当中权值最大的一个,所以留下的...

2019-07-17 08:54:00 115

转载 差分约束

以下转自:dalao差分约束系统有两种方式可以求解,最短路和最长路。当我们把不等式整理成d[a]+w<=d[b]时,我们求最长路。整理成d[a]+w>=d[b]时,我们求最短路。当求最短路时,我们通常要把各点距离初始化为正无穷,求最短路,把各点距离逐渐减小,直到符合所有不等式。也就是开始 各点不符合条件,后来通过减小变得符合了,所以一定是符合条件的最大值。既然是...

2019-07-17 08:32:00 60

转载 P1547 Out of Hay

一个直接用并查集求最小生成树的板子题#include <iostream>#include <cstdio>#include <algorithm>using namespace std;struct llo{ int a,b,c;} e[20003];int f[2003],n,m,tot,maxn;...

2019-07-16 20:52:00 76

转载 P1197 [JSOI2008]星球大战

这道题跟猴子那道题差不多,挺简单的一个倒序并查集,变拆为建,把被毁的做标记,每个点可连的边也记录下来,先把能连的都连起来,然后从最后一个被毁的星球开始连可以连的边(指此时对方星球未被摧毁)作为下一个被毁星球重建的基础。细节比较多。#include <iostream>#include <cstdio>#include <vector&gt...

2019-07-16 17:19:00 99

转载 P1955 [NOI2015]程序自动分析

并查集+离散化,可惜我不会离散化。然后我就学了学哈哈哈哈哈哈哈又会了点新东西。用map做映射(虽然并不懂为什么用map)把所有的数都换到一个数组里去,然后手动去重(if(cnt[i]!=cnt[i-1]) Map[cnt[i]]=++sum;),放进map里去。然后在做的时候就可以只用映射的数来并查集了。inf[i].a=Map[inf[i].a];inf[i]....

2019-07-16 14:48:00 102

转载 P1516 【青蛙的约会】

真的不是我懒啊啊啊,只是人家写的太好了。讲的扩欧的应用,题不算难(虽然我还是不会)dalao一点小坑就是负数的替换,花姐写的很清楚了,为的是让kw+lz=s的各符号成立,还有就是最后%l/ans不是很好理解。实际上是找的一个素数(即b/gcd(,)与x的关系),列出了同余方程思路出不来时就÷gcd(a,b),同余方程转二元方程,二元方程转同余方程,拿两个右侧值相同的式...

2019-07-15 22:18:00 104

转载 P4777 【模板】扩展中国剩余定理(EXCRT)

浪费我好多时间因为没找着一篇好的教程嘤嘤嘤推荐一位大神的博客(是真的厉害):dalao以下是c++版本的程序#include <iostream>#include <cstdio>#define ll __int128 using namespace std;ll C1,C2,M1,M2,C[1000002],M[1000002...

2019-07-15 19:00:00 92

转载 p3087卢卡斯定理

数论的卢卡斯,据说可以只记结论啦啦啦啦。(反正我也不会~)实际上也是好几个知识点的集合吧。1。快速幂ll pow(ll x,int y,int p){ ll ans=1; x%=p; for(int i=y;i;i>>=1,x=x*x%p) if(i&1) ans=ans*x%p; return ans;}2。组合数求法...

2019-07-15 14:30:00 110

转载 p1044 栈

今天是线性结构和基础数论的一天!这个题,呃,实际上它是个递推式,跟栈没有半毛钱关系。首先,一进一出,f【i】【k】中i表示已进栈i个,已出栈k个时的方案数。状态转移方程:f【i】【k】=f【i-1】【k】+f【i】【k-1】;f【i-1】【k】表示它的上一个状态(进栈i-1个,出栈k个)是进了一个数得到现状态的i-1 +1=if【i】【k-1】表示它的上一个状态(...

2019-07-15 08:44:00 134

转载 洛谷 p1434 滑雪

woc花了20分钟捏了个记忆化搜索一遍过了!!!!!我最近真的是,太太太幸运了。题目很简单,以任意一个入口进去,打一个规规矩矩的记搜,记得入口也可以判一下,如果搜别的时候经过了它已经有了它的值,就连搜也不用搜了。#include <iostream>#include <cstdio>using namespace std;int n,m...

2019-06-26 21:28:00 188

转载 洛谷 p2066 机器分配

这个题是我自己打出来的第二道题~\(≧▽≦)/~啦啦啦,虽然想+改好像得有2小时,并且解法很不像正解。对于n组数据,我们发现,当前f【m】的一组可能解为w1台+w2台(w1+w2=j),此时我们并不关心w1和w2是怎么来的。f【m】的全部解为0,1,2,3....mm,m-1,m-2......0也就是说,我们只需要不停找到一个可控的f【1~m】与一组未知的数继续和出...

2019-06-25 19:04:00 119

转载 kmp算法

#include <iostream>#include <cstdio>#include <cstring>using namespace std;char s1[1000002],s2[1000003];int kmp[1000002];int len1,len2,j;int main(){ cin>...

2019-06-23 20:57:00 107

转载 洛谷 P1481 魔族密码

我发誓这是第一个我没看题解自己想出来的动归题感动吖!先将串按从短到长排序,如果lenx<leny就交换,(true);如果不是就不交换,(false);以第i个单词为结束的最长可连接数,因为是线性,所以以已经处理好的单词数为状态转移,看此单词由它前边的哪一个f[j]接上构成新的f[i]最优。if(chack(s1[j],s1[i])==true)//前提 ...

2019-06-15 20:06:00 151

转载 洛谷 P1435 回文字串

给了一个串,求最少填几个字母可以组成回文串,我们发现找到最中间的数后,其余只要不对称的都需要补(左边的补到右边,右边的补到左边所以=len-中间相同的子串),所以不如去求中间的子串,一减就可以了。string:len=s1.size();char:len=strlen();从一开始录入:scanf("%s",s1+1);从下标一开始计数:int len=strlen(s1...

2019-06-15 19:11:00 166

转载 洛谷 p3399

一道非常弱智的DP就是个01背包的sb版但是需要个初始化,二维数组记录i=城市数,j=天数,记得二维数组时第二个循环为正常顺序,不能倒序。还有就是初始化,真的没想到该把f初始为什么,因为要求min,memset成0,ans就全是0,初始为极大则会直接影响结果。所以,就把(i,i)全整出来,因为这是我们完全已知的条件,二层循环从i+1开始是因为不可能在小于i天内走完i个城市,所...

2019-06-14 19:52:00 97

转载 DP 训练题目

转自 dalao目录1.合唱队形2.导弹拦截3.尼克的任务4.丝绸之路5.分队问题6.低价购买7.回文字串8.[模板]最长公共子序列9.魔族密码10.创意吃鱼法11.UVA10635 Prince and Princess12.木棍加工13.[USACO08MAR]跨河River Crossing14.UVA1...

2019-06-14 19:03:00 119

转载 洛谷 P1736 创意吃鱼法

链接:https://www.luogu.org/problemnew/show/P1736这个题真的做的我头大( ⊙ o ⊙ )题目分析:n行m列的矩阵,非0即1,求满足对角线有鱼(两条对角线其中一条)其他地方无鱼的最大正方形。思路:二维前缀和;其实我一开始想的是二维前缀搞出来,然后如果要满足题意的话,n*n的正方形就只能有n条鱼,然后二维前缀和不会打,借助了很多一点...

2019-06-14 18:47:00 71

转载 树形背包

前言:1 树形动归树形动归就是在树上的动归,树形动归一般是依赖于dfs的,根据动归的后效性,父节点的状态一般都依赖子节点的状态以某种方式转移而来,而每一个父节点的孩子的数量不定,这就很难以寻常的递推式通过几个for解决掉,而树这种东西它的遍历本身就依赖于dfs,可以说是比较暴力的打法了!差不多是这个样子的:先存图,以dfs进去找到叶节点,先处理叶节点的信息再一层层向父节点推进...

2019-06-14 17:53:00 151

转载 树形DP

在学习树形动归之前,请先储备类似01背包,完全背包的知识;顾名思义,树形动归就是在树上的动归,树形动归一般是依赖于dfs的,为什么呢,根据动归的后效性,父节点的状态一般都依赖子节点的状态以某种方式转移而来,而每一个父节点的孩子的数量不定,这就很难以寻常的递推式通过几个for解决掉,而大家可以想一下树这种东西它的遍历本身就依赖于dfs,可以说是比较暴力的打法了。题目链接:https...

2019-04-25 19:15:00 66

空空如也

空空如也

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

TA关注的人

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