
洛谷
LXY_XYL
这个作者很懒,什么都没留下…
展开
-
洛谷 P1402
这道题。。基本上和上一道一样 还是把点分割开来。。。话不多说。。继续建图 可以参照上一题 以下就是AC 代码了。。。感觉这里的题目可以多熟悉一下板子。。。最大流这里题目都很有意思 #include<iostream>#include<queue>#include<cstdio>#incl...原创 2018-11-23 16:40:25 · 170 阅读 · 0 评论 -
洛谷P4015
题目还是网络流,最小费用最大流因为 m 个仓库, n 个商店,之后还有各个点之间的运输费用,建图如下:S 连 仓库,流量为 ai 费用 0,之后把 T 连 商店,流量设为 bi, 费用设为 0, 之后输入 c[i][j] 连一条 i,j路 流量为 INF,费用为 c[i][j]求最大费用,最小费用。最小费用跑一下最小费用最大流就好了,之后最大费用,先把图重置一下,只需要改一...原创 2018-12-06 23:25:02 · 216 阅读 · 0 评论 -
洛谷P2774
这道题真是太精彩了看似我们是取出来方格里的一些数,让取出来的数最大。那么我们想一下,我要是取一个数,相邻的几个数里我们只能取走一个(为了让这些数字之间有空格)那么只有相邻的数字才会出现相互的干扰,那么首先我们知道 我们取出的数字 = 总数字 - 剩下的,那么我们可不可以认为,我们拿掉的数,就很像网络流里被 割掉的边?之后 仔细观察我们可以发现,这个方格就是个二分图啊根据 i+j...原创 2018-12-07 00:20:29 · 232 阅读 · 0 评论 -
洛谷 P 2762
这道题还是网络流。目前知道了实验花费,设备花费,知道了赞助金。我们的目的是骗取最多的赞助金,那么这个技巧就在于如何选实验和器材了,如果实验都能做,器材都不花钱,那么我们肯定把所有实验都做掉就会赚的钱更多,那么一涉及到选择什么东西。。立刻就想到了割这个东西,那么我们要选取的肯定是最小的割,来保证我们选的钱是最少的,那么我们建图的时候就有思路了()( S )-------赞助金----- ...原创 2018-12-07 09:54:03 · 151 阅读 · 0 评论 -
洛谷P2016
这道题,看一眼,感觉很像二分图,感觉既然需要把每条路都覆盖上,那么这个图看似是树,实际上也是一个二分图,举个例子A ----- B ----- C要想把这个图里的路覆盖上,只需要一个B点就足够了。而复杂一点的话A---B---C---D---E这样的话还是只需要两个点就可以覆盖完全了,那么很显然,对于每个树如果想把所有路径都覆盖上,就可以完全认为这个树的相邻节点都要染上不同...原创 2018-12-14 14:24:48 · 127 阅读 · 0 评论 -
洛谷 P 1890
题目是道区间dp,用线段树莽出来的不多谈了#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 1e5+5;#define lson l,mid,rt<<1#define rson mid+1,r,rt<...原创 2018-12-15 20:51:58 · 162 阅读 · 0 评论 -
洛谷P2858
还是一道区间dp题目。翻译如下 约翰经常给产奶量高的奶牛发特殊津贴,于是很快奶牛们拥有了大笔不知该怎么花的钱.为此,约翰购置了N(1≤N≤2000)份美味的零食来卖给奶牛们.每天约翰售出一份零食.当然约翰希望这些零食全部售出后能得到最大的收益.这些零食有以下这些有趣的特性:•零食按照1..N编号,它们被排成一列放在一个很长的盒子里.盒子的两端都有开口,约翰每天可以从盒子的任一端取出...原创 2018-12-15 23:27:12 · 386 阅读 · 0 评论 -
洛谷P2879
一不小心点开的题。。。。看了半天发现是个水题。。。 不多讲了倒是很有意思一排牛最高的知道了,最低的知道了,知道那两头牛之间可以相互之间看见,求可能身高。。。(最低的根本没用)a b 之间的肯定比 a b 低,那么都比最高值 -1 ,如果暴力可能能过,但是不够好,前缀和搞定。 以下AC 代码。。。有重复部分,用 map 判重 搞定。。。...原创 2018-12-16 00:17:12 · 294 阅读 · 0 评论 -
洛谷P2764
最小路径覆盖。。。板子题。。。之前用二分图搞了一下,这次用网络流写了一发建图如下s ----- i ---------------- i+n ------- t容量设为 1跑一边最大流就好了。。。。 以下是AC代码#include<iostream>#include<cstdio>#include&l...原创 2018-12-16 13:28:10 · 156 阅读 · 0 评论 -
洛谷 P 3919 主席树模板
很简单可持久化线段树摸板题在不同版本线段树下操作1更新某个版本线段树的某个点2求某个版本线段树某个点值一看就是主席树,主席树现在学了一遍后感觉更加透彻了,这个东西我们可以知道每个点可能有多个父节点,其实理论上应该是多个线段树,但是为了节约空间,对于一样的部分,两个线段树就可以共用一个子树,访问的时候也需要通过不同路径,而更新的时候,在这道题这里只需要更新相应版本的父节点就好了,...原创 2019-01-14 19:54:27 · 156 阅读 · 0 评论 -
洛谷p1088
很简单,求当前n位数字后边的第 m 个排列当然可以直接stl 库,这里自己写了一下先上STL解决方法#include <bits/stdc++.h>using namespace std;int num[10010];int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i...原创 2019-01-16 15:58:56 · 359 阅读 · 0 评论 -
洛谷P2986
简化版题意:给一个边点都带权的树,求这棵树的重心到所有点的边权点权和。 一般题意:有个 n 个牧场,每个牧场有 A_i个奶牛,不同牧场之间有距离,求以某一个点为一次聚会的举办地,使得其他所有点到这个点花费最少(花费等同于 一个节点到这个节点的距离 * 一个节点内的奶牛数目) 首先我们考虑一下 树的重心这一概念,现在有一个直接结论,边为无向边的树的边权对树中心的位置不会造成影响。...原创 2018-12-13 12:49:07 · 265 阅读 · 0 评论 -
洛谷P1352
本题很巧妙。我们这样去构想整个树,对于每个人只有去和不去两种情况,如果 A 去了,A的手下必定不去,反之如果A不去,那么A的手下可以去,也可以不去,既然只有两种情况我们就可以构造一个状态转移方程:设置两个Dp 一个记录当前节点不去时的总快乐度,一个记录去的话的总快乐度Dp1[x](假设A去舞会)+= Dp2[x.to] ;Dp2[x](假设A没去) += max( Dp1[x.to],...原创 2018-12-12 23:28:51 · 218 阅读 · 0 评论 -
洛谷P2014
做的第一道 树形 dp这道题和背包问题很像,但是不同点就在于,有一些课需要把他前边的必修修完才能选,那么如果我们把 0 号节点当做所有课的必修课来看的话,这不就是一个有根树吗。所以,我们就可以采用链表的方式连接那些相互之间有关联的课程,既然是dp的思路吗,对于每个叶子节点,我们先不用管,对最远的节点,记录一下他儿子们中选择的最大值(采用状态转移公式),这样从远到近,最终,dp[0][m+1...原创 2018-12-12 22:38:37 · 299 阅读 · 0 评论 -
洛谷 P1345
这道题 很有意思这里的割不是线了 是点,这题比较麻烦的是建图用一下网上大牛的图,附博客链接:https://www.luogu.org/space/show?uid=25630有了这个图,整个题就显得简单很多了,我们把一个点 拆成两个,一个是 i 另一个是 i + n ,这两点之间肯定先连上,之后对与一个点分成的两个点,我们去以此把无向图变成一个有向图,当然这道题里所有的边容量...原创 2018-11-22 10:41:05 · 205 阅读 · 0 评论 -
洛谷 P2891
这又是一道涉及到拆点的问题,有了上一题的经验,这一题思路就打开了我们这样拆点因为一头牛只能喝一种饮料,吃一种食物,而且一种食物,一种饮料 吃过了 就没了如果单纯的构建 超级源点 --- 饮料 ----- 牛 ------ 食物 ------ 超级汇点把源点到饮料 食物到汇点边容量设为1,能保证不会大家分食物,这种图,很显...原创 2018-11-22 23:41:45 · 177 阅读 · 0 评论 -
洛谷 P2153
这道题,看上去就发现是一个最小费用最大流了,这里还是用的 spfa 写的 首先需要注意一点,每个十字路口只能走一次,那么还是运用我们的拆点方法,来限制入点到出点,第二次接触带有最小费用的最大流。。。下边这些话摘选自一个大犇的博客:https://blog.youkuaiyun.com/liusu201601/article/details/79443323解题思路:1、请结合最大流的模...原创 2018-11-24 15:45:02 · 128 阅读 · 0 评论 -
洛谷 P2944
这道题就是一个最小割?..题意还是明了的,已知最终的汇点,也知道了某几个点必定到不了汇点,求一下不包含已知点的最小割。那么 就有一些思路了,我们把已知点 和 最终汇点之间的容量搞成无穷大,不就不会让这个边被割掉了吗。而且需要注意的是,这里需要统计割里的点的数目,需要拆点限流的,未知点入点出点之间流量就设为1吧。不同点之间的容量还是无穷大,那么这样我们去跑最大流的时候,所割的边就不会是 ...原创 2018-11-24 22:13:37 · 108 阅读 · 0 评论 -
洛谷 P 2763
首先表示这道题有点坑,可能AC代码测试样例结果不一样。。。。首先题目里表示需要 k 个题型 n 道题目那么这很先看上去就是个二分图匹配。。。但是我用的网络流做法。。。 把每个题型 和 终点 建边 输入 容量把每个题目 和起点建边 由于只能选一道 容量为 1之后 我们把题目和可对应的题型之间建边 容量也设为 1跑一下最大流就可算出最多的匹配方案 如果不等于 m就无解否则有...原创 2018-11-30 13:54:30 · 137 阅读 · 0 评论 -
洛谷P3379
LCA 板子题。。。自己写了一个练练手。。。发现还可以。。 直接上AC 代码了。 #include<iostream>#include<cstdio>#include<cstring>#include<queue>#include<vector>using namesp...原创 2018-12-02 22:26:24 · 224 阅读 · 0 评论 -
洛谷P2756
。。。。这道题。。。虽说是网络流的题。。但是我还是偷懒了。。。用匈牙利交了一发。。没想到过了。。。既然涉及到二分图匹配。。用网络流的话思路很简单,把匹配的飞行员之间建边,容量设为 1,可以把 外籍的和汇点相连,本地的和源点相连,外籍的和汇点边容量为 1.之后跑一边最大流,算出最多人数,然后再遍历一遍。。看一看哪些边被拆掉了。。输出对应的一对就可以了。。 当然如果...原创 2018-12-01 11:53:59 · 198 阅读 · 0 评论 -
洛谷P1231
题目还是很简单的。。双重的二分图匹配。。。。建图的时候需要注意,作为中间连接点的点 需要拆点的。。避免多次选择。。。 源点 ----- 练习册 ----- 书 入点------- 书 出点 ---------- 答案 -----------汇点。。跑一边最大流。。。(建图是真的根绝恶心) 以下是 AC 代码 ...原创 2018-12-01 15:54:19 · 144 阅读 · 0 评论 -
洛谷P4016
这道题乍一看和网络流没什么关系。。但是,如果看不出关系,只能说明还没理解题意(虽然确实可以不用网络流)既然题目里给的仓库排列是个环,那么这也是一个图,一个无向图啊。我们需要搞的是让每个点的存货都一样,最终需要求得是运了几次货物(只有相邻的相连)那么我们就想到了费用流这个神奇的东西了最小费用最大流,使我们求在边有权值时刻下的最大流,这道题我们想让所有仓库存货一样,那么先抛开权值,如果...原创 2018-12-01 20:58:25 · 143 阅读 · 0 评论 -
洛谷 P1640
这道题 二分图匹配 但是 很有意思也很有挑战性。。装备有两个属性,而且我们对于装备的属性使用 必须是连续的。。。那么 我们不如直接把 a b 和 i 建边(注意是 a -> i, b -> i),代表第 i 件装备 可以 在 a 或 b 属性处使用每件装备只能用一次,如果把攻击序列建成点,就是装备和攻击顺序的匹配。比如属性值是3和5,那么这件装备要么在3位置要么在5位置...原创 2018-12-01 23:48:08 · 171 阅读 · 0 评论 -
洛谷 1134
题目很简单求 n! 从右向左最大非零位如果模拟这道题貌似是可以过得,但是假设数据量如果够大,这种模拟方法还是不够好,所以我们需要进行一些智慧的改进。既然最大非零位,那右边的 0 必定需要被消掉,那么 0 就是来自于 10 这个因子的,而 10 很明显可以拆解成 2*5,那么我们先筛选一遍,因子,抛去所有的含 2 5 10 的因子(当然如果2或5其中一个比另一个多 我们还要乘上多出来的部...原创 2019-01-16 17:11:07 · 209 阅读 · 0 评论