首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
排列计算
7条解析
开通博客写题解
Emcikem
发表于 2020-05-10 17:17:13
有1到n个数字,然后m个查询,构造一个序列,使得查询后的值最大化。因为只输出一次,不需要关心到底是怎么构造的,考虑,被查询到的数字次数越多,那么就让他的值越大,则,差分前缀和求出每个数字被查询的次数,然后排序,出现次数最小的对应1,最大的对应n即可 #include <iostream>
展开全文
Bernard5
发表于 2020-05-13 23:08:22
如果通过僵硬地涂色来计算单点权重,2e5*2e5必然TLE。 差分+前缀和可以完美地解决这个问腿。 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=200005; ll num
展开全文
Acapplella
发表于 2020-05-11 16:53:35
根据题意可以推出在排列中将出现次数最多的地方放上最大的数,剩下的依次递减。要计算每个位置出现的位置,依据数据范围,暴力模拟会WA,简单差分一下就可以了。代码如下: #include<iostream> #include<algorithm> using namespace s
展开全文
свобода
发表于 2020-05-10 18:43:24
排列中的每个数对答案的贡献是它被查询的次数乘以它自身,因此,要最大化答案,应该在被查询次数较多的位置放置较大的数。用差分和线段树等方法统计每个位置被查询的次数,对每个位置被查询的次数排序,在较大的位置放置排列中较大的数,再计算答案即可。时间复杂度为 O(n log n)。 #include <
展开全文
默默林林
发表于 2020-05-10 20:26:54
根据题目意思可以得知,按照某个数字被加的次数排序,然后从大往小乘即可。那么,问题转化为两个部分:1、区间修改+单点查询 2、排序看数据范围:n 对应 2E5 m 对应 2E5,开线段树,维护和值,进行区间更新,复杂度 nlogn
展开全文
昨晚梦见发财了
发表于 2020-05-11 15:16:59
考点:贪心+差分 首先我们要考虑计算每个位置的访问次数。 我们可以用差分来计算每一个位置访问了多少次。 然后排序,将从小到大以此乘以1 2 3 4~~~,求和即可。 import java.util.*; import j
展开全文
Leida_徐晓雅
发表于 2020-05-11 19:14:56
F-排列计算 题目描述 天才程序员菜哭武和石头组队参加一个叫做ICPC的比赛,这个比赛的规则是这样的:一个选手给出一个长度为 n 的排列,另一个选手给出 m 个询问,每次询问是一个形如 (l, r) 的数对,查询队友给出的排列中第 l 个数到第 r 个数的和,并将查询到的这个区间和加入总分,最后总分
展开全文
查看本题
查看本题讨论
相关比赛
5477-“科大讯飞杯”第十七届同济大学程序设计预选赛暨高校网络友谊赛
进入比赛
5805-“科大讯飞杯”第十七届同济大学程序设计预选赛暨高校网络友谊赛(重现赛)@姚景阳
进入比赛
5828-“科大讯飞杯”第十七届同济大学程序设计预选赛暨高校网络友谊赛(重现赛)@Daniel_yuan
进入比赛
5846-“科大讯飞杯”第十七届同济大学程序设计预选赛暨高校网络友谊赛(重现赛)@卡布奇诺07
进入比赛
6156-“科大讯飞杯”第十七届同济大学程序设计预选赛暨高校网络友谊赛(重现赛)@我是一只傻狍子
进入比赛
等你来战
查看全部
牛客周赛 Round 98
报名截止时间:2025-06-29 21:00
金山杯2025年武汉理工大学程序设计竞赛
报名截止时间:2025-06-30 15:00
牛客小白月赛119
报名截止时间:2025-07-04 21:00
牛客周赛 Round 99
报名截止时间:2025-07-06 21:00
牛客练习赛142
报名截止时间:2025-07-11 21:30
牛客周赛 Round 100
报名截止时间:2025-07-13 21:00
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
2025牛客暑期多校训练营2
报名截止时间:2025-07-17 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题