自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hdu3251 最小割

http://acm.hdu.edu.cn/showproblem.php?pid=3251 题意: 给定一张图,可以选择一些点,每个点有对应的点权,每条边有边权,选择一部分点后,必须摧毁一部分边,保证 1 不能到达这些点,获得的收益就是选择的点权和减去摧毁的边权和。并求出摧毁哪些边。 做法: 将带权的点连接一条边到t点,容量为该点的点权。最后将s连到1,容量为inf。求最小割,利用总的点权

2016-07-25 18:42:36 559

原创 hdu 3987 求割边最少的最小割

http://acm.hdu.edu.cn/showproblem.php?pid=3987 割边必然是满流的边 方法一: 重新建图,将满流的边改为容量为1,非满流的边改为容量为INF。再跑一边最大流就是割边的个数。 (要注意的是,改图的时候,应该对正向边进行判断,cap == 0则为满流) 方法二: 建图时,每条边的cap = cap*(E+1) + 1,则最后的最小割就是max_fl

2016-07-25 13:45:23 1738

原创 test

//hdu 1728#include<cstdio>#include<cstring>#include<queue>#define INF 10000000;using namespace std;int d1[4] = {0,0,1,-1};int d2[4] = {1,-1,0,0};int turn1[101][101];char map[101][101];int n,m

2016-06-23 20:10:08 403

原创 hdu2460 poj3694 求桥 + 求lca

http://poj.org/problem?id=3694 题意: 给定一个图,对这个图进行加边,求出每加一条边后,图中桥的个数。 思路: 首先肯定是要先求出原图中桥的个数,并且把桥标记起来。思考加一条边以后桥的数量会减少多少,联想到之前的那道题,就是加一条边,能够使桥的数量最少是多少。之前那个做法就是缩点后树的直径,这个就是可以减少的最多的桥的数量。因为如果这是一条链,将两个端点连起来,

2016-05-09 13:35:38 1143

原创 hdu 4612 求边连通分量+求树的直径

http://acm.hdu.edu.cn/showproblem.php?pid=4612 题意: 加一条边,使得桥的数量最少? 思路: 求边连通分量,缩点,然后变成一个树,树边都是桥,求树的直径。 树的直径就是最多减少的桥。 桥的数量最少就是原图中的桥的数量 - 树的直径。要注意重边。#pragma comment(linker, "/STACK:1024000000,10240

2016-05-07 18:35:49 810

原创 poj 3177 3352 边双连通分量

题目链接:http://poj.org/problem?id=3177 题意:至少加多少边才能构成边双连通图。 思路:求边双连通分量,对于每一个边双连通分量都看做一个点,也就是进行缩点,然后就构造出一个树,然后在这个树上加多少个树边,能够变成一个双连通图。 加的数量就是( 这棵树总度数为1的结点数 + 1 )/ 2#include <iostream>#include <cstdio>#in

2016-05-06 22:00:26 609

原创 poj1144 求割点的个数

题目链接:http://poj.org/problem?id=1144 求割点,模板题#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <stack>using namespace std;const int M = 1009;int

2016-05-06 21:46:05 293

原创 hdu3081 二分+并查集+最大流

http://acm.hdu.edu.cn/showproblem.php?pid=3081 题意: 有n个女孩,n个男孩,对于每个女孩有几个没有争吵过的男孩,每个女孩有几个朋友(都是女孩),对于没有争吵过的男孩可以建立关系。这样就可以进行一次游戏,那么下一次可以选择一个之前没有选择过的人建立关系。那么求最多能进行多少次关系。思路: 对于朋友关系,很容易想到用并查集维护,那么在一个集合中所连的

2016-05-03 21:41:05 347

原创 uva10480 最大流最小割定理

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1421 题意: 求最小割的边。方法: 跑最大流,最后跑完后,S-T割,将与源点相连的点分到一个集合,与汇点相连的点分到另一个集合。如果边的两个点分别在不同的集合中,那么这个就是最小割上的边。。#incl

