自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 寒假训练—2018.1.31

今天还是看了一些博客,觉得最大流,最小割的题意很难懂,建模有时也是凭感觉,今天有上下限的最大流,还好有比较好的流程图供我看。多看别人的博客,学会自己建模。感觉最小割的建模有的地方很麻烦。看博客速度太慢了,就是一点点的抠,但还好学到了不少。今晚打了场cf。。啊,还是赛后补补题(只水了2道),跟别人的差距还有手速上,水题再快点,赛后补题。温故而知新吧,不断学习着新的东西以前不懂的问题和思路也渐渐明白了

2018-01-31 23:32:37 143

原创 网络流入门5——(最大流算法—Dinic)

之前一直在写分析,还没有认真介绍一下网络流,这篇是从网络流的定义,求最大流所常用的Dinic算法入手开始的。参考:http://blog.csdn.net/lzoi_hmh/article/details/74940366什么是网络流?网络流的最大流是什么意思?定义:带权的有向图G=(V,E),满足以下条件,则称为网络流图(flow network)。(1)仅有一个入度

2018-01-31 19:46:19 301

原创 网络流入门4——(建模例题分析①—简化图)

POJ 1149 PIGS 【题目大意】有 M 个猪圈,每个猪圈里初始时有若干头猪。一开始所有猪圈都是关闭的。依次来了 N 个顾客,每个顾客分别会打开指定的几个猪圈,从中买若干头猪。每个顾客分别都有他能够买的数量的上限。每个顾客走后,他打开的那些猪圈中的猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上。问总共最多能卖出多少头猪。(1 举个例子来说。有 3 个猪圈,初始时分

2018-01-31 16:08:32 353

原创 网络流入门4——(建模例题分析②—混合图欧拉回路)

本篇讲的都是思路,代码以后补充《POJ 1637 Sightseeing tour 》【题目大意】混合图欧拉回路。(1 【建模方法】把该图的无向边随便定向,计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路。因为欧拉回路要求每点入度 = 出度,也就是总度数为偶数,存在奇数度点必不能有欧拉回路。好了,现在每个点入度和出度之差均为偶数。那么将这个偶数除以

2018-01-31 15:53:49 250

原创 网络流入门3——有上下界的最大流

如果流网络中每条边e对应两个数字B(e)和C(e),分别表示该边上的流量至少要是B(e),最多C(e),那么,在这样的流网络上求最大流,就是有上下界的最大流问题。 这种网络不一定存在可行流 ?思路:将下界“分离”出去,使问题转换为下界为0的普通网络流问题。 将原弧(u,v)分离出一条必要弧:  由于必要弧的有一定要满流的限制,将必要弧“拉”出来集中考虑: 添加附加点x,

2018-01-31 10:35:21 628

原创 网络流入门2——最大流(关于为什么要拆点的问题)

POJ 3281 Dining (USACO 2007 Open Gold)题目意思比较简单,就是说现在有 N 只奶牛,F 种食物和 D 种饮料,每只奶牛喜欢其中的一些食物和饮料。现在每种食物和饮料只能分给一只奶牛,每只奶牛也只能吃一种食物和一种饮料,问最多能使多少奶牛既吃到食物又喝到饮料。这个题和二分图匹配有相似之处,但又不完全相同,我们可以沿着二分图匹配的建模方式继续思考。由于有

2018-01-31 10:17:53 1965 1

原创 网络流入门1——简单模型转化

在现在的信息学竞赛中,一般不会考裸的最大流问题,而是把问题转化为最大流或最小割模型,这使得题目有了难度。1. 最大流模型一个典型的最大流模型就是二分图的最大二分匹配。二分图 ( , , ) G X Y E  ,其中 X 和 Y 是两个不相交的点集,并且对于每对( , ) u v E  , u X  且 v Y  。二分图的最大二分匹配问题就是从 E 中选择一些边,使

2018-01-31 10:06:19 333

原创 2018.1.30

今天还是看了一堆算法,就是不知道怎么用,用哪个比较好。建模这一步是最关键的,方法也有好多,关键是不会建模。老师给的博客除了匈牙利算法,SAP算法(还没弄懂),其它的知识点过了一遍,重点看了建模方法的总结,各类都有。明天要多看题,重点看题与题之间的相似和差异,读题后的建模思想,模板的运用。感觉要学的好多啊。啊!应该使劲看。想跟大佬们交流但是自己还是看的太少了。。。。。应该多跟大佬们交流。

2018-01-30 21:57:17 174

原创 2018.1.29

今天主要看了网络流图和最大流,割切,Ford-Fulkerson最大流最小割切定理,2F最大流最小割切标号算法,Edmonds-Karp修正算法,Dinic算法,看了amber的PDF感觉就像是在学数学一样,代码还没怎么看,最小割,最大流,各种算法,感觉要看的好多啊。

2018-01-29 21:46:04 236

原创 Reward (拓扑排序求深度)

这道题的坑点在于可能会有人得到相同的奖金,而我第一次在做的时候就没有考虑这个问题,用的很基础的拓扑。这道题需要考虑深度。依然用的拓扑排序的方法,不过我们分解图的过程中只需要计算出每个节点所在的树层次即可.求一个节点的深度一定要注意:由于我们采用了队列结构,所以若u是正好能使得v入度归0的点,那么u一定是所有指向v点的点中深度最大的(这个自己画个图验证一下).题目链接:https://cn....

2018-01-28 15:41:14 365

原创 Sorting It All Out (拓扑排序)

题目大意:给你字母表的前N个大写字母和M个大小关系(即有向边)。所有的边按顺序给你,要你在能判断出全序或矛盾的时候及时输出(即当输入i条边的时候,出现了有向环或已经全序了,那么应该及时输出,),或者直到最后也不能出现全序。题目分析: 我们只需要对于每一条边(共M条有向边)都调用一次topo排序,看看能否出现结果或者出现矛盾即可.        如果能topo排序就说明没有矛盾,但是可能是全...

2018-01-28 15:36:34 661 1

原创 2018—1.27

今天就是写了些PPT,今天的讨论收获就是把知识点串了一遍,其实我还是想再扣一下细节的,模板的细节不过让我知道了自己哪一块学得透,哪一块(2—sat)还需要研究。不过晚上看了看大佬们的博客,觉得自己真的是蒟蒻了。这学期考试前很认真的复习了,但绩点才刚到3.7,大佬们都上4.4了。也很是惭愧。说来也是在想,欠的帐终究是要还的吧,可能是努力的方法不对?专注度不够?习惯还是要改的,希望还是不能放弃,这么一

2018-01-27 20:03:26 242

原创 拓扑排序—入门简单题—Genealogical tree

题目链接题目大意:给出n个点,给出n种关系,第i行对应i->x(先后顺序),求出一个序列,使得满足以上所有的关系.如果有多个这样的序列,求出一个就行。测试数据有大于等于1个的序列。思路:这是最基本的拓扑排序的题,用G[maxn]用来存图,入度为0存一个,ans用来存输出顺序。代码: #include<cstdio> #include<cstri...

2018-01-27 11:40:55 331

原创 寒假训练—2018.1.26

今天就是主要是继续做题,将最短路径的算法又研究了一遍,还有8道题没有做,应该反思一下,早上去的太晚了。自己最近也一直在提高专注度。说一下今天晚上的比赛吧,今晚的比赛就是明知道是两道水题,写的时候还是会不小心丢三落四。而且明明已经说了,是1->n的数列,我居然还考虑有没有重复的。。。第二道水题就是sort时,应该写成sort(b+1,b+n+1)我写错了。没什么技术含量的题还敲半天。最后做出来的一道

2018-01-26 22:13:25 133

原创 Play on Words (判断是否有有向欧拉路或半欧拉路)

就是Catenyms的简略版,只是无需保存路径。题目:代码:#include#include#include#include#includeusing namespace std;int fa[26+5]; //并查集int in[26+5],out[26+5];//入度,出度bool mark[26+5]; //mark[i]=true,

2018-01-26 17:35:12 150

原创 差分约束—Candies

题目链接题目大意:输入a,b,c三个数,表示b-a思路:显然要用到差分约束,而且是最简单的差分。又因为糖果的个数不可能是负值,所以用dijsktra算法解决即可。感想:dijsktra模板一定要会用。代码:#include#include#include#includeusing namespace std;const int maxn=30000+10;const

2018-01-26 15:31:29 197

原创 2—SAT入门题—Party

题意:有n对夫妻被邀请参加一个聚会,因为场地的问题,每对夫妻中只有1人可以列席。在2n 个人中,某些人之间有着很大的矛盾(当然夫妻之间是没有矛盾的),有矛盾的2个人是不会同时出现在聚会上的。有没有可能会有n 个人同时列席?输入:n: 表示有n对夫妻被邀请 (n<= 1000) m: 表示有m 对矛盾关系 ( m < (n - 1) * (n -1)) 在接下来的m行中,每行会有4个数字

2018-01-26 10:13:51 544

原创 寒假训练—2018.1.25

今天主要做的是强连通和欧拉路这一块的题,感觉自己进步了很多,以前做题就是照着题解研究,也没有自己的写代码的思路,今天做题明显感觉到我有自己的思路了,除了需要用模板的时候会看一眼,或者这一块我还没有接触到,基本上都是根据自己对算法的理解进行处理的,然后也会下意识的进行思考,这一题他想考我什么,哪个地方是容易遗漏的地方,讲真,欧拉和强连通的这一块我感觉就是见多识广,真的还是要多多读博客,自己看得多了才

2018-01-25 21:43:45 140

原创 Catenyms (寻找有向欧拉路+输出路径)

题目链接大意:给你一串单词,首尾相同的单词才能相连,存在的话按字典序最小的输出。(单词的首尾暗示了这是一个有向图)思路:本题的目的是考察找有向图存在欧拉回路的条件,(1.如果图连通,且每个点的出度等于入度,则存在欧拉回路 2 .如果图连通,且恰有一点u的出度比入度大1,另有一点v的出度比入度小1,其余的出度等于入度,则存在欧拉路,起点u终点v),用并查集来判断。然后我们要考虑字典序是最

2018-01-25 21:33:34 281

原创 Ant-trip(欧拉回路—一笔画问题)

题目链接题目大意:给出无向边的N个点和M条边,保证M条边都不同,且不会存在同一点的自环边,现在问至少几笔可以用把整个图画一遍。(一笔画时笔不离开纸)思路:该问题要从简单到复杂,从小—>大来思考[1]当只有一个点时,显然0笔;[2]当该连通分量是一个欧拉图(欧拉回路)或者半欧拉图(欧拉路),显然一笔。[3]连通分量并非一个欧拉图或半欧拉图时该怎么办?(经验证有以下结论:非

2018-01-25 16:46:49 392

原创 欧拉回路(简单判断是否有欧拉回路存在)

https://cn.vjudge.net/contest/209173#problem/N题目大意:给出N个点,M条边,问有没有欧拉回路存在。题目分析:1.无向图欧拉回路是否连通2.所有点的度为偶数。并查集+degree【】代码:#include#include#includeusing namespace std;const int maxn=1000+10;in

2018-01-25 14:51:49 6109 2

原创 寒假训练—1.24

今天上午看了差分约束,主要是将不等式转化为有向边,运用的三种求最短路径的算法,Dijkstra,Bellman-Ford,Floyd,来解决最短路径的问题,然后感觉模板理解了但是记不住,以后还要多练多敲;今天下午主要看的是2-sat问题,构造有向图,感觉也是套模板,但是很多细节要注意,看了饶齐的博客。明天就要做题了。我想找到更好地适合自己的学习的方法,感觉明天做题肯定又会很生疏。一道题大不了敲很多

2018-01-24 22:13:12 138

原创 2—sat问题

在实际问题中,2-SAT问题在大多数时候表现成以下形式:有N对物品,每对物品中必须选取一个,也只能选取一个,并且它们之间存在某些限制关系(如某两个物品不能都选,某两个物品不能都不选,某两个物品必须且只能选一个,某个物品必选)等,这时,可以将每对物品当成一个布尔值(选取第一个物品相当于0,选取第二个相当于1),如果所有的限制关系最多只对两个物品进行限制,则它们都可以转化成9种基本限制关系,从而转化为

2018-01-24 21:52:52 279

转载 最短路径实现算法Bellman-Ford+Dijstra+Floyd

参考资料:http://www.wutianqi.com/?p=1912最短路径算法—Bellman-Ford(贝尔曼-福特)算法分析与实现(C/C++)相关文章:1.Dijkstra算法:http://www.wutianqi.com/?p=18902.Floyd算法:http://www.wutianqi.com/?p=1903D

2018-01-24 11:41:27 528 1

原创 寒假训练——2018.1.23

今天用了将近一天的时间看了欧拉路,拓扑还没怎么细看。欧拉路主要是在判断弱连通的时候用并查集,找出有几个欧拉通路,然后今天夹带着把字典序也看了看,因为饶齐的第一篇博客就是字典序+并查集+欧拉回路的判断,觉得来龙去脉已经弄懂了。欧拉路的概念性的东西不算少,无向图,有向图存在欧拉路的条件,还没有涉及到混合图那一块,只是把饶齐的这一块看完了。就是读题知道我要找什么,代码来回就是那些套路,明天打算把见过的题

2018-01-23 21:46:01 161

原创 POJ 1386 Play on Words(判定图欧拉通路是否存在)(并查集+有向图存在欧拉路)

参考博客题目来源大意:给你多个单词,问你能不能将所有单词组成这样一个序列:序列的前一个单词的尾字母与后一个单词的头字母相同.思路分析: 把每个单词看成一条有向边,把26个字母看成是图的节点.这就是一个问你有向图是否存在欧拉通路/回路的问题. 有向图存在欧拉路必须满足两个条件: 1. 有向图弱连通 2. 图中所有点入度

2018-01-23 21:32:25 340

原创 POJ 1300 Door Man(欧拉回路判定)

欧拉回路(并查集)题目参考:http://blog.csdn.net/u013480600/article/details/30099269无向边找通路+回路题意:给你N个房间(图节点)以及房间之间的门(图的边),且给你初始的房间号M,问你从初始房间走,可不可以经过每个门仅1次,最后到达0号房间.且所有的门都被你走过1次?分析:仔细一看,其实这个问题就是判定是否

2018-01-23 20:47:11 207

原创 寒假训练——2018.1.22

今天用了一上午的时间看了Trajan算法,看了很多别人的博客才搞通了之前很多不懂的点,然后下午和晚上的时间看了割顶割边思路也都差不多,就是感觉强连通的题大致都差不多,(可能是看得少了),然后割边割点的那块的题还没有看太多。今晚再把题看一看,收藏部分经典题。明天看拓扑排序和欧拉路。时间紧任务重。今天的不足就是效率不高,割顶割边的那块看了好一会,明明强连通懂了,那东西就很好理解了,看的时候还是觉得很生

2018-01-22 21:52:56 246

原创 强连通分量(缩点+求出入为0的点的个数)HDU 2767 Proving Equivalences

用了半天的时间将强连通分量中的trajan算法及其代码实现这部分终于理解通透了。下面是我针对一道例题对其进行的阐释。题目大意: 给你一个有向图,问你在图中最少要加多少条边能使得该图变成一个强连通图.题目思路:首先我们求出该图的各个强连通分量,然后把每个强连通分量看出一个点(即缩点),然后我们得到了一个有向无环图(DAG). 对于一个DAG,我们需要添加m

2018-01-22 16:18:55 287

原创 寒假训练——2018.1.21

今天下午打了场比赛,发现了自己的很多弱点,就是模拟题总是写的很复杂,但是事实上是可以写很简洁的代码的。还有就是搜索,感觉对搜索的理解和运用还不太好,那道画圈圈的题说实话,看到了别人的代码后,我又研究了好一会才明白是怎么个搜法,原来搜索还能这么用。还有一点就是看到题目长的题,我就会感觉很难,直到看过通过率才放心。这一点也不好。大佬们今晚都能出5道,我就过了2道,有2道模拟题没出,挺可惜的,以后对

2018-01-21 21:24:11 223

原创 牛客——2018年全国多校算法寒假训练营练习比赛(第一场)

这场还是新生赛,主要是模拟,搜索,递推递归,思维题。模拟手速还是慢,也会考虑不周全。G:搜索:链接:https://www.nowcoder.com/acm/contest/67/G来源:牛客网题目描述     圈圈圆圆圈圈,lulu小朋友最近看喜羊羊看多了,老是受刺激就画圆圈,听到小于8的数字时,还会画出十分有规律的圆圈,现在你需要根据样例观察出规律,编写程序,根据输入的数字

2018-01-21 20:20:32 2719

原创 寒假训练——2018.1.20

今天将区间dp的文档看完了,觉得几个题比较有意思。仅仅是回文串的就有不少。一道是增删改字符代价最小。我当时就没有想到其实增删效果是一样的,区别就在于代价的不同,预处理一下是增还是删。表示方法就很传统,区间dp的特点就是dp[i][j]来表示i~j区间内是回文串的最小代价。转移方程为,判断一下s[i]与s[j]两字符是否相同,相同的话则不用变,dp[i][j]=dp[i+1][j-1],否则dp

2018-01-20 22:22:48 175

原创 poj 3280 Cheapest Palindrome(区间DP)[增删改变简单回文串]

题目大意:给出一个由n个小写字母组成的,长度为m的字符串字符串来,对这个字符串进行删除字母或者添加字母,使得该字符串是一个回文串,每一步删除和添加每个字母都有对应的代价,求将该字符串转成回文串的最小代价对于一个串来说在一端删除一个字母和再另一端添加一个字母是一样的,所以对于每个字母来说,他的代价就是删除与添加的代价的较小值dp[i][j]表示i到j是回文串的最小代价if(s[i]==s[j]

2018-01-20 21:46:24 213

原创 拓扑排序(板子)

1.从1-n编号的。判断DAG(有向无环图)是否有拓扑序列。模板代码:#include&lt;bits/stdc++.h&gt;using namespace std;const int maxn=1000;vector&lt;int&gt;G[maxn];int n,m;int in[maxn];bool topo(){ queue&lt;int&gt;Q; ...

2018-01-20 20:50:12 597

原创 区间dp——小结

一.定义:区间dp,就是先求小区间的最优解,然后逐步合并到大区间的最优解二.代码实现大致步骤:①找状态转移方程。f[i][j]一般是表示i~j区间的数字相加的最小代价。每次用变量k将其分成(i~k和k+1~j)两段②区间dp的模板for(int i=1;i<=n;i++)  {      dp[i][i]=初始值  }  for(int len=2;len<=n;len

2018-01-20 19:36:08 858

原创 区间dp——zoj 3469 Food Delivery

题目链接题意:有一家快餐店送外卖,现在同时有n个家庭打进电话订购,送货员得以1/V的速度一家一家的运送,但是每一个家庭都有一个不开心的值,每分钟都会增加一倍,值达到一定程度,该家庭将不会再订购外卖了,现在为了以后有更多的家庭订购,要将外卖送到的情况下使得所有用户的不开心值总和达到最小思路: 很明显,每多走一分钟,没送到的家庭的不开心值都会加倍, 假设是这样的顺序123X

2018-01-20 15:15:05 208 3

原创 寒假训练——2018.1.19

今天一上午将图论大体有什么内容,以及ppt过了一遍,dfs,bfs复习了一下,重点是将强连通分量的内容在下午看了点,学了Kosaraju和tarjan算法,Kosaraju算法思路ppt上已经讲得很详细了,正dfs一遍,将图逆过来再一次dfs,代码还是比较容易的。而tarjan算法的代码就比较绕。但是有一篇博客将其的来龙去脉讲的还挺不错的。tarjan算法重点就在于代码,对代码还比较生疏。然后将饶

2018-01-19 21:35:39 186

原创 强连通分量——Tarjan算法

解释的很详细:http://blog.csdn.net/mengxiang000000/article/details/51672725这篇文章解释的很详细,说明了来龙去脉。http://blog.csdn.net/qq_34374664/article/details/77488976

2018-01-19 18:56:05 165

原创 强连通分量——[Kosaraju算法]

思路:[Kosaraju算法] Kosaraju是基于对有向图及其逆图两次DFS的方法,其时间复杂度也是O(N+M)。kosaraju算法的步骤如下:(1)在有向图G上,从某个顶点出发进行DFS,并按其所有邻接点的搜索都完成(即退出DFS函数)的顺序将顶点排列起来。(2)在有向图G上,从最后完成搜索的顶点出发,在图G的逆图G’上进行DFS,若此次遍历不能访问到有向图中所有顶点,则从余下的顶点中最后

2018-01-19 16:32:40 301

原创 C. Party Lemonade (贪心+数位)

C. Party Lemonadetime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA New Year party is not a New Year party w

2018-01-09 10:20:54 1109

空空如也

空空如也

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

TA关注的人

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