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;
}

P5367 【模板】康托展开相关推荐

  1. [洛谷P5367]【模板】康托展开

    题目大意:给定一个$n$的排列,求它在$n$的全排列中的名次 题解:康托展开,对于一个全排列,第$i$为有$n+1-i$种选择,用变进制数表示,这一位就是$n+1-i$进制.记排列中第$[1,i)$中 ...

  2. 数论--康托展开与逆康托展开模板

    ACM常用模板合集 #include<bits/stdc++.h>using namespace std; const int MAX = 13; int Fac[MAX],N; //求出 ...

  3. 康托展开与逆展开(原理+模板)

    定义: 康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩. 康托展开的实质是计算当前排列在所有由小到大全排列中的名次,因此是可逆的. 原理: 代表在位置i后面且小于的值得个数 (n ...

  4. 关于数论【康托展开及其逆运算】

    表示这个东西背了很多次,但是次次忘,希望这次能够记住吧. 康托展开: 问45231是n=5的全排列中第几个排列? ans:= 3*4! + 3*3! + 1*2! + 1*1! + 0*0! =93 ...

  5. 洛谷P1088.火星人【模拟/搜索/康托展开】

    洛谷P1088.火星人[模拟/搜索/康托展开] 题干 题目描述 输入格式 输出格式 输入输出样例 说明/提示 题意 思路一--模拟 分析 上代码 思路二--搜索 分析 上代码 思路三--变进制数与康托 ...

  6. (康托展开解释)+ NYOJ 139 我排第几个

    描述 现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的? 输入 第一行有一个整数n(0<n& ...

  7. 康托展开(Cantor expansion)

    康托展开是一个全排列到一个自然数的双射.所以可逆. 康托展开:给定一个数n,和一个n位的全排列,求出这个排列是第几位X 逆康托展开:给定一个数n,和这个排列占第几位X, 求出这个排列 这里X(注意第一 ...

  8. 【BZOJ】3301: [USACO2011 Feb] Cow Line(康托展开)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3301 其实这一题很早就a过了,但是那时候看题解写完也是似懂非懂的.... 听zyf神犇说是康托展开, ...

  9. HDU 1043 Eight(双向BFS+康托展开)

    http://acm.hdu.edu.cn/showproblem.php?pid=1043 题意:给出一个八数码,求出到达指定状态的路径. 思路:路径寻找问题.在这道题里用到的知识点挺多的.第一次用 ...

  10. java实现排程算法_康托展开算法和逆康托展开算法[Java实现]

    基于这篇介绍我实现了基于Java的算法 都能看懂的康托展开_ltrbless的博客-CSDN博客​blog.csdn.net 条件 一个数组:[1, 2, 3, 4, 5] 康托展开算法 找出 524 ...

最新文章

  1. android在屏幕最下方,如何将view固定在屏幕底部?
  2. swing下拉框从mysql_Java Swing应用程序 JComboBox下拉框联动查询
  3. python preference界面设置_偏好设置如何更改Preference的样式
  4. 这个神器火了,做个高大上的PPT演示竟然就这么简单!
  5. 震惊! Rightmost Digit 快速幂解决
  6. 数字天堂陷入困境_陷入困境:焦虑的四个迹象可能会影响您的工作
  7. 全网最全Spring面试题之基础篇整理总结(共69题,附超详细解答)
  8. PHP date() 函数
  9. 深入解析Windows操作系统(笔记1)
  10. win7电脑误删鼠标键盘驱动_重装win7系统后鼠标键盘无法使用解决方法
  11. System.InvalidOperationException:“在应用程序配置文件中找不到名为“LDOAEntities”的连接字符串。”
  12. 全网最详细的Python自动化测试
  13. 服务器文件防泄密系统,数据防泄密软件解决图纸泄密问题
  14. 【语音识别】动态时间规整算法(RTW)语音识别系统【含GUI Matlab源码 341期】
  15. 图解 先验概率,后验概率,似然函数,迹象/evidence(by 例子 老王开车)
  16. Highcharts Stock内置的技术指标
  17. 软件测试基础篇—测试用例的设计方法
  18. mysql报错-ERROR 1206 (HY000)- The total number of locks exceeds the lock table size-的解决方法
  19. E710芯片系列模块的特性
  20. 物联网技术与应用【第五章测验答案】

热门文章

  1. 成功解决AttributeError: 'collections.defaultdict' object has no attribute 'iteritems'
  2. 数据科学-通过数据探索了解我们的特征
  3. 7.2 TensorFlow笔记(基础篇): 生成TFRecords文件
  4. 微信小程序知识点梳理
  5. 关于在pycharm下提示ModuleNotFoundError: No module named 'XXX' 的一种可能
  6. Python是如何进行内存管理的?
  7. 【DWR系列04】- DWR配置详解
  8. MyBatis学习 之 二、SQL语句映射文件(1)resultMap
  9. html年月日下拉联动菜单 年月日三下拉框联动
  10. python生成一定范围的符合正态分布的数