2016-05-03 21:20:39 338

原创 aoj 2251 二分图匹配

题目链接: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2251题目大意: 问最少安排几个圣诞老人送礼物。 给了一些点,之间存在一些路径。给出了一些点必须在一定的时刻有圣诞老人到达,圣诞老人可以从任何点出发。求最少的圣诞老人个数。思路: 建图十分炫酷,本人太愚钝着实没看出来。。最坏情况下每一个点都需要一个圣诞老人,考虑怎么

2016-04-30 17:29:18 427

原创 poj2226 二分图匹配经典行列建图

http://poj.org/problem?id=2226 题目大意: 如何放木板保证只覆盖到’*’ 而没有覆盖到’.’。 思路: 进行行列建图,将横着的木板作为二分图中一侧的点,竖着的木板作为另一侧,定义出二分图。对于每一个’*’的点,考虑横着的木板如何覆盖它,竖着的如何覆盖,如何定义横着覆盖它的木板的编号,其实就可以把每一个需要覆盖的顶点所在的泥地上的最左端的顶点作为横着木板的编号,所

2016-04-30 17:00:32 1386

原创 Codeforces554C组合数学+费马小定理求逆元

http://codeforces.com/contest/554/problem/C 有k种颜色的气球,每种有ci个。 i颜色的最后一个气球必须在i+1颜色的最后一个气球的前面。 设总共有tot个气球。 考虑最后一种颜色的最后一个球必须放在最后面。最后一种颜色有c[k-1]个气球,所以方法为C(c[k-1]-1,tot-1)。保证最后一个球在最后。 此时总共还剩tot-c[k-1]个球。

2016-04-22 13:32:01 382

原创 hdu 5651 组合数学+费马小定理求逆元

http://acm.hdu.edu.cn/showproblem.php?pid=5651 给定字符串,判断任意交换顺序,能产生几个回文串。 先判定0,如果有超过一个字母出现的次数那么就是不可能的。 求个数就是用排列组合了。#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using n

2016-04-22 13:24:33 423

原创 poj 2724 最大独立集

http://poj.org/problem?id=2724 题意: 给了n,m。表示n个开关,m个操作。如果当前开关为’*’表示同时匹配0,1。只能将这m个操作所洗过的再洗一次,试问最少进行多少次操作。 思路: 要进行最少的操作肯定是优先进行’*’操作,所以就将这个转换成普通的0,1。所有的操作中,如果有只相差一位的就连一条边,最后将问题转换成最多有多少个两两不相连的点,也就是最大的独立集

2016-04-18 15:35:23 303

原创 poj 3692 最大团(二分图匹配,最大独立集)

http://poj.org/problem?id=3692 题意: 每个男生之间都相互认识,每个女生之间都相互认识,每个男生可能认识部分女生。求一个集合里面的人相互都认识,这个集合的人数最多是多少。 思路: 相互都认识,如果把认识关系当做边的话,那么要求的就是最大完全子图(也叫最大团)。 可以发现男生和女生自身都是一个完全子图,所以按照认识关系建图的话,违背了二分图的原则。思考用不认识的

2016-04-18 15:11:56 995

原创 最大独立集 poj1466

http://poj.org/problem?id=1466 题意: 有一种关系存在于一个男孩和女孩之间,找出一个集合中任意的男孩和女孩不存在这样的关系。问这个集合的最大人数。 将关系视为一条边,要求一个集合不存在这关系,就表明了集合中的顶点两两不能相连。就是求最大的独立集了。 最大独立集:在G中两两不相连的顶点集合S 最大独立集的点数 + 最小顶点覆盖的点数 = V的个数 二分图中:最

2016-04-18 14:33:03 376

原创 floyd +二分答案+最大流 poj2112

