[BZOJ4842]Delight for a Cat[费用流]】的更多相关文章

题意 题目链接 分析 类似 最长k可重区间集 一题. 由于本题区间长度相同,首先可以将点的影响看成区间,区间看成点. 先默认所有位置选择事件2,选择区间看做改选事件1 .于是问题变成了求收益最大的方案使得每个点被覆盖次数满足 \(t1\le x\le k-t2\) . 首先所有的区间连边 \(l\rightarrow r + 1\) ,容量为1,费用为 \(s_i-e_i\) .然后考虑上限:连边 \(S\rightarrow 1\) ,容量为上限 \(k-t2\) ,费用为0.正确性考虑如下证…
BZOJ 参考这儿. 首先如果一个活动的时间满足条件,那么另一个活动也一定满足.还有就是这题就是费用流没有为什么.不妨假设最初所有时间都用来睡觉,那么我们要对每个\(k\)大小区间选出\([t2,k-t1]\)个时刻打游戏,同时要让选出的\(\sum s_i-e_i\)尽量小. 假如要求打游戏的时间恰好为\(t2\)怎么做呢? 对每个时刻建一个点\(i\),由\(i\)向\(i+k\)连边(不存在则直接连向汇点),容量\(1\)费用\(s_i-e_i\).建一个虚点\(p\),\(p\)向\(1…
题意:n天内你每天可以s或者e,分别有一定的收益. 每连续k天中s的天数要大于ds,e的天数要大于de,求最大收益. 解:费用流解线性规划. 先假设全部选e,然后一天s的收益为si - ei ai表示第i天是否s,up = k - de, down = ds, R = up - down,有: 两两做差: 最后两个式子是人为补全的,这样就满足:每个变量在等号左边和右边各出现一次. 把每个等号看做点,每个值看做一条边. 常数项就连向源汇. y和z代表的边啥都不需要限制,a要限流为1,费用为si -…
[BZOJ4842][Neerc2016]Delight for a Cat Description ls是一个特别堕落的小朋友,对于n个连续的小时,他将要么睡觉要么打隔膜,一个小时内他不能既睡觉也打隔膜,因此一个小时内他只能选择睡觉或者打隔膜,当然他也必须选择睡觉或打隔膜,对于每一个小时,他选择睡觉或打隔膜的愉悦值是不同的,对于第i个小时,睡觉的愉悦值为si,打隔膜的愉悦值为ei,同时又有一个奥妙重重的规定:对于任意一段连续的k小时,ls必须至少有t1时间在睡觉,t2时间在打隔膜.那么ls想让…
4842: [Neerc2016]Delight for a Cat_1283: 序列 题目大意:ls是一个特别堕落的小朋友,对于n个连续的小时,他将要么睡觉要么打隔膜,一个小时内他不能既睡觉也打隔膜,因此一个小时内他只能选择睡觉或者打隔膜,当然他也必须选择睡觉或打隔膜,对于每一个小时,他选择睡觉或打隔膜的愉悦值是不同的,对于第i个小时,睡觉的愉悦值为si,打隔膜的愉悦值为ei,同时又有一个奥妙重重的规定:对于任意一段连续的k小时,ls必须至少有t1时间在睡觉,t2时间在打隔膜.那么ls想让他获…
题意:有n个小时,对于第i个小时,睡觉的愉悦值为si,打隔膜的愉悦值为ei,同时对于任意一段连续的k小时,必须至少有t1时间在睡觉,t2时间在打隔膜.如果要获得的愉悦值尽 量大,求最大的愉悦值和睡觉还是打隔膜的方案.(输出两行,第一行为最大愉悦值,第二行n个字符第i个字符为S则表示第i个小时在睡觉,为E则表示第i个小时在打隔膜) https://darkbzoj.cf/problem/4842 我现在还没学线性规划的一系列东西(真丢人),写一下直观上的理解,学完线性规划和差分建图再回来写题解.…
题目描述 $n$ 个连续的位置,每个位置可以填入 S 和 E ,第 $i$ 个位置填入 S 可以获得 $s_i$ 的收益,填入 E 可以获得 $e_i$ 的收益.要求每连续的 $k$ 个位置必须包含至少 $t1$ 个 S 和至少 $t2$ 个 E ,问最大收益以及方案. 输入 第一行四个整数,n,k(1<=k<=n<=1000),t1,t2(0<=t1,t2<=k;t1+t2<=k),含义如上所述. 接下来一行n个整数,第i个整数si(0<=si<=1e9)…
这套题目做完后,一定要反复的看! 代码经常出现的几个问题: 本机测试超时: 1.init函数忘记写. 2.addedge函数写成add函数. 3.边连错了. 代码TLE: 1.前向星边数组开小. 2.用了memset,慎用. 1. CodeForces 498C  Array and Operations 我发现cf上的网络流的建图思路都非常好,准备着重练习一下. 此题枚举每一个质因子,对每个质因子建图,确实是很好的思路. #include <bits/stdc++.h> using name…
算法 zkw费用流:多路增广,增光D[y]=D[i]+c的边 无源汇上下界最小费用可行流 每次强行增加下界的流量 类似网络流,拆边 原边的费用为c,拆出来的边费用为0 负边和负圈 直接应用 SDOI2016数字配对 我的思路: 建出i*bi个点,如果ai是aj的质数倍,从bi个点向bj个点连边 跑有上下界可行费用最大流(woc这是个什么东西..) 正解 两个数能够配对,分解后指数之和差为1则可以匹配 按照差值分为两类 不断增广 WF2011 有上下界最大费用最大流 ——>限制相等的情况,可以通过…
题目链接: Coding Contest Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) Problem Description A coding contest will be held in this university, in a huge playground. The whole playground would be divided into N blocks,…