自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qwesde

勿忘初心

  • 博客(30)
  • 收藏
  • 关注

原创 HDU3468 Treasure Hunting(中等) [最大流](二分匹配)+最短路

题意:在一张寻宝图上,走最短路从一个汇合点到下一个汇合点,如果到汇合点上的路径有金币的话,只能拿一个,拿过后这个点就变为了可以通行的没有金币的点,问最多能拿几个金币。(汇合点按顺序编号是A~Z||a~z的点) 思路:最大流建图挺难的,参考网上的思路,用BFS预处理所有的汇合点到其他点的最短路径,然后找到在当前汇合点和下一个汇合点之间的金币,把当前的汇点与这个金币连一条边权是1的边。最后源点与每一个

2015-09-30 16:36:11 597

原创 HDU 3416 Marriage Match IV(中等,好题) [最大流]最短路+最大流

题意:告诉你一个有向图,现在,从A到B问最短的路有几条(一条路走过就不能在走了,某个顶点可以走多次) 思路:首先我们需要找出最短路,然后用这些在最短路上的边形成一个最短路边的网络。最后把这些边的权值设为1,跑一遍最大流即可。#include<cstdio>#include<algorithm>#include<cmath>#include<queue>#include<cstring>u

2015-09-28 13:21:58 1020

原创 HDU 3277 Marriage Match III(中等,好题)[二分最大流]+拆点

题意:基本与3081一样,但是多了每个女孩可以另外选任意k个不喜欢的 思路:拆点。把点i拆分为i和i+n,i到i+n连一条权为k的边,i与j连一条权是1的边。#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>using namespace std;#define cl(a,b) memset(a,b,si

2015-09-25 11:15:54 322

原创 HDU3081 使用Floyd传递关系,二分最大流

再记录下,使用Floyd 传递关系的用法,同时把模板更新了写法,看起来更酷。#include<cstdio>#include<algorithm>#include<cmath>#include<cstring>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))const int maxn=505;const int inf

2015-09-24 12:32:55 348

原创 HDU3081 3081 Marriage Match II(中等,好题)([二分最大流]+并查集)

题意:n个女孩,要和n个男孩配对,当每一个女孩都配对成功的时候,进入下一轮。每次都是女孩选择男孩,同时还告诉你哪些女孩和男孩之间没有吵过架,配对的原则是她们之间没有吵过架,同时女孩选择的男孩也不能和她的另外的闺蜜有过吵架。问最多可以进行几轮游戏。 思路:关键是建图,从女孩到男孩连一条边权是1 的边,在附加一个源点,源点到每一个女孩连一条权k的边,每个男孩连一条权k的边到汇点。然后跑最大流,判断是不

2015-09-24 11:27:14 414

原创 HDU 4240 Route Redundancy(基础) [最大流]一条流最大的路径

题意:依旧是那么难读懂,在城市A->B之间通过所有路径一小时之内能通过最大的车辆(Maxflow)/所有边上通过最大车流量(cap)的那条叫做redundancy ratio。最小的redundancy ratio是前者最大的车流量的那一条(cap),问minimum redundancy ratio是多少。 思路:最大流不用说,分母是在找最大流的时候记录下最大的cap#include<cstdi

2015-09-23 14:27:36 498

原创 HDU4183 Pahom on Water(基础) [最大流]来回走不重复点的网络流.

题意:确实难懂啊,网上找了翻译:二维空间上有一些点,每个点有一个半径r和频率f,要从某一个点S走到另一个点T,然后再从T回到S。从S到T时,如果两个点表示的圆相交并且第一个点小于第二个点的频率的,那么能从第一个点到第二个点,从T到S时,第一个点的频率要大于第二个点的频率。除了S和T,每个点走后就会消失,问是否存在一种走法。 思路:按照题意的要求建立图 边为1 ,跑两次isap看看是否流是不小于2的

2015-09-23 12:42:22 474