http://poj.org/problem?id=2112 题意: 有n个机器,有c个奶牛,每个机器能够最多接受m个奶牛。给出一个距离(n+c)*(n+c) 的距离矩阵,问要让每一个奶牛都能走到一个机器,求这种情况下走的最远的奶牛的最小的距离。 思路: 很容易看出这是一个最大值最小化的问题。 先进行floyd,跑出最短路。进行二分答案,对于这个走的最远的距离,如果奶牛到某一个机器的距离小

2016-04-18 14:13:57 394

原创 全局最小割模板 poj2914

http://poj.org/problem?id=2914 参考资料:http://www.hankcs.com/program/algorithm/poj-2914-minimum-cut.html 就是单纯的全局最小割#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include

2016-04-18 13:55:46 423

原创 hdu2732 网络流经典建图

http://acm.hdu.edu.cn/showproblem.php?pid=2732 题目大意: 给了n和d,表示有n行的图,(列数没给),对于每一个人都可以最长跳d的距离,对于每一个柱子有一个限定条件,只能从这里跳出去多少次。给了两张图,一张表示柱子的限定条件,一张给了现在那些柱子上有人。问有几个人不能跳到图的外面。 思路: 最大流建图。将图的外面抽象为一个汇点t,对于图中本来就可

2016-04-18 13:50:16 1144

原创 最大流求最大权闭合图

参考论文: 算法合集之《最小割模型在信息学竞赛中的应用》 有两道题都跟这个论文有关。poj2987链接:http://poj.org/problem?id=2987 题意:裁员,如果要开除这个员工那么这个员工的下属也要被开除,给出每个员工的贡献值和从属关系,求最小的裁员数和最大的贡献值。 解法: 求最大权闭合图,闭合图就是图中每个点的后续都在这个图中,求出点的权值之和最大的这样的图。 论文

2016-04-12 11:11:42 460

原创 2-SAT 挑战4.3习题

poj3678: 题目链接: http://poj.org/problem?id=3678 题意: 给定一系列的布尔表达式,问能否找到一个解是这些都成立? 比较裸,就是对应的建立限制条件。如果i 为真,j也必须为真就建立(i,j)一条边。 要注意的就是,XOR ,比如x XOR y = 1 , 那么 等价于x=>y’ AND x’=>y AND y=>x’ AND y’=>x x XO

2016-03-30 17:03:54 291

原创 2-sat 问题 总结 例题poj 3683

学习资料: http://www.cnblogs.com/kuangbin/archive/2012/10/05/2712429.html http://blog.csdn.net/pi9nc/article/details/11849843 2-sat问题描述: 给定n对二元组,给定一定的限定条件,并且对于每一个二元组来说能且仅能选择一个元素,问如何选择才能满足所有的限定条件。如果这个限定

2016-03-29 17:03:17 879

原创 有向图的强连通分量的分解 总结 poj2186例题举例

常用两种算法: tarjan和korasaju算法。 学习资料: https://www.byvoid.com/blog/scc-tarjan/ https://zh.wikipedia.org/wiki/Tarjan%E7%AE%97%E6%B3%95 挑战P320 定义: 如果一个有向图S,在图中任取两个点u,v,都存在一条u到v的路径,那么称这个图是强连通的。而有向图的一个强连通分

2016-03-26 20:58:34 4793

原创 AC自动机总结 与模板题

参考学习资料:http://blog.csdn.net/niushuai666/article/details/7002823 学会trie树和kmp算法后就可以学习ac自动机了。 ac自动机可以用于多个模式串的匹配问题上。比如考虑在一个文本中出现了几个所给出的模式串。 整个结构大致跟trie树一样,不过多加了个fail指针,这个思想跟KMP算法是类似的,就是防止主串的回退,使当前字符失配时跳

2016-03-19 20:25:58 831

原创 KMP、trie树总结

最近打算把hihocoder上之前的都补一下,会的就当做复习,不会的要抓紧学习。 感觉基础算法还有好多漏洞。 要加紧脚步了。 掌握这两个之后就可以学习trie图了(感觉ac自动机算是他的一种构造DFA的方法?) KMP: 资料:http://blog.csdn.net/v_july_v/article/details/7041827 讲的比我详细。。 我就是简单总结下。 用于字符串的匹配

