首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
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连边,权值
阅读更多...