原创 HDU 3572 Task Schedule ([最大流]任务分配,判断满流)

题意:有M个机器,有N个任务。每个任务必须在Si 或者以后开始做,在Ei 或者之前完成,完成任务必须处理Pi 个时间单位。其中,每个任务可以在任意(空闲)机器上工作,每个机器的同一时刻只能工作一个任务,每个任务在同一时刻只能被一个机器工作,而且任务做到一半可以打断,拿去其他机器做。能否在规定时间内把任务做完。 思路:关键是抽象出模型,建立网络图。以0为源点,与每个任务之间连一条容量是p的边,任务与

2015-09-23 10:18:28 920 2

原创 HDU3549 Flow Problem (网络流入门题)

入门题: 我使用的是ISAP算法,效率还是可以的,复杂度是O(v*v*E) 学习资料#include<cstdio>#include<algorithm>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))const int maxn=20006;const int inf=1<<28;const int nv=20;//

2015-09-22 21:24:04 411

原创 1588: [HNOI2002]营业额统计(Splay树入门)

题目的连接 今天开始学习splay树,如cxlove大神所说,开始主要追随别人的代码,然后写出适合自己的,学习的话可以参考kuangbin的这篇文章,及里面提及的论文#include<cstdio>#include<algorithm>using namespace std;const int maxn=100005;const int inf=1<<28;int pre[maxn],k

2015-09-19 11:42:38 419

原创 AVL树

题目:(PAT)1066. Root of AVL Tree #include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#in

2015-09-18 10:12:13 332

原创 后缀数组学习小结

学习主要是参考 罗穗骞 的《后缀数组——处理字符串的有力工具》论文 然后自己结合其他书上的后缀数组的实现的方法,选择了一个比较简单的实现版本。 我的SA模板*我的后缀数组和论文的后缀数组计算出来的lcp高度数组有一个下标的偏移我的高度数组是lcp数组,也就是[0,n)是有效值论文的后缀数组在计算sa数组的时候是在字符串的末尾加上一个0我的这个模板不用这样操作(因为在计算的时候

2015-09-18 09:31:06 481

原创 poj3294 Life Forms(后缀数组+大于k/2个字符串中含有的最长公共子串)

解法:把字符串用不同的字符连接起来(所有的用于连接的字符都不同) 然后跑下后缀数组,按照lcp不小于二分的mid分组,然后再判断这一组里面是不是有足够的分布在不同的字符串里。#include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<cstring>#include<vector>usin

2015-09-16 21:13:51 437

原创 poj3415 Common Substrings (后缀数组+单调栈)

论文上提了一些思路,参考大牛的方法,勉强理解一些。。。#include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<cstring>using namespace std;#define LL long long#define cl(a,b) memset(a,b,size(a))cons

2015-09-16 15:27:22 433

原创 poj 1743Maximum repetition substring(后缀数组+RMQ+重复次数最多的连续重复子串))

题意:重复次数最多的连续重复子串,只能说是一个神题目啊,论文上点了些思路。 就这样吧。。。。#include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<cstring>using namespace std;#define LL long long#define cl(a,b) mems

2015-09-15 19:22:06 425

原创 spoj694 Distinct Substrings(后缀数组+统计不同子串的个数)

给定一个字符串,求不相同的子串的个数。 算法分析: 每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相 同的前缀的个数。如果所有的后缀按照 suffix(sa[1]), suffix(sa[2]), suffix(sa[3]), …… ,suffix(sa[n])的顺序计算,不难发现,对于每一次新加 进来的后缀 suffix(sa[k]),它将产生 n-sa[k]+1 个新

2015-09-14 20:08:14 559

原创 poj3261Milk Patterns(后缀数组+可重叠的 k 次最长重复子串)