2016-03-19 19:33:37 1178

原创 LCA 在线算法 dfs + ST算法 总结 hihocoder 1069

链接:http://hihocoder.com/problemset/problem/1069 思想: 利用dfs + ST 算法 记录下dfs的序列,还有dfs过程中每一个点的深度,对应到之前的dfs的序列中。还需要记录一个在dfs中每一个节点首次出现的位置,也是对应到dfs的那个序列中。 举个例子(画的很丑) 假设先去右儿子这样可以得到 dfs序列称作f : 1 2 5 7 5

2016-03-16 16:29:03 2457

原创 LCA 离线算法 tarjan 总结 与模板题

LCA问题为最近公共祖先问题,常见的有一种在线的算法和一种离线的算法。这里介绍一下离线的tarjan算法。 离线算法需要首先读入所有的查询,然后重新组织对查询处理的顺序来达到更高效的处理。 tarjan算法使用的是dfs + 并查集的思想。 算法描述: 对于每一个dfs到的节点,就需要在并查集中创建一个以这个节点为独立的集合,然后继续dfs子树,当搜索完子树的时候,也就将与这个子树内的LCA

2016-03-13 16:04:56 1855

原创 RMQ问题 ST 算法总结 poj3264

sparse table algorithm 简称ST算法,可以用于求解RMQ问题(range minimum query) ST算法是一个在线算法,在线算法即对于每一个查询可以马上给出解答。但需要较长的时间来进行预处理。 在O(nlogn)的时间内进行预处理,而可以在O(1)的时间内解答每个询问。 预处理: ST算法预处理利用的是dp的思想。 定义状态dp[i][j] 表示的是从第i个

2016-03-12 15:08:03 331

原创 codeforces 616C The Labyrinth (dfs)

链接:http://codeforces.com/contest/616/problem/C 题意: 给定一个矩阵,对于每个’*’的地方,假设将它变成 ‘.’ , 那么要求她所在的全为’.’的连通块的大小。 思路: 很容易可能就是想到直接用dfs硬上,就跟那个经典的dfs的找水池数的题目类似,但是就会超时(别问我为什么知道的,我也侥幸想偷懒试过。。) 换一种想法,我们先不修改那个障碍的

2016-03-03 16:22:14 402

原创 codeforces 612D The Union of k-Segments (sorting)

好久没写过博客了。。。 这学期开始要好好分配时间了,在一个时间点中不要将精力太过于分散了,这样感觉最后什么都学不到,什么都学不好。。 这学期好好训练! 链接:http://codeforces.com/contest/612/problem/D 题意: 给定n条线段,给出一个k,定义一个点符合条件的是被至少k条线段覆盖到,要求找出一个最小的线段集合,这个集合能够包含所有满足那个条件的点。

2016-03-03 15:58:08 365

原创 trie树 soj3076

trie树学习资料:http://www.acmerblog.com/trie-tree-template-3700.html trie树第一题 题意:给定n个字符串,求出每个字符串之前有几个与他相同的字符串。 模板:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using names

2015-11-25 21:29:00 277

原创 树的直径 poj1985 poj 1849 hdu 2196

资料:http://www.cnblogs.com/celia01/archive/2012/07/30/2615842.html http://www.cnblogs.com/wuyiqi/archive/2012/04/08/2437424.html 树的直径:树中最长路径的长度。 方法:假设最长路径为s-t ,对于任意一点u,找一条以u为起点的最长路径,这条路径的终点必为s、t 中的一点

2015-11-25 20:50:36 461

原创 soj 2511 Moooo 单调栈

