首页 > 其他分享 >[ARC125E] Snack

[ARC125E] Snack

时间:2023-10-11 16:34:35浏览次数:27  
标签:Snack int sum ARC125E subseteq LL

[ARC125E] Snack

经典啊,经典。

很容易看出网络流模型:每个人连一个限制 \(c_i\),每种糖果拆点限流 \(a_i\),然后每个人向每个糖果连边,最大流就是答案。

考虑转成最小割,我们相当于选出两个集合 \(S \subseteq [1,n], T \subseteq [1,m]\),割就是 \(\sum_{i \in S} a_i + \sum_{i \notin T}c_i + \sum_{i \in T} (n - |S|)b_i\)。先把中间那项全部加上,那最后就变成了求下面这个东西的最小值。

\[\sum_{i \in S} a_i + \sum_{i \in T} ((n - |S|)b_i - c_i) \]

前边那部分可以对 \(a\) 排序,后面那部分我们发现一个人选进 \(T\) 时 \(|S|\) 具有单调性,然后直接枚举 \(|S|\) 即可,复杂度 \(O(n \log n)\)。

const int N = 2e5 + 10;
int n, m;
LL a[N], b[N], c[N];
LL tag[N], red[N];

int main() {
  read(n, m);
  for(int i = 1; i <= n; ++i) read(a[i]);
  for(int i = 1; i <= m; ++i) read(b[i]);
  for(int i = 1; i <= m; ++i) read(c[i]);
  for(int i = 1; i <= m; ++i) {
    int t = min(c[i] / b[i], 1ll * n);
    tag[n - t] += b[i];
    red[n - t] += 1ll * t * b[i] - c[i];
  }
  sort(a + 1, a + n + 1);
  LL s = 0, d = 0, ans = 8e18;
  for(int i = 1; i <= m; ++i) s += c[i];
  for(int i = 0; i <= n; ++i) {
    s += a[i] - d + red[i];
    d += tag[i];
    ans = min(ans, s);
  }
  printf("%lld\n",ans);
}

标签:Snack,int,sum,ARC125E,subseteq,LL
From: https://www.cnblogs.com/DCH233/p/17757549.html

相关文章

  • 题解 Cow and Snacks
    被黄题创死了2333题目链接首先肯定有一个贪心的想法:尽量使得人们拿的花重复,即尽量使得每个人都拿一束花。当然第一个人必须拿两束。接着思考:如何找出有几个人是必须拿两束花的。其实很简单,当\(A,B\)两人不能通过其他人使得他们的花有联系,比如\(A\)喜欢\(1,2\),\(B\)喜欢......
  • [ARC125E] Snack 题解
    不难发现一个较简单的网络流模型:源点向所有糖果\(i\)连\(a_i\)的容量;所有糖果向所有人\(i\)连\(b_i\)的容量;所有人\(i\)向汇点连\(c_i\)的容量。但第二步中建出的边数达到了惊人的\(O(nm)\),显然过不去。考虑优化。从最大流角度优化较困难,由于最大流等价于最小......
  • AtCoder Regular Contest 125 E Snack
    洛谷传送门AtCoder传送门很棒的flow题,考虑建二分图。源点向每种零食连边权为\(a_i\)的边,每种零食向每个孩子连边权为\(b_j\)的边,每个孩子向汇点连边权为\(c_j\)的边,这个图的最大流就是答案。直接跑最大流肯定T,考虑最大流等价于求这个图的最小割,因此转而求最小割。......
  • 高性能 Jsonpath 框架,Snack3 3.2.65 发布
    高性能Jsonpath框架,Snack33.2.65发布来源:投稿作者: 梅子酒好吃2023-04-1014:18:00 0Snack3,一个高性能的JsonPath框架借鉴了Javascript所有变量由var申明,及Xmldom一切都是Node的设计。其下一切数据都以ONode表示,ONode也即Onenode之意,代......
  • 高性能 Jsonpath 框架,Snack3 3.2.57 发布
    Snack3,一个高性能的JsonPath框架借鉴了Javascript所有变量由var申明,及Xmldom一切都是Node的设计。其下一切数据都以ONode表示,ONode也即Onenode之意,代表任何......
  • 高性能 Jsonpath 框架,Snack3 3.2.54 发布(支持 kotlin data 类反序化)
    Snack3,一个高性能的JsonPath框架借鉴了Javascript所有变量由var申明,及Xmldom一切都是Node的设计。其下一切数据都以ONode表示,ONode也即Onenode之意,代表任何......
  • 高性能 Jsonpath 框架,Snack3 3.2.50 发布
    Snack3,一个高性能的JsonPath框架借鉴了Javascript所有变量由var申明,及Xmldom一切都是Node的设计。其下一切数据都以ONode表示,ONode也即Onenode之意,代表任何......
  • 高性能 Jsonpath 框架,Snack3 v3.2.44 发布
    Snack3,一个高性能的JsonPath框架借鉴了Javascript所有变量由var申明,及Xmldom一切都是Node的设计。其下一切数据都以ONode表示,ONode也即Onenode之意,代表任何......
  • [Jetpack Compose] 使用 Snackbar 实现退出应用再确认功能
    @OptIn(ExperimentalMaterial3Api::class)@ComposablefunDemoFun(){varscope=rememberCoroutineScope()varsnackbarHostState=remember{SnackbarHos......