题意:求一个串里最长的至少重叠K次的子串的长度。 按照lcp数组分组,二分答案,判断某一个分组里是否有足够的sa数组//#include<cstdio>//#include<algorithm>//#include<cstring>//using namespace std;//#define cl(a,b) memset(a,b,sizeof(a))//const int maxn=2

2015-09-14 18:34:45 444

原创 POJ 1743Musical Theme(后缀数组+不可重叠最长子串)

/* 题意: * POJ 1743 Musical Theme * 有N(1 <= N <=20000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的主题。 * “主题”是整个音符序列的一个子串,它需要满足如下条件: * 1.长度至少为5个音符 * 2.在乐曲中重复出现(可能经过转调,“转调”的意思是主题序列中每个音符都被加上或减去了同一个整

2015-09-14 16:27:22 384

原创 poj2217Secretary(后缀数组+两串最长公共子串(可以重叠))

题意:最长公共的子串的长度(要求是连续的) 分析:先考虑一个简化的问题,求一个串最少出现2次的最长子串,我们可以知道答案一定在相邻的后缀数组的公共前缀中,即LCP的最大值。那么本题可以转化为上述问题,把s,t串连接,在连接的位置插上一个在s,t里没有出现的字符,比如’\0’即可。#include<cstdio>#include<iostream>#include<algorithm>#inc

2015-09-13 21:08:46 637

原创 HDU 2222 Keywords Search(AC自动机)

自动机入门题#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#include<vector>#include<c

2015-09-05 12:37:52 486

原创 HDU1532Drainage Ditches(网络流入门+EK模板题)

是网络流的入门题,从EK开始网络流学习 EK通过BFS寻找增广路,然后更新最大流,直到找不到增广路。 学习资料#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include

2015-09-03 12:59:34 474

原创 HDU1878欧拉回路(欧拉回路的判定)

欧拉道路:一个图的是连通的,且最多只能有2个奇点(奇点就是度数是奇数的顶点)。则此图一定存在欧拉道路。 欧拉回路:图是连通的,且没有奇度的点。 今天先开个头在这,等这段时间忙完了,在继续做风神的题集#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>

2015-09-03 12:17:54 494

原创 HDU1811 Rank of Tetris(并查集+拓扑排序)

思路:利用并查集缩点,把相等的点看成一个,然后他们的父亲的号,就相当于他们的新号#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<

2015-09-02 16:18:32 435

原创 HDU3342Legal or Not(拓扑判断是否有环)

#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#include<vector>#include<cstdlib>

2015-09-02 13:41:23 392

原创 HDU2647Reward(拓扑+计算费用)

本题用栈写的拓扑会Wa,用队列才能过,注意建图方向。#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#includ

2015-09-02 12:37:02 427

原创 HDU1285确定比赛名次(拓扑排序)

因为优先输出小的,使用优先队列#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#include<vector>#

2015-09-02 11:20:40 429

原创 PAT 1096. Consecutive Factors (20)

#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#include<vector>#include<cstdlib>

2015-09-01 21:06:02 362

原创 PAT 1066. Root of AVL Tree (25)

AVL树的练习#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#include<vector>#include<c

2015-09-01 16:07:00 357

原创 HDU3315 My Brute (求KM最大时,要求改动最少★★)

题意:两个人,有部下,每个部下有血量和伤害值,赢一场会得到该场的分数,每个部下只能参加一次。问怎么安排,部下与对方干,最后能有最多的分数。 思路:预处理各个部下对战能得到的分数,在KM,由前一题,我们知道,直接把权重放大K倍(K>n).原来的边权重加一。#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>

2015-09-01 12:56:38 539

原创 HDU 2853 Assignment([好题] 求KM最大时,要求改动最少★★)

发生了和这位牛一样的故事。。。#include<cstdio>#include<iostream>#include<algorithm>#include<cmath>#include<set>#include<map>#include<string>#include<cstring>#include<stack>#include<queue>#include<vector>#

2015-09-01 11:12:32 566

空空如也

空空如也

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

TA关注的人

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