sgu438-The_Glorious_Karlutka_River】的更多相关文章

题目大概说有m个人要过一条宽W的河,人最远跳远距离是d,河上有n个垃圾堆,每个垃圾堆都有坐标和同一时间能容纳的人数,问所有人最少要跳几次才能跳到对岸. 又是一题根据时间拆点的最大流. 二分时间建容量网络判定:按时间对每个垃圾堆拆点,再拆成两点中间连容量为同一时间能容纳的人数的边,所有t时刻的点向所有能到达的t+1时刻的点连边. 另外,可以知道的是如果能到对岸那最坏情况总共需要跳n+m.因为最坏情况每个垃圾堆只能容纳一人,且必须跳完所有垃圾堆才能到达对岸,那么第一个人需要跳m+1次,后面n-1人紧…
传送门 sgu原来搬到cf了呀点了好几个链接才找到233 传说中的动态流(?) 反正很暴力就对了QwQ 有容量限制->拆点 对于每个点拆成入点和出点 时间限制->分层 对于每个时刻的每个石头都建点 所以源点连最开始的到达的石头的入点 然后每个可以到达的出点连汇点 然后每个时刻的入点出点之间连接流量为C 然后可以互相跳的连inf 枚举时刻在残存网络上继续流可以了 直到一个时刻 >=m 就是所有人都跳过去了QwQ 附代码. 我觉得我这份代码巨好看(大雾) #include<cstdio…
sgu438:http://acm.sgu.ru/problem.php?contest=0&problem=438 题意:有一条东西向流淌的河,宽为 W,河中有 N 块石头,每块石头的坐标(Xi, Yi)和最大承受人数 Ci 已知.现在有 M 个游客在河的南岸,他们想穿越这条河流,但是每个人每次最远只能跳 D 米,每跳一次耗时 1 秒.问他们能否全部穿越这条河流,如果能,最少需要多长时间. <= N <= 50, 0 < M <= 50, 0 <= D <=…