D. Divide and Sum(组合数学)

news2025/8/12 9:54:15

Problem - 1445D - Codeforces

题意:

给你一个长度为2n的数组a。考虑将数组a划分为两个子序列p和q,每个子序列的长度为n(数组a的每个元素应该正好在一个子序列中:要么在p中,要么在q中)。

让我们以非递减顺序对p进行排序,以非递增顺序对q进行排序,我们可以分别用x和y来表示排序后的版本。那么一个分区的成本被定义为f(p,q)=∑ni=1|xi-yi|。

求数组a所有正确分区的f(p,q)之和。由于答案可能太大,请打印其余数,即998244353。

输入
第一行包含一个整数n(1≤n≤150000)。

第二行包含2n个整数a1,a2,...,a2n(1≤ai≤109)--数组a的元素。

输出
打印一个整数 - 问题的答案,模数998244353。

例子
输入复制
1
1 4
outputCopy
6
输入副本
2
2 1 2 1
输出拷贝
12
输入复制
3
2 2 2 2 2 2
输出拷贝
0
输入复制
5
13 8 35 94 9284 34 54 69 123 846
输出拷贝
2588544
注意
如果一个数组的两个分区包含在子序列p中的元素索引集不同,则认为是不同的。

在第一个例子中,有两个正确的数组a的分区。

p=[1], q=[4], 那么x=[1], y=[4], f(p,q)=|1-4|=3;
p=[4], q=[1], then x=[4], y=[1], f(p,q)=|4-1|=3.
在第二个例子中,数组a有六个有效分区。

p=[2,1], q=[2,1](原数组中指数为1和2的元素在子序列p中被选中)。
p=[2,2], q=[1,1];
p=[2,1], q=[1,2](在子序列p中选择指数为1和4的元素)。
p=[1,2], q=[2,1];
p=[1,1], q=[2,2];
p=[2,1], q=[2,1](指数为3和4的元素在子序列p中被选中)。

题解:
题意很简单,本题关键处在于能否看出构建出的序列得到的之都相等

我们列几个例子就可以发现

//1 2 3 4 5 6
//3 2 1
//4 5 6    9

//6 2 1
//3 4 5    9

只要是符合的结果肯定都一样

先排序一下计算,得出一个的成本

剩下的就是看有多少种情况即可,从2*n里去n个,答案很明显,组合数

#include<iostream>
#include<algorithm>
#include<map>
#include<queue>
#include<vector>
#include<cstring>
#include<stack>
using namespace std;
long long n;
long long a[400000];
long long fac[400000];
long long infac[400000]; 
int mod = 998244353;
long long qpow(long long a,long long x)
{
	long long ans = 1;
	while(x)
	{
		if(x&1)
		ans = ans*a%mod;
		a = a*a%mod;
		x = x/2;
	}
	return ans;
}
void solve()
{
	int n;
	cin >> n;
	for(int i = 1;i <= n*2;i++)
	cin >> a[i];
	sort(a+1,a+1+2*n);
	long long ans = 0;
	for(int i = 1;i <= n;i++)
	{
		ans = (ans+a[i+n]-a[i]+mod)%mod;
	}
	infac[1] = 1;
	fac[1] = 1;
	for(int i = 2;i <= 2*n;i++)
	{
		fac[i] = (fac[i-1]*i)%mod;
		infac[i] = infac[i-1]*qpow(i,mod-2)%mod;
	}
	cout<<ans*fac[2*n]%mod*infac[n]%mod*infac[n]%mod;
}
int main()
{
	int t = 1;
//	cin >> t;
	while(t--)
	{
		solve();
	}
}
//1 2 3 4 5 6
//3 2 1
//4 5 6    9

//6 2 1
//3 4 5    

//c 5 2
//a5 /  a2 a3


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

matplotlib笔记

一、安装matplotlib总是超时导致失败 鉴于公司内网服务器上直接pip install matplotlib容易超时退出的问题&#xff0c;可以采用下面的方法解决&#xff1a; 方法一&#xff1a;指定更新源 pip install -i Simple Index matplotlib3.2.2 注意选择3.2.2&#xff0c;因为最新版本…

AP22615AWU-7、SLG5NT1758V配电开关 驱动器 IC资料

AP22615配电开关具有输出过压保护 (OVP) 功能&#xff0c;设计用于USB和其他热插拔应用。该器件提供输出过压保护&#xff0c;可保护这些应用的系统。具有输出过压保护、反向电流阻断、过流、过热和短路保护功能。其他功能包括受控上升时间和欠压锁定功能。 AP22615具有可调限…

【Java篇】备战面试——你真的了解“基本数据类型”吗?

目录 基本介绍&#xff1a; 整数类型 浮点类型 布尔类型和char类型 自动类型转换 数据类型转换必须满足如下规则&#xff1a; 基本介绍&#xff1a; Java是一门强类型语言&#xff0c;这就意味着必须为每一个变量声明一种类型。Java为我们提供了八种基本类…

[附源码]计算机毕业设计JAVA归元种子销售管理系统

[附源码]计算机毕业设计JAVA归元种子销售管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

【毕业设计】大数据分析的航空公司客户价值分析 - python

文章目录0 前言1 数据分析背景2 分析策略2.1 航空公司客户价值分析的LRFMC模型2.2 数据2.3 分析模型3 开始分析3.1 数据预处理3.1.1 数据预览3.1.2 数据清洗3.2 变量构建3.3 建模分析4 数据分析结论4.1 整体结论4.2 重要保持客户4.3 重要挽留客户4.4 一般客户与低价值客户5 最后…

Cadence Allegro PCB设计88问解析(十七) 之 Allegro中焊盘的全连接和花焊盘

