自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 bzoj1877 晨跑

红果果的最小费用最大流模板 从x到y连一条边,容量为1(因为路只能走一遍),权值为k。 但是要注意一点就是不能走重复的路线,所以在一个周期内,每天的晨跑路线都不会相交(在十字路口处) 所以把每个点拆成入点和出点,容量为1,权值为0就可以保证每个点只访问一遍啦233 对于起点为1或者是终点为n的路要特殊处理一下,因为学校和宿舍不视为十字路口#include <iostream> #incl

2017-04-29 15:12:06 286

原创 最小费用最大流

给出一个容量网络,那他的最大流一定是一个定值(即使是有多个一样的最大值)。 所以我们从开始的可行流开始增广时,最终的增广量是一定的。 所以为了满足最小费用我们只需要每次找最小费用的增广路即可,直到流量为最大值。 这个问题仅仅是在求增广路时先考虑费用最小的增广路,其他思想和EK思想一样。 我们学过SPFA求最短路算法(bellman-ford的队列优化),所以我们将弧的费用看做是路径长度,即

2017-04-28 17:36:42 344

原创 bzoj 1066蜥蜴

作为在bzoj上的第一题,感觉很伤233 第一道不是板子的最大流 这个建边要用到点 石柱的高度其实就是能经过蜥蜴的个数 将石柱拆分成两个点一个入点,一个出点,其容量就是石柱的高度了 如果两个石柱两两可以到达,那么在A的出点向B的入点建一条边,其容量为INF,来模拟蜥蜴跳过去的过程 虚拟两个点,一个为源点s,一个为汇点t,如果石柱上有蜥蜴的话,从s到石柱的入点连一条边,容量为1,表

2017-04-23 11:43:58 290

原创 最小割

首先感谢这个博客讲的很明白 链接 割的定义 C[S,T]是将网络G分为s和t两部分点集 S属于s且T属于t 从S到T的边的全集 在这张图中,割即为s–>1这条边与3–>2这条边 在网络流中,最大流等于最小割(最小割为割去的边的容量) 首先任意一个流小于等于任意的一个割 打个比方源点相当于自来水厂而汇点相当于你的家,有人不想让你的家有水喝,那就必然要砍掉几根 tube让你的家里断水

2017-04-23 09:52:09 366

原创 很玄学的最大流(模板)

先来一发最简单的Ford-Fulkerson 邻接矩阵版#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<queue>using namespace std;const int INF=0x7ffffff;int map[999][999];bool f[999];in

2017-04-20 16:06:25 326

原创 2017SDOI游记

作为一个蒟蒻,去见了见世面,没有一个题想到了正解,全都是暴力过样例啦2333 最后骗了30回来了 蒟蒻写游记就这么点23333

2017-04-16 11:14:37 939

原创 AC自动机

2018-4-2重新编辑作为一个蒟蒻的我,终于学习了AC自动机。 其实之前我以为AC自动机是自动AC的呢!(手动滑稽) 其实AC自动机啊,是字符串匹配中的多匹配问题的基础2333 举个栗子 母串 hychycxyxy 三个匹配串 hyc chy cxyy 有两个是母串的子串2333 如果匹配串只有一个的话,那就用KMP喽,可是这个是很多个匹配串咋办呢 那就得请出炒鸡厉害...

2017-04-16 10:58:13 860

原创 杂务安排

题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作。尽早将所有杂务完成是必要的,因为这样才有更多时间挤出更多的牛奶。当然,有些杂务必须在另一些杂务完成的情况下才能进行。比如:只有将奶牛赶进牛棚才能开始为它清洗乳房,还有在未给奶牛清洗乳房之前不能挤奶。我们把这些工作称为完成本项工作

2017-04-16 08:16:52 464

原创 KMP

KMP是字符串的单匹配算法,判断一个字符串是不是另一个字符串的子串。 处理next数组void find(){ int len=strlen(s2); int t1=0,t2=-1; net[0]=-1; while(t1<len) { if(t2==-1||s2[t1]==s2[t2]) net[++t1]=++t2

2017-04-16 08:07:34 312

原创 灾后重建

QAQ 对弗洛伊德的优化233#include <cstdio>#include <iostream>#include <cstring>#define inf 0x3f3f3f3fusing namespace std;int map[300][300];int t[999];int main(){ int n,m,k; memset(map,0x3f,sizeo

2017-04-05 19:10:04 220

原创 最大数

QAQ 鹅鹅鹅饿鹅鹅鹅 虽说这个题啊,可以用线段树做,可是老师说不太好23333。 单调栈的作法,维护一个单调递减的栈(因为要找的是最大值啊,后面的比前面的大了前面的就没意义了不是么)#include <cstdio>#include <iostream>using namespace std;int p;int a[999999],b[9999999];//a代表编号所代表的数,b为

2017-04-05 16:05:58 261

空空如也

空空如也

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

TA关注的人

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