P5367 【模板】康托展开-程序员宅基地

技术标签: c++  # 算法模板  开发语言  

在这里插入图片描述
https://www.luogu.com.cn/problem/P5367

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=1e6+10;;
const int mod=998244353;
LL f[N],tr[N],n;
void init()//预处理阶乘
{
    
	f[0]=1;
	for(int i=1;i<N;i++) f[i]=f[i-1]*i%mod;
}
int lowbit(int x)
{
    
	return x&(-x);
}
void add(int x,int v)
{
    
	for(int i=x;i<=n;i+=lowbit(i)) tr[i]+=v;
}
int query(int x)
{
    
	int res=0;
	for(int i=x;i;i-=lowbit(i))  res+=tr[i];
	return res;
}
void solve()
{
    
	vector<int>ve(n+1);
	for(int i=0;i<n;i++) scanf("%d",&ve[i]),add(i+1,1);
	LL skip=0;
	for(int i=0;i<n;i++)
	{
    
		LL count=0;
		count=query(ve[i]-1);//求一下在他前面还有几个没有用过
		skip=skip%mod+count*f[n-1-i]%mod;//后面的数随便的排
		add(ve[i],-1);//标记为已经用过了
	}
	cout<<(skip+1)%mod<<endl;
}
int main(void)
{
    
	init();
	cin>>n; solve();
	return 0;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_46527915/article/details/120905020

智能推荐

org.apache.commons.codec.binary.Base64 加密解密_org/apache/commons/codec/binary/base64-程序员宅基地

文章浏览阅读1.8w次,点赞3次,收藏5次。使用Apache的org.apache.commons.codec.binary.Base64类完成Base64加密解密_org/apache/commons/codec/binary/base64

spring项目中使用alibaba.druid.pool.DruidDataSource来装载oracle数据源-程序员宅基地

文章浏览阅读1.3k次。0、编写配置文件jdbc.type=oraclejdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@192.168.2.9:1521/orcljdbc.username=xbsjdbc.password=xbs1、spring-context.xml中装载配置文件..._com.alibaba.druid.pool.druiddatasource 连接oracle 配置

base64在html页面显示图片的方式_qdhph0930b.xyz-程序员宅基地

文章浏览阅读4.6w次。<img src='data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgo..._qdhph0930b.xyz

多线程-程序员宅基地

文章浏览阅读97次。多线程Java.Thread进程和线程关系及区别1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.关系一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.相对进

友盟自动集成报错-Could not download common (com.umeng.umsdk:common:2.0.0)_could not find com.umeng.umsdk:common:2.0.2.-程序员宅基地

文章浏览阅读1.2w次。当使用自动集成(非手动集成)友盟的时候在build.gradle里面:implementation 'com.umeng.umsdk:analytics:8.0.0'implementation 'com.umeng.umsdk:common:2.0.0'但是今天一直报错Could not download common (com.umeng.umsdk:common:2.0.0)..._could not find com.umeng.umsdk:common:2.0.2.

Docker 快速上手学习入门教程_docker菜鸟教程-程序员宅基地

文章浏览阅读2.5w次,点赞6次,收藏50次。官方解释是,docker 容器是机器上的沙盒进程,它与主机上的所有其他进程隔离。所以容器只是操作系统中被隔离开来的一个进程,所谓的容器化,其实也只是对操作系统进行欺骗的一种语法糖。_docker菜鸟教程

随便推点

python 编码解码原理_【python测试开发栈】带你彻底搞明白python3编码原理-程序员宅基地

文章浏览阅读78次。在之前的文章中,我们介绍过编码格式的发展史:[文章传送门-todo]。今天我们通过几个例子,来彻底搞清楚python3中的编码格式原理,这样你之后写python脚本时碰到编码问题,才能有章可循。我们先搞清楚几个概念:系统默认编码:指python解释器默认的编码格式,在python文件头部没有声明其他编码格式时,python3默认的编码格式是utf-8。本地默认编码:操作系统默认的编码,常见的Win..._python open encoding shift-jis

【Java算法】AES前端加解密,Java后端加解密,采用CBC模式_aes-cbc前后端如何共享iv-程序员宅基地

文章浏览阅读1.4k次,点赞11次,收藏11次。适用范围:1、前端加密、解密2、后端加密、解密3、前端加密、后端解密4、后端加密、前端解密前端AESimport CryptoJS from 'crypto-js'import moment from 'moment'let key = CryptoJS.enc.Utf8.parse('abcdefg123456789') // key:必须16个字符let iv = CryptoJS.enc.Utf8.parse('abcdefg123456789'); // 偏移量:必须16个字符_aes-cbc前后端如何共享iv

oracle哈希检查数据一致性,数据文件SCN的一致性问题-程序员宅基地

文章浏览阅读110次。数据文件SCN的一致性问题1、数据库正常运行中,所有数据文件的SCN都是一致的吗?2、将一数据文件offline后,再将其online时,这个数据文件的SCN会前提吗?假如是,前提到的SCN是怎么确定的?1.数据库正常运行时,所有数据文件的SCN不一定一致。问题在这个所有上,比如Offline表空间,数据文件的SCN会被冻结,而且表空间的数据文件offline/online时又会发生文件检查点,使..._oracle 查看scn号是否一致

java cacti_cacti监控安装-程序员宅基地

文章浏览阅读115次。cacti是用PHP实现的一个软件,它用snmp服务获取数据,然后用rrdtool存储和更新数据,并生成图表展示。比较适合用于交换机、路由器的网络监控,插件众多,可图示化显示网络状况。cacti官方推荐版本如下:PHP 5.4+MySQL 5.1+RRDtool 1.3+, 1.5+ recommendedNET-SNMP 5.5+Web Server with PHP support cento..._cacti哪个版本好用

联邦学习综述-程序员宅基地

文章浏览阅读302次。联邦学习_联邦学习综述

virtuoso--工艺库答疑_tsmc mac-程序员宅基地

文章浏览阅读436次。一种带nbl_mac,一种带iso_mac?从版图结构上来看,iso_mac的管子自带bulk绕一圈,有HVNW电位,最外围加上P+ isolation。3. 有了tt, ss, ff, sf, fs后,为何既有mc lib 又有 mismatch lib?--尽量用带mac的lib。_tsmc mac

推荐文章

热门文章

相关标签