2391专题

poj 2391 Ombrophobic Bovines (网络流)

这是一道很经典的网络流的题目。首先我们考虑假如我们的时间为无穷大。我们吧每个点拆成2个点 i和i' .。虚拟源点s和汇点t。对于每个点建边(s,i, a[i])  (i‘,t,ib[i]) 。 其中a[i]为给点有多少牛,b[i]为容量。i和j连通 建边 (i,j',inf);如果最大流==所有牛的个数,就可能装下所有的牛。那么现在我们考虑时间。假设最大时间为T.那么如果i到j的的最短时间>T

一次遍历,LeetCode 2391. 收集垃圾的最少总时间

一、题目 1、题目描述 给你一个下标从 0 开始的字符串数组 garbage ,其中 garbage[i] 表示第 i 个房子的垃圾集合。garbage[i] 只包含字符 'M' ,'P' 和 'G' ,但可能包含多个相同字符,每个字符分别表示一单位的金属、纸和玻璃。垃圾车收拾 一 单位的任何一种垃圾都需要花费 1 分钟。 同时给你一个下标从 0 开始的整数数组 travel ,其中 tra

力扣2391---收集垃圾的最少总时间(Java、前缀和)

目录 题目描述: 思路描述: 代码:         最笨的方法:         较好的方法: 题目描述: 给你一个下标从 0 开始的字符串数组 garbage ,其中 garbage[i] 表示第 i 个房子的垃圾集合。garbage[i] 只包含字符 'M' ,'P' 和 'G' ,但可能包含多个相同字符,每个字符分别表示一单位的金属、纸和玻璃。垃圾车收拾 一 单位

LeetCode 每日一题 ---- 【2391.收集垃圾的最少总时间】

LeetCode 每日一题 ---- 【2391.收集垃圾的最少总时间】 2391.收集垃圾的最少总时间方法:模拟(多次遍历) 2391.收集垃圾的最少总时间 方法:模拟(多次遍历) 需要注意的点是,处理一个单位的一个垃圾需要1分钟,比如“MMM”,处理垃圾需要3分钟,这是一个坑点,需要注意。 然后可以提前预处理假设全部单位需要处理全部垃圾,然后遍历的时候减去不需要处理的就可

SSL-ZYC 2391 数列

题目大意: 求1至n中,有几个至少符合下列条件之一的数字? 1.(i-a)%b==0 2.i==c*d^x 思路: 1.暴力,然而TLE+RE+WA 2.暴力+公式,然而AC 如果使用方法一,那么肯定很好理解,只需要两个普通的枚举或同就可以了。 如果使用方法二,那么: (1)等差数列用公式直接推 (2)等比数列模拟(反正项很少) 代码: 方法一: #include

POJ 2391 Ombrophobic Bovines(二分+floyd+拆点+Dinic网络流)

题意:有n个田地,给出每个田地上初始的牛的数量和每个田地可以容纳的牛的数量。m条双向的路径,每条路径上可以同时通过的牛没有限制。 问牛要怎么走,能在最短时间内使得每块田地都能容纳的下,输出最短时间或-1。 分析:先floyd求出任意两点之间的最短距离,然后二分答案,判断是否可以在时间不超过mid的情况下完成移动: 建图: 每个点拆成两个点x(i)和x'(i+n),源点向x连边,权值