当前位置: 首页 > news >正文

蓝桥杯练习系统(算法训练)ALGO-934 序列

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

  王神想要知道n的所有排列的逆序对数和,但是他觉得太水了,于是让你算。

输入格式

  一行一个整数n

输出格式

  一行即答案,对1007取模

样例输入

2

样例输出

1

数据规模和约定

  1<=n<=10

#include<iostream>
using namespace std;
const int N=15;
int tmp[N];
int a[N];//mergesort归并排序求逆序数用
int b[N];//dfs全排列用
int n;
bool v[N];
int ans;
int res;
void mergesort(int l,int r){if(l==r) return;int mid=(l+r)/2;mergesort(l,mid);mergesort(mid+1,r);int i=l,j=mid+1,k=l;while(i<=mid&&j<=r){if(a[i]<=a[j]){tmp[k++]=a[i++];}else{tmp[k++]=a[j++];res+=mid-i+1;}}while(i<=mid) tmp[k++]=a[i++];while(j<=r) tmp[k++]=a[j++];for(int i=l;i<=r;i++) a[i]=tmp[i];
}
void dfs(int x){if(x==n+1){//因为b[i]经过mergesort会被排序,从而影响全排列,所以需要两个数组 for(int i=1;i<=n;i++){
//			cout<<b[i]<<" "; a[i]=b[i];}
//		cout<<endl;res=0;mergesort(1,n);ans+=res%1007;return ;}for(int i=1;i<=n;i++){if(!v[i]){v[i]=true;b[x]=i;dfs(x+1);v[i]=false;}}
}
int main(){cin>>n;dfs(1);cout<<ans%1007<<endl;
}

思路:dfs全排列+归并排序求逆序数。 

相关文章:

  • 文件批量重命名利器:一键轻松替换文本间内容,高效管理文件不再是难题!
  • 【LLM多模态】综述Visual Instruction Tuning towards General-Purpose Multimodal Model
  • MSSM手动段空间管理(Manual Segment Space Management)解析
  • 语雀——云知识库/笔记
  • 贪心算法4(c++)
  • SpringMVC相关知识集锦----1
  • Oracle数据库中的Freelist解析
  • R实验 非参数性检验(二)
  • Nginx - 健康检查终极指南:探索Upstream Check模块
  • 前后端编程语言和运行环境的理解
  • Python中别再用 ‘+‘ 拼接字符串了!
  • C++面试题记录(Qt上位机方向)
  • SpringBoot【1】集成 Druid
  • 近邻算法模型
  • 企业内网开源OA服务器(办公自动化系统),搭建O2OA基于Linux(openEuler、CentOS8)
  • [译]CSS 居中(Center)方法大合集
  • 《剑指offer》分解让复杂问题更简单
  • CEF与代理
  • golang中接口赋值与方法集
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JS数组方法汇总
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MySQL数据库运维之数据恢复
  • Python socket服务器端、客户端传送信息
  • ReactNativeweexDeviceOne对比
  • SpriteKit 技巧之添加背景图片
  • 给Prometheus造假数据的方法
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 那些年我们用过的显示性能指标
  • 浅谈Golang中select的用法
  • 树莓派 - 使用须知
  • 微信小程序开发问题汇总
  • 怎么把视频里的音乐提取出来
  • 怎么将电脑中的声音录制成WAV格式
  • 智能合约Solidity教程-事件和日志(一)
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​Linux·i2c驱动架构​
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (04)odoo视图操作
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (3)nginx 配置(nginx.conf)
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (转)母版页和相对路径
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .NET C# 使用GDAL读取FileGDB要素类