http://acm.scu.edu.cn/soj/problem.action?id=2511 题意:每头牛都会发出叫声,然而这个叫声只会被离他最近的一个比他高的牛听到,当然这个叫声是双向传播的。 思路: 找出第一个比他高的,就可以维护一个从栈顶到栈底单调增的栈,每次每个元素要进栈之前就将栈中所有比他小的元素出栈,这样之后栈顶的元素就是第一个比他高的。也就是跟那个windy cake 类似,

2015-11-17 22:11:46 398

原创 soj 3085 windy's cake V 单调栈的应用

http://acm.scu.edu.cn/soj/problem.action?id=3085 单调栈: 栈与单调性的结合。维护栈顶到栈底为单调增或减。可应用于求以a[i] 为最值向左(右)扩展的最长长度,该区间内a[i]为最值。比如该题思路:则要求以a[i] 为最小值的 最长区间,运用一个l[i] 来记录区间的左边界,r[i]来记录区间的右边界。本题维护一个栈顶到栈底递减的单调栈,l[i]为

2015-11-16 13:00:41 355

原创 scu 2057 树状数组 单点更新区间求和问题

链接:http://acm.scu.edu.cn/soj/problem.action?id=2057 题意: 给定n个店铺,给了初始商品i个。 两种操作,1)将第a个店铺的商品加b个。2)询问a~b这些店铺中有几个商品的数量是一个素数。 做法: 单点更新,区间求和问题,利用树状数组实现。不过我还是比较习惯线段树,但是这题线段树太诡异。。只能放弃治疗。刚好复习一下树状数组吧。。 对于修改

2015-11-09 15:38:05 357

原创 scu 3636 二维单调队列

链接:http://acm.scu.edu.cn/soj/problem.action?id=3636 题意: 从一个大a*b的矩阵中,找出一个n*n正方形的区域,找出最大值和最小值,最后输出a*b矩阵中所有“n*n正方形区域中的最大整数和最小整数的差值”的最小值。 做法: 二维单调队列,类似那个滑窗的题目。对于这题可以考虑将每一行的长度为n的区段的最大值和最小值都压缩到一个点上,这边就可以

2015-11-09 15:29:36 604

原创 scu 3139 单调队列

链接:http://acm.scu.edu.cn/soj/problem.action?id=3139 单调队列经典应用。 题意:有一个滑窗,长度为n,将滑窗一直往右边移动,确定每一次这个滑窗里面的最大值最小值是多少。 单调队列: 又称双端队列。以保存最大值为例。 队列中的元素是单调的不减的。 队头存放最大值,每次要将元素加入队列的时候,从队尾开始将比这个元素小的弹出,最后将这个元素加入

2015-11-09 15:15:11 428

原创 hdu 1074 状压dp

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074 题意:有n个作业,对于每一个作业有一个deadline,有一个完成这作业所需要的时间。如果超过deadline一天就要扣一分,求怎么安排写作业的顺序才能保证扣的分最少。 思路: 对于每一个作业有三个元素,名字,ddl,所需要的时间。 用不同的状态表示当前作业完成的情况,运用状压dp 定义

2015-11-01 23:25:31 333

原创 hdu 1078 记忆化搜索

hdu 1078 http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:每次可以朝一个方向走k格,必须走到一个数值比当前值大的点,问最多数值加起来能有多少,走到不能再走。 一开始定义错了,定义dp[i][j] 为以(i,j)为终点时所能得到的最大值。 dp[i+t*dx][j+t*dy] = max(dp[i+t*dx][j+t*dy],dp[i]

2015-10-24 23:14:47 454

原创 hdu 2795 单点更新

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795 题意: 有一个公告栏,h*m的,给定n个操作,对于每一个操作给定一个数wi,表示有一个通知的大小是1*wi的,每次对于这种操作将这个通知放在尽可能上面尽可能左边的位置中去。 思路: 有h行,将每一行初始为m,表示还有m个空位可以放,那么运用一棵线段树来记录下,行之间的区间最大值,就是可以放下的

2015-10-09 21:04:27 270

空空如也

空空如也

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

TA关注的人

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