首页 > 货物种类
头像 RandolphJ
发表于 2020-03-02 07:41:12
有n个仓库,m次操作,每次在l和r之间的仓库收进编号为d的货物。最后求存放货物种类最多的仓库编号。 在区间内实现加减,我们可以使用差分数组。还要注意的一点:不是存放货物数目最多,而是存放货物种类最多,为了防止重叠区间重复计算答案,我们可以先将区间读下来,排个序(先按编号从小到大,编号相同按起始位置从 展开全文
头像 炒鸡炒鸡炒鸡
发表于 2021-10-05 20:54:58
题解: 该题使用贪心的解题思路吧货物序号从小到大排序通过a,b数组来计算结果 #include<bits/stdc++.h> using namespace std; const int N=100010; struct node { int l,r,date; bool 展开全文
头像 Rain_Fly
发表于 2024-03-13 21:46:30
最近补题,写到了这个很有意思的差分,乍一看就是一个差分,仔细一看,要找的是货物种类最多的仓库编号,注意是种类! 所以,对每一次放货物,我们不能直接对差分数组操作,我们需要先把每一次操作存储起来,然后排序,进行相同种类的货物区间合并,对于排序规则,我们以种类为第一要素比较,然后比较左端点,左端点 展开全文
头像 Z_L_G
发表于 2025-03-10 13:41:42
题意 n个点,m次输入,每次输入左界,右界,存储的货物编号 求存储的货物种类最多的点 思路 因为一个点可能重复读入同一个货物,所以使用map并做前缀和 开一个map统计每个点存入的货物和次数,全部读入完后,开第二个前缀和map 遍历第一个map中的每一个点,对每一个点,将其中的货物存入前缀和m 展开全文
头像 dass90
发表于 2022-10-03 18:07:52
thinking process use struct to store order info. struct ty{ int l, r, c; }a[100010]; compare operator defination: a.c == b.c ? a.l < b.l : a.c 展开全文
头像 装糊涂高手_
发表于 2021-12-25 11:16:41
枚举,差分,离散化 题中给的数据范围太大,开个大数组暴力枚举不现实,考虑离散化处理,同时维护一个差分数组存储每个仓库的货物种类。 1、利用结构体把每次进货的信息存储好; 2、自定义升序排序规则,货物编号优先级第一,区间起点优先级第二; 3、定义两个临时变量存储临时起点和临时终点; 4、若第j个结构体 展开全文
头像 Realretun
发表于 2022-03-10 15:35:18
采用差分数组的解法网上已经有很多了,这里我不再赘述。 这里采用的方式是差分数组离散化的思想,针对每个端点仓库进行记录。 每次进货产生左右两个端点进货信息。 #include <algorithm> #include <map> using namespace std; typ 展开全文