求助简单贪心题
  • 板块学术版
  • 楼主Christophe_
  • 当前回复7
  • 已保存回复7
  • 发布时间2022/9/1 21:43
  • 上次更新2023/10/27 12:51:25
查看原帖
求助简单贪心题
335552
Christophe_楼主2022/9/1 21:43
题目描述:

有一个长度为 nn0101 数组 aa,给定 mm 条形如 l r xl\ r\ x 的限制,表示 i=lraix\sum\limits_{i=l}^ra_{i}\le x,你需要在这些限制下最大化 i=1nai\sum\limits_{i=1}^na_{i},并输出这个值.

  • 0101 数组:每个元素要么为 00,要么为 11.
数据范围:

1n,m1051\le n,m\le 10^5,数据保证有解.

蒟蒻的思路:

将限制区间以左端点为第一关键字,右端点为第二关键字从小到大排序,对于每一个区间 [l,r][l,r],统计该区间内已有的 11 的个数 cntcnt,如果 cntxcnt≥x,就从后向前依次赋 00,直到区间内 11 的个数等于 xx;如果 cnt<xcnt<x ,就从前向后依次赋 11,直到区间内 11 的个数等于 xx 或区间内全为 11,使用类似 脑洞治疗仪 中的线段树技巧可做到 O(mlogn)O(mlogn).

蒟蒻的问题:
  1. 该思路是否能被 hack ?

  2. 原问题是否可以使用差分约束?如果可以,如何找到 sns_{n} 最大的一组解?

  3. 是否可以使用贪心 + 优先队列或者其他方法解决该题?又如何操作呢?

2022/9/1 21:43
加载中...