P1966 [NOIP2013 提高组] 火柴排队
洛谷的一道原题,方法有很多,树状数组以及排序,对刚学树状数组的人来说用排序会比较好理解。
本题最重要的结论就是,要保证两个数组中相同位置的差最小,但是不一定两个数组中数值相同,所以只需要保证相同位置放的数都是当前数组中第i小的,也就是第一个数组里面第i小数和第二个数组中第i的数放的位置要相同,这个地方搞明白之后,只需要找到最小移动次数,这个时候就简单了用归并排序+逆序对即可。

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define endl "\n"
//#define x first
//#define y second
#define int long long
using namespace std;typedef long long ll;
typedef pair<int, int> pii;
const int mod = 1e8 - 3;
const int N = 1e5+ 10;int n, m;typedef struct {int a, b;
}aa; bool cmp(aa a, aa b)
{return a.a < b.a;
} int s[N], f[N], g[N], sum; void merge_sort(int l, int r)
{if(l >= r) return ;int mid = l + r >> 1;merge_sort(l, mid);merge_sort(mid + 1, r);int i = l, j = mid + 1, k = 0;while(i <= mid && j <= r){if(s[f[i]] <= s[f[j]]) g[k ++] = f[i ++];else{g[k ++] = f[j ++], sum += mid - i + 1;sum %= mod;}}while(i <= mid) g[k ++] = f[i ++];while(j <= r) g[k ++] = f[j ++];for(i = l, j = 0; i <= r; i ++, j ++)f[i] = g[j];
}
aa o[N], p[N];
inline void sovle()
{cin >> n;for(int i = 0; i < n; i ++) {cin >> o[i].a;o[i].b = i;}for(int i = 0; i < n; i ++) {cin >> p[i].a;p[i].b = i;}stable_sort(o, o + n, cmp);stable_sort(p, p + n, cmp);for(int i = 0; i < n; i ++)s[i] = p[i].b; // 找出来第二个数组中第i小的数的位置for(int i = 0; i < n; i ++)f[o[i].b] = i; // 找到第一个数组中每个位置都是第几小的merge_sort(0, n - 1); cout << sum << endl;
}
signed main(void)
{IOS;int t = 1;
// cin >> t;while(t --) sovle();return 0;
}
相关文章:
P1966 [NOIP2013 提高组] 火柴排队
洛谷的一道原题,方法有很多,树状数组以及排序,对刚学树状数组的人来说用排序会比较好理解。 本题最重要的结论就是,要保证两个数组中相同位置的差最小,但是不一定两个数组中数值相同,所以只需要保证相同位…...
Linux文件I/O
下面的内容需要了解系统调用,可看下面的链接: 系统调用来龙去脉-CSDN博客 1.底层文件IO和标准IO 这里指的是操作系统提供的IO服务,不同于ANSI建立的标准IO。 底层IO和标准IO各自所使用的函数: 区别: 1.底层文件IO不…...
卡巴斯基2009杀毒软件
下载地址:https://user.qzone.qq.com/512526231/main https://user.qzone.qq.com/3503787372/main...
Docker 容器服务的注册、发现及Docker安全
目录 Docker容器服务的注册和发现 1、什么是服务注册与发现? 2、什么是consul consul的部署 1、环境准备 2、部署consul服务器 1)建立 Consul 服务 2)设置代理,在后台启动 consul 服务端 3)查看集群信息 4&a…...
UE5 Blueprint发送http请求
一、下载插件HttpBlueprint、Json Blueprint Utilities两个插件是互相依赖的,启用,重启项目 目前两个是Beta的状态,如果你使用的平台支持就可以使用,我们的项目因为需要取Header的值,所有没法使用这两个插件࿰…...
SpringBoot 分布式验证码登录方案
前言 为了防止验证系统被暴力破解,很多系统都增加了验证码效验,比较常见的就是图片二维码,业内比较安全的是短信验证码,当然还有一些拼图验证码,加入人工智能的二维码等等,我们今天的主题就是前后端分离的…...
vite.config.js文件配置代理设置VITE_APP_BASE_API
.env.development文件 ENV development # base api VITE_APP_BASE_API /dev-api.env.production文件 ENV production # base api VITE_APP_BASE_API /apidefine: {process.env: {VITE_APP_BASE_API: https://xxx.com}},server: {hmr: true, // vue3 vite配置热更新不用手动…...
优橙内推海南专场——5G网络优化(中高级)工程师
可加入就业QQ群:801549240 联系老师内推简历投递邮箱:hrictyc.com 内推公司1:南京华苏科技有限公司 内推公司2:南京欣网通信股份有限公司 内推公司3:广东华讯工程有限公司 南京华苏科技有限公司 南京华苏科技有…...
5083: 【递推】走方格
题目描述 在平面上有一些二维的点阵。 这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示。 现在有个人站在第 1 行第 1 列,要走到第 n 行第 m …...
多种方式计算当天与另一天的间隔天数 Java实现
这里不会记录纯原生写法,因为现在基本都是被工具类封装好的,所以会记录好用的工具类来简化开发,当然自己可以研究写一个年月日各自做减法的纯原生工具类。 踩坑处(System.currentTimeMillis) 这里指的是使用System.currentTimeMillis()方法。…...
Python基础学习004——for循环与字符串
""" 1.for循环基本语法 2.做指定次数的循环,range()函数 3.continue的使用 4.字符串的定义与使用:转义符,原生字符 5.获取字符串长度,字符串索引的使用 6.切片,翻转字符串 7.字符串的查找find 8.字符串的替换replace 9.字符串的拆分split 10.字符串的链接join &…...
【发展史】鼠标的发展史
最早可以追溯到1952年,皇家加拿大海军将5针保龄球放在能够侦测球面转动的硬件上,这个硬件再将信息转化成光标在屏幕上移动,用作军事计算机输入。这是我们能够追溯到的最早的依靠手部运动进行光标移动的输入设备。但当时这个东西不叫鼠标&…...
ThinkPHP6 多应用模式之验证码模块的配置与验证
Thinphp6 官方的验证码模块的配置是有问题的,或者说需要手工配置。 在配置期间,我尝试了多种(包括按照官方文档、路由等)方法都验证失败。 存在2个问题: 1、多应用模式下,验证码的配置文件依然读取全局的…...
数据结构笔记——树和图(王道408)(持续更新)
文章目录 传送门前言树(重点)树的数据结构定义性质 二叉树的数据结构定义性质储存结构 二叉树算法先中后序遍历层次展开法递归模拟法 层次遍历遍历序列逆向构造二叉树 线索二叉树(难点)定义线索化的本质 二叉树线索化线索二叉树中…...
Redis 主从
目录 编辑一、构建主从架构 1、集群结构 2、准备实例和配置 (1)创建目录 (2)修改原始配置 (3)拷贝配置文件到每个实例目录 (4)修改每个实例的端口,工作目录 &a…...
嵌入式学习笔记(63)位操作实战
(1)给定一个整型数a,设置a的bit3,保证其他位不变。 a | (1<<3) (2)给定一个整形数a,设置a的bit3~bit7,保持其他位不变 a | (0x1f<<3) (3)给定一个整型数a,清除a的bit15,保证其他位不变。 a …...
8位机adc采样正弦波频率
相位/峰峰值高电平? 检 测峰值电压? y 开始计数 检测零电压 y 计数器值16ms/20ms 斩波开x关x延时 tt 频率 1/2t 电路 增减常数 aT...
react中使用监听
在 React 中,您可以使用 addEventListener 函数来监听事件。以下是一个示例: import React, { useRef, useEffect } from react;function App() {const inputRef useRef(null);useEffect(() > {inputRef.current.addEventListener(input, handleInp…...
Java基础总结
0、Java语言 1.java和c 2.编译和解释 3.jre和jdk,jvm 简单来说,编译型语言是指编译器针对特定的操作系统将源代码一次性翻译成可被该平台执行的机器码;解释型语言是指解释器对源程序逐行解释成特定平台的机器码并立即执行。 Java 语言既具…...
基于SSM的OA办公系统
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...
SAP和Oracle EBS的实施成本都非常高昂,通常属于千万级人民币的投资。总体来看,SAP的总拥有成本(TCO)通常高于Oracle EBS
SAP和Oracle EBS的实施成本都非常高昂,通常属于千万级人民币的投资。总体来看,SAP的总拥有成本(TCO)通常高于Oracle EBS。但这并非绝对,具体成本会因企业规模、行业特性、定制化需求和部署模式(本地部署或云…...
Labelme标注完别急着训练!手把手教你批量把JSON转成YOLO能吃的TXT格式
Labelme标注数据转YOLO格式实战指南:从原理到批量处理 当你用Labelme完成数百张图片的标注,满心欢喜准备开始YOLO模型训练时,却发现训练脚本报错——原来YOLO无法直接读取Labelme生成的JSON文件。这不是代码问题,而是格式不匹配的…...
Fontmin终极指南:智能字体子集化与Web性能优化最佳实践
Fontmin终极指南:智能字体子集化与Web性能优化最佳实践 【免费下载链接】fontmin Minify font seamlessly 项目地址: https://gitcode.com/gh_mirrors/fo/fontmin 在当今Web开发中,字体文件体积过大已成为影响页面加载速度的主要瓶颈之一。Fontmi…...
macOS下OpenClaw深度配置:Qwen3.5-9B模型参数调优指南
macOS下OpenClaw深度配置:Qwen3.5-9B模型参数调优指南 1. 为什么需要深度调优Qwen3.5-9B模型参数 去年冬天,当我第一次用OpenClaw对接Qwen3.5-9B模型处理图片分析任务时,遇到了两个典型问题:模型生成的图片描述总是过于抽象&…...
3分钟快速上手:PvZ Toolkit终极游戏修改器使用完整指南
3分钟快速上手:PvZ Toolkit终极游戏修改器使用完整指南 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 还在为植物大战僵尸中阳光不足、金币不够而烦恼吗?PvZ Toolkit是一款…...
ComfyUI-FramePackWrapper模型加载技术选型指南:提升效率的实战策略
ComfyUI-FramePackWrapper模型加载技术选型指南:提升效率的实战策略 【免费下载链接】ComfyUI-FramePackWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-FramePackWrapper 在AI视频创作领域,模型加载是启动创作流程的关键环节&am…...
告别重复编码:利用快马平台ai能力,一键生成与测试常用代码片段,提升开发效率
作为一名开发者,每天最头疼的事情莫过于重复编写那些基础但必要的代码片段。比如表单验证、日期格式化、数据过滤等等,这些代码虽然不难,但写起来确实费时费力。最近我发现了一个能极大提升开发效率的方法——利用InsCode(快马)平台的AI能力来…...
3步掌握ChampR:英雄联盟智能助手实战指南
3步掌握ChampR:英雄联盟智能助手实战指南 【免费下载链接】champ-r 🐶 Yet another League of Legends helper 项目地址: https://gitcode.com/gh_mirrors/ch/champ-r 还在为英雄联盟的出装搭配而烦恼吗?ChampR作为一款完全免费的开源…...
旧iOS设备焕新指南:用Legacy iOS Kit赋予旧iPhone/iPad第二次生命
旧iOS设备焕新指南:用Legacy iOS Kit赋予旧iPhone/iPad第二次生命 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iO…...
如何用Greasy Fork开源脚本平台彻底改变你的浏览器体验:新手完全指南
如何用Greasy Fork开源脚本平台彻底改变你的浏览器体验:新手完全指南 【免费下载链接】greasyfork An online repository of user scripts. 项目地址: https://gitcode.com/gh_mirrors/gr/greasyfork 你是否厌倦了浏览器千篇一律的功能限制?是否渴…...
