廖哥集训
cnyali_szsh348
这个作者很懒,什么都没留下…
展开
-
费用流
最小费用路算法【最小费用最大流】:在实际应用中不仅需要考虑流量,还要考虑费用。我们希望建立一个费用最小,流量最大的网络,即最小费用最大流两种思路:(1):最小费用路算法(2):消圈算法做法:(1):创建混合网络(2):找最小费用路(3):沿着增广路径正向增流d,反向减流d...原创 2020-02-26 19:28:24 · 130 阅读 · 0 评论 -
快讀
int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9'){ ...原创 2019-11-01 15:08:44 · 99 阅读 · 0 评论 -
考试总结2019-10-31
T1思路:前置知识:对于一个四边形,三边之和一定大于第四边。设sx为每一边的上限,i,j为两边因为由题意可得:任意一边都大于等于1且为整数(k为正整数)所以可以有如下几个不等式:1.n-i-j-k>=1k<=sx可以得出:k<=n-i-j-1k<=sx所以k的范围为k<=min(n-i-j-1,sx)2.k>=1n-i-j-k<=...原创 2019-10-31 15:54:01 · 124 阅读 · 0 评论 -
exam 2019-10-30
T1:ACsolution:用树状数组维护前缀和,修改时暴力,用一个并查集维护当前点之后第一个不为0或1的点是谁。。每次修改之后路径压缩一下并查集。#include <bits/stdc++.h>using namespace std;const int maxn=500000+10;long long ans[maxn],num[maxn],n,m;void add(...原创 2019-10-30 21:21:19 · 160 阅读 · 0 评论 -
2019-08-10 考试反思
T1:S先生与Q小姐题目大意S先生有一种超能力,让他可以预测出股票的价格,他打算用这个超能力大干一场S先生知道n天内的股票价格,在第i天时他有如下操作:1.不动,不买也不卖2.卖掉股票,收获a[i]的价格3.买进股票,减少a[i]的价格已知他每天只能如上操作一次,请问他最大可以获得多少价格买东西取悦美丽的Q小姐呢???Input第一行为股票的个数n第二行有n个数,表示每一个股...原创 2019-08-10 23:24:07 · 98 阅读 · 0 评论 -
2019-04-09 线段树
P3372 线段树1线段树模板(LAZY):#include <bits/stdc++.h>const int maxn=100000+10;using namespace std;long long c[maxn*4],sum,lazy[maxn*4];void init(int h,int s,int t){ int mid=(s+t)/2; if(s=...原创 2019-04-09 20:31:45 · 76 阅读 · 0 评论 -
2019-02-24 二维凸包
二维凸包:#include &amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int maxn=100000+10;int n,top=2;double ans;struct node{//存储直角坐标系的x和y值 double x,y;};node p[maxn],z[maxn];bool cmp(node u,node v){//...原创 2019-02-24 20:30:55 · 139 阅读 · 0 评论 -
2019-02-13 最短路应用
传递闭包:传递闭包就是求有向图中两点的可达性。若从x可以到y,则ok[x][y]=1,否则ok[i][j]=0,然后利用近似Floyd的方法求解核心代码:for(int k=1;k&amp;amp;lt;=n;k++) for(int i=1;i&amp;amp;lt;=n;i++) for(int j=1;j&amp;amp;lt;=n;j++) ok[i][j]|=(ok[i][k]&amp;amp;amp;ok[k][原创 2019-02-13 14:52:57 · 224 阅读 · 0 评论 -
2019-2-12 最短路径算法
Dijkstra+Heap优化:可AC这道题还有这道题//时间复杂度:O(n*log2n)#include &amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int maxn=1000000+10,inf=2147483647;int w[maxn],to[maxn],beg[maxn],nex[maxn],d[maxn],p[maxn];...原创 2019-02-12 15:03:43 · 194 阅读 · 0 评论 -
2019-05-21 图进阶
割顶的定义:对于无向图G,如果删除某个点u之后,联通分量数量增加,则称u为图的割顶。DFS时标记每个点遍历的次序为dfn规定low(u)为u及其后代所能连回的最早祖先的dfn值如:该图中,A B C D Edfn 1 2 3 4 5low 1 2 3 3 3因为e有一条边可连回c(图上未标),所以c,d,e三点的low值都为c的dfn值——3求割顶代码:...原创 2019-05-21 20:15:31 · 82 阅读 · 0 评论 -
考试反思 2019-08-06
T1:S先生与Q小姐题目大意S先生知道n天内的股票价格,在第i天时他有如下操作:1.不动2.卖掉股票,收获a[i]的价格3.买进股票,减少a[i]的价格已知他每天只能如上操作一次,请问他最大可以获得多少价格买东西取悦美丽的Q小姐呢???Input第一行为股票的个数n第二行有n个数,表示每一个股票的价格Output每个区间内不并存的勾股数Sample Input11 ...原创 2019-08-06 19:05:43 · 128 阅读 · 0 评论 -
考试2019-08-16
T1(disaster)题目大意有天,某个核蔼可氢的XX要被机惨了,他得知消息,很快的跑向机房,因为他不想太惨,所以他想跑最短的路跑回机房,他想知道他最少要跑多远才能到达机房解救他的账号。 号节点表机房, n号节点表示所在位置。Input第一行输入n,m。 n表示节点数, m表示路径数第二行至m+1行每行三个数x,y,z,分别表示条双向路径的2个端点和长度Output一行一个整数...原创 2019-08-18 21:02:59 · 92 阅读 · 0 评论 -
2019-09-20 练习
今日练习:NOIP2017 提高组Day1三道题:T1:小凯的疑惑这道题思路:这道题考场遇到时比较棘手,题意较难理解,且数学公式也不是特别好推,基本上只能靠枚举得到部分分。考试时:咦?这道题的数据之间存在什么关系?好像是a*b-a-b?考试后:哦,忘了开longlong了。。。不开longlong见祖宗。。。反思:1.开longlong一定要养成习惯啊。。。2.曾经有一道(a*b-a...原创 2019-08-21 00:16:52 · 97 阅读 · 0 评论 -
树形DP入门2019-08-12
【题意】公司有n个人,每个人有价值vi,有一天举办年会,每个人都可以参加,但有严格的等级制度,参加活动时,不能同时出现a和a的上司,问如何才能使总和最大。【分析】每个人只有去和不去两种状态,设f[i][0]和f[i][1]分别表示第i个人不参加和参加年会,获得的总的最大价值。则状态转移方程为:f[i][1] += f[j][0],f[i][0] += max{f[j][0],f[j][...原创 2019-08-12 15:32:26 · 88 阅读 · 0 评论 -
2019-08-22 考试总结
T1:地铁巡查思路:最小生成树代码:#include<bits/stdc++.h>using namespace std;const int maxn=10000+10,INF=2147483647;long long n,m,k,cnt,zr[maxn],nex[maxn],beg[maxn],to[maxn],c[maxn],v[maxn],s=1,minn=INF,s...原创 2019-08-23 00:29:50 · 205 阅读 · 0 评论 -
考试总结2019-10-04
T1思路:运用if将所有情况列举出来。注:如果要读入一整行(有空格)应用 getline(cin,a);难点:’‘的表示(’'会自动与之后的字符连起来),需测试出它的ASCLL码并已整数形式判断。代码:#include <bits/stdc++.h>using namespace std;string a;int main(){ freopen("kot.in","r"...原创 2019-10-04 20:42:47 · 99 阅读 · 0 评论 -
考试总结2019-10-06
T1思路:这道题比较简单,直接循环查找即可(点(a,b)至点(a1,b1)的距离为(abs(a-a1)+abs(b-b1)),好多人直接dfs???)代码:#include <bits/stdc++.h>using namespace std;const int maxn=100+10,INF=2147483647;int n,m,x,y,a[maxn][maxn],st,...原创 2019-10-08 00:09:43 · 134 阅读 · 0 评论 -
Tarijan
牛的舞会#include &amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt;using namespace std;const int N=10001,M=100010; int n,m,ans,head[N],pos,a,b;stack&amp;amp;amp;lt;int&amp;amp;amp;gt;S;struct edge{//结构体,存储编号与下一个 int to,next;原创 2019-02-15 14:59:26 · 130 阅读 · 0 评论 -
树的重心
#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;vector&gt;using namespace std;const int maxn=50000+5,inf=100000000;int sum[maxn];vector &lt;int&gt; a[maxn];int zx,ans,n;void原创 2019-02-12 15:04:29 · 117 阅读 · 0 评论 -
链表 2018-11-25
这节课复习数据结构。链表简单来说就是首为0,尾为空(NULL)。用链表可以进行简单的快速排序(题目)切记:用链表做会超时!!!(链表时间复杂度O(n方))#include <bits/stdc++.h>using namespace std;const int maxn=100000+10;int n,m,k;struct node{ int w,next;}a[m...原创 2018-11-25 21:25:36 · 89 阅读 · 0 评论 -
BFS+STL队列复习2018-08-15
首先,复习一下小小的STL基本运用:#include &amp;amp;amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;amp;amp;gt;using namespace std;struct hzr{int x;int y;};queue&amp;amp;amp;amp;amp;lt;hzr&amp;amp;amp;amp;amp;gt;q;int main(){ int n;原创 2018-08-15 20:47:10 · 299 阅读 · 1 评论 -
搜索剪枝2018-08-16
第一题:https://vjudge.net/contest/246999#problem/A 本题涉及到深度搜索(当然也可以广度搜索)+剪枝,典型的迷宫问题。问题的大概意思是,狗从S点出发,要求时间为T时狗正好到达D点,迷宫为N*M矩阵,迷宫内有X代表的墙。问狗能否在T时刻准时到达D点。我们要让狗能在T时刻刚好到达门口,但是题目要求狗不能回走,只能绕路走,能绕路走可定要多出偶数的步数,就算是墙...原创 2018-08-16 20:58:25 · 114 阅读 · 0 评论 -
各种优化2018-08-13
第一道题:https://vjudge.net/contest/246647#problem/A 这道题相信很多人一开始都想暴力分组,将每个石头都按照01分组,0就是一堆,1就是另一堆,然后在做差比较。这道题的操作并不是这样的!!!!!正确操作: 这道题就是个变向的背包问题 如何背包呢???既然是要使分组之差最小,那么每一堆的差一定不能小于石子之和除以2!!!所以,这不就...原创 2018-08-13 19:56:38 · 177 阅读 · 0 评论 -
背包问题2018-08-07
背包问题:https://www.luogu.org/problemnew/show/P1048这道题虽然名为采药,但完全是一道简单背包题,只要套01背包的模板就行了。题目简述:假设有一个背包,其容积为V,同时,我们有n个物品,价值分别为Ai,同时,它的体积为Bi,现在我们想要让背包内的东西价值最高,同时又不能让背包涨坏,我们该怎么做呢???我们可以用贪心的方法来解,但老师讲的是...原创 2018-08-07 20:10:08 · 116 阅读 · 0 评论 -
广度优先搜索2018-08-14
这道题:https://vjudge.net/contest/246999#problem/D 这个显然就是一个BFS问题的模板,首先将输入的数都翻转(0-&amp;amp;amp;amp;amp;amp;gt;1 1-&amp;amp;amp;amp;amp;amp;gt;0)这样就可以潜移默化地将边界都设为0,输出就需要逆序输出,所以输出时我用的是递归方法而已。#include &amp;amp;amp;amp;amp;amp;lt;bits/std原创 2018-08-14 21:38:15 · 185 阅读 · 0 评论 -
线性DP2018-08-06
线性DP就是在DP的基础上可以画一颗树,更好理解。 一道例题:http://172.45.253.16:8080/problem/8 第一种方法:最朴素的暴力算法,先算出所有的子序列,看符合条件的数列,再统计其中的最大值,显然,这种方法很容易超时。 第二种方法:直接暴搜 第三种方法:线性DP,先设所有为1,数列里面的每一个数都向前看,发现比自己小的就转换,这样就很容易得出转移方程f[i]=...原创 2018-08-06 21:51:34 · 156 阅读 · 0 评论 -
十字合并(DP)2018-08-10
一道经典的题:https://www.luogu.org/problemnew/show/P1090 这道题虽然比普通的要多考虑一点,因为有环形,但我们仍然可以通过非环形的例子来做一下,再来做这道题。 分析:这道题如果用贪心的思路当然也可以,只需要每次都选择最小的两个数相加就可以了,这里就不附上代码了QAQ 非环形代码:这里需要做一个预处理,也就是计算一个前缀和,然后DP一下,当前如果是合并...原创 2018-08-10 21:14:40 · 201 阅读 · 0 评论 -
动态规划2018-08-05
今天讲了DP(dynamic programming),不同与贪心,贪心只顾及了当前的最优解,而没有顾及到全局,往往会WA某些点,而DP是考虑全局,把所有状态都考虑到了。 DP分为状态,决策三部分,阶段是指DP的层次,而状态是指当前的各个变量,决策就是指最优的策略。 题目(自编):逃离恶魔塔 题目描述:小A有m滴血,现在他要逃离恶魔塔(呈三角形),已知第i层有i个关卡,每个关卡都有...原创 2018-08-05 20:28:22 · 107 阅读 · 0 评论 -
记忆化搜索2018-08-04
记忆划搜索就是指在原来搜索的基础上,进行了速度上的优化,多用了一个数组来存储每一个算出来的数值,再之后用到的时候直接调用就可以了,这样可以极大地优化时间和空间。 经典习题:斐波那契数列:相信题目描述大家已经非常清楚了,关键步骤f(n)=f(n-1)+f(n-2) 所以,可以的出第一种递推算法:...原创 2018-08-05 16:24:27 · 137 阅读 · 0 评论 -
DP优化(lis)2018-08-17
DP是一个好东西(逃 传送门:https://www.luogu.org/problemnew/show/P1020 这道题就是一个最长不下降子序列,大家都知道,这就是一个DP问题,时间复杂度是O(nlogn),在我之前的博客里有写到~~ 但是,O(nlogn)的时间复杂度貌似有点高(算高?那么O(n平方)算什么?) 那么,这里我要推荐一种O(nlog2n)的算法!!!(二分答案) 思路...原创 2018-08-17 20:09:15 · 186 阅读 · 0 评论 -
赛后总结2018-07-31
emm今天的题好难!!!第一题貌似是个图论的样子(我这是什么理解能力),实际上是个状压DP,幸亏lrj大佬及时地告诉了我这一点,所以,我换了个思路,将图变成了一个DP问题,求出最短路径也就是求出相邻最小值,再推一边,两项相加即可,推出了状态转移方程:a[i][j]=max(a[i][j-1],a[i+1][j]);ans+=a[i][j];所以,写个2的n次方的状压就可以了,幸好数据...原创 2018-08-31 22:16:30 · 199 阅读 · 0 评论 -
【题解】luogu P3956 棋盘
luogu P3956 棋盘题目描述有一个m×m的棋盘,棋盘上每一个格子可能是红色、黄色或没有任何颜色的。你现在要从棋盘的最左上角走到棋盘的最右下角。任何一个时刻,你所站在的位置必须是有颜色的(不能是无色的), 你只能向上、 下、左、 右四个方向前进。当你从一个格子走向另一个格子时,如果两个格子的颜色相同,那你不需要花费金币;如果不同,则你需要花费 1个金币。另外, 你可以花费 2 个...原创 2018-10-16 20:15:27 · 251 阅读 · 0 评论 -
2018-10-14练习赛
开始打比赛吧!!!第一题:A. 矩阵乘法题目描述这是一道模板题。分别给定 n×p 和 p×m 的两个矩阵 A 和 B,求 A×B 。输入格式第一行三个正整数 n n n、p p p、m m m,表示矩阵的长宽。之后的 n n n 行,每行 p p p 个整数,表示矩阵 A A A。之后的 p p p 行,每行 m m m 个整数,表示矩阵 B B B。输出格式输出 n ...原创 2018-10-14 21:27:24 · 726 阅读 · 0 评论 -
匈牙利算法2018-10-14
看到这一题或者这个优秀Blog其实,这一道题起源于俄罗斯网站上的一道舞会题·······不管这么多,先看一看题目:【模板】二分图匹配题目背景二分图感谢@一扶苏一 提供的hack数据题目描述给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数输入输出格式输入格式:第一行,n,m,e第二至e+1行,每行两个正整数u,v,表示u,v有一条连边输出格式:共一...原创 2018-10-14 21:01:18 · 137 阅读 · 0 评论 -
赛后总结2018-10-04
网站:http://yloj.yali.edu.cn/v3问题描述CZ 是一所非常文明的学校,尤其是 CZ 的男生们,十分的谦让女同学。每天中午,CZ 的同学们会在食堂排队打饭。一开始,队列的顺序是由进入食堂的顺序决定的。但是不一会儿,男生们觉得在女生之前打饭非常的尴尬,开始主动地谦让退让。让我们来更准确地᧿述这种情况。我们将队列里的 N 个人用从 1 到 N 的整数标号,其中,标...原创 2018-10-04 21:28:26 · 749 阅读 · 0 评论 -
【题解】HDU 1285——确定比赛名次
确定比赛名次题目描述:有N个比赛队(1&amp;lt;=N&amp;lt;=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。 Input 输入有若干组,每组中的第一行为二个数N(1&amp;lt;...原创 2018-10-02 21:04:20 · 274 阅读 · 0 评论 -
2018-10-02拓扑排序
拓扑排序:大学-高中阶段自由选课在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件:1.每个顶点出现且只出现一次。2.若存在一条从顶点 A 到顶点 B ,则A为B的前序 。Tips:有向无环图才有拓扑排序。入度:有几条边与它相连一.邻接矩阵来做#in...原创 2018-10-02 19:58:25 · 147 阅读 · 0 评论 -
2018-10-02NOIP提高组练习
第一题:题目描述R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: S 国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所得的内容均由大写字母 A−ZA-ZA−Z 构成(无空格等其他字符); S 国对于每个字母规定了对应的“密字”。加密的过程就...原创 2018-10-02 17:08:30 · 734 阅读 · 0 评论 -
排序杂谈
首先,看一看堆排序。堆排序是源于树的,在此之前,我们要理解堆,堆相当与森林(许多树),且堆必为完全树#include &amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int maxn=100000+5;//n的最大长度int a[maxn],len;int main(){ int n,k; cin&amp;gt;&amp;gt;n;原创 2018-10-01 20:15:48 · 110 阅读 · 0 评论 -
优先队列进阶2018-09-06
优先队列是什么呢? 答(参考度娘):在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。通常采用堆数据结构来实现。 更高级的一些操作请参考:https://blog.csdn.net/cnyali/article/details/78091532 (无敌强者的blog) 现在,我们做点高...原创 2018-09-06 20:22:00 · 167 阅读 · 0 评论