一个学习信号完整性仿真的layout工程师 上一篇文章和大家分享了关于铜皮shape的一些基本操作。我们进行铺铜是为了连接网络(焊盘、过孔等)&#xff0c;一般都是GND或者电源网络。Shape和走线还是不一样的&#xff0c;走线直接从焊盘或者过孔等直接拉出一根layout&#xff0c;但…

【MySQL数据库笔记 - 进阶篇】(三)SQL优化

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;暂定 &#x1f4dd;视频地址&#xff1a;黑马程序员 MySQL数据库入门到精通 &#x1f4e3;专栏定位&#xff1a;这个专栏我将会整理 B 站黑马程序员的 MySQL…

LeetCode[剑指Offer54]二叉搜索树的第K大节点

难度&#xff1a;简单 题目&#xff1a; 给定一棵二叉搜索树&#xff0c;请找出其中第 k 大的节点的值。 示例 1: 输入: root [3,1,4,null,2], k 13/ \1 4\2 输出: 4 示例 2: 输入: root [5,3,6,2,4,null,null,1], k 35/ \3 6/ \2 4/1 输出: 4 限制&#xff1a; …

[附源码]java毕业设计旅游网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Nodejs编写接口

编写接口 1.自定义路由模块 const expressrequire(express) const routerexpress.Router()// 挂载对应的路由 router.get(/get,(req,res)>{// 通过req.query获取客户端通过查询字符串&#xff0c;发送到服务器的数据const queryreq.query// 调用res.send()方法&#xff0c…

集成学习-Bagging和Boosting算法

文章目录集成学习Bagging随机森林BostingAdaboostGBDTXGBoost集成学习 集成学习&#xff08;ensemble learning&#xff09;博采众家之长&#xff0c;通过构建并结合多个学习器来完成学习任务。“三个臭皮匠顶个诸葛亮”&#xff0c;一个学习器&#xff08;分类器、回归器&…

【微服务】SpringCloud微服务续约源码解析

目录 一、前言 二、客户端续约 1、入口 1.1、构造初始化 1.2、initScheduledTasks() 调度执行心跳任务 2、TimedSupervisorTask组件 2.1、构造初始化 2.2、TimedSupervisorTask#run()任务逻辑 3、心跳任务 3.1、HeartbeatThread私有内部类 3.2、发送心跳 3、发送心…

使用OpenAPI提升网关安全的开源软件,诚邀小伙伴参与

看过我博客的人都知道&#xff0c;我们是一家推广OpenAPI的企业。 OpenAPI是一种用于定义API结构的规范&#xff0c;在Java里我们可以使用swagger进行自动生成。其他语言也可以&#xff08;Golang等&#xff09;。通过这种对开发人员零成本的工具&#xff0c;我们可以高效的获…

典型的偏微分方程数值解法

马上要参加亚太杯啦&#xff0c;听说今年亚太杯有经典的物理题&#xff0c;没什么好说的&#xff0c;盘它&#xff01; 偏微分方程的数值解十分重要 椭圆型偏微分方程&#xff08;不含时&#xff09; 数值解法 二维拉普拉斯方程 例 边界条件 import numpy as np import mat…

教你如何使用云服务器搭建我的世界Minecraft服务器(超级简单-10分钟完成)

一个人玩游戏没啥意思&#xff0c;和朋友一块联机呢&#xff0c;距离太远&#xff0c;家庭局域网宽带又没有公网ip&#xff0c;你的朋友没办法与你联机&#xff0c;然而你只需要一台服务器即可搞定了&#xff1b;但是很多用户没没接触过相关的内容&#xff0c;具体的该怎么操作…

怎样做音乐相册怎样制作?手把手教你制作

大家平时出门游玩的时候&#xff0c;会拍摄一些好看的照片吗&#xff1f;那你们会将这些照片分享在社交平台上吗&#xff1f;普通的照片分享&#xff0c;有时会显得比较枯燥单调&#xff0c;其实我们可以将这些照片制作成音乐相册&#xff0c;这样就可以丰富照片的内容&#xf…

传输层-用户数据报协议(UDP)

UDP协议概述 用户数据报协议 UDP 是 Internet 传输层协议&#xff0c;提供无连接、不可靠、数据报尽力传输服务。 无连接&#xff1a;因此在支持两个进程间通信时&#xff0c;没有握手过程。不可靠&#xff1a;当应用进程将一个报文发送近 UDP 套接字时&#xff0c;UDP 并不能…

python+vue+elementui固定资产管理系统django mysql

目 录 摘 要 I ABSTRACT I 目 录 III 第1章 绪论 1 1.1开发背景 1 1.2开发意义 1 1.3研究内容 1 第2章 主要技术和工具介绍 3 前端技术&#xff1a;nodejsvueelementui 我们最初的项目结构由五个文件组成&#xff1a; manage.py&#xff1a;使用…

为什么管理类硕士(MBA/MEM/MPA)报考会成为职场人的香饽饽?

没个硕士学位&#xff0c;将来出门可能真的都不好意思打招呼了。近些天传言2023年考研人数达到接近550万的信息满天飞&#xff0c;无论真假&#xff0c;从目前已公布报考人数的院校来看&#xff0c;在去年的457万基础上再涨一波的几率是很大的。这其中&#xff0c;报考管理类、…

电科大离散数学-2-命题逻辑-1

目录 2.1 什么是命题 2.1.1 命题的定义 2.1.2 复合命题 2.2 命题联结词 2.2.1 否定联结词 2.2.2 合取联结词 2.2.3 析取联结词 2.2.4 蕴涵联结词 2.2.5 等价联结词 2.3 命题符号化及应用 2.3.1 命题连接词总结 2.3.2 命题联结词的优先级 2.3.3 命题联接词与开关电…