ZOJ4046:Good Permutation(逆序数)

Robocup3d 一、 比赛介绍 RoboCup 仿真比赛是一个能为多智能体系统和模拟智能进行研究、教育的工具。比赛是在一个标准的计算机环境中进行的,提供了一个完全分布式控制、实时异步多智能体环境。通过这个平台,可以测试各种理论、算法和Agent体系结构。在实时异步、有噪声的对抗环境中,研究多智能体的合作对抗问题。当然,仿真组的比赛使用的机器人并非是真的机器人。一个机器人是一个Agent, 它拥有自己的大脑, 阅读详情

题目链接

题意:给N(1e5)个数的一个全排列,每次可以交换相邻的数,问最小交换次数达到数组满足a[i+1] = (a[i]%n)+1。

思路:假如换成1,2,3...n的排列,显然答案就是逆序数,那么加如1最终在位置2,留意到逆序数的变化与数字5的位置有关,因为数字5要最终去位置1了,所以枚举1的最终位置,过程O(1)维护逆序数。

# include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 1e5+30;
int n, id[maxn], sum[maxn];
void add(int x){
    for(;x<=n;x+=x&-x) ++sum[x];
}
int query(int x){
    int res = 0;
    for(;x>0;x-=x&-x) res += sum[x];
    return res;
}
int main(){
    int T, x;
    for(scanf("%d",&T);T;--T){
        scanf("%d",&n);
        for(int i=1; i<=n; ++i){
            scanf("%d",&x);
            id[x] = i;
            sum[i] = 0;
        }
        LL tot = 0, ans;
        for(int i=n; i>0; --i){
            tot += query(id[i]);
            add(id[i]);
        }
        ans = tot;
        for(int i=n; i>1; --i){
            tot -= n-id[i];
            tot += id[i]-1;
            ans = min(ans, tot);
        }
        printf("%lld\n",ans);
    }
    return 0;
}

 

【无人机对抗】基于matlab无人机红蓝对抗仿真【含Matlab源码 4436期】 无人机红蓝对抗仿真 完整代码,包运行;可提供运行操作视频!适合小白! 阅读详情

相关推荐

LobeHub开源AI应用平台:从部署到定制的全栈实践指南

在现代AI应用开发领域,大语言模型(LLM)的集成与部署是核心技术挑战之一。其原理在于通过API或本地化部署,将预训练模型的强大能力封装为可调用的服务。这项技术的核心价值在于极大地降低了AI应用的开发门槛,使开发者能够快速构建智能对话、内容生成等场景的应用。随着模型即服务(MaaS)模式的普及,一个关键痛点是如何高效地管理多模型、设计友好的用户界面并实现功能扩展。这正是开源项目LobeHub所聚焦的领域,它通过提供可插拔的架构和配置驱动的低代码理念,解决了AI能力落地的“最后一公里”问题。本文将结合Dock

weixin_27210125的博客 750

zoj3966 Domino Tiling dp

题目大意:给你一个n*m的棋盘 你只能用1x2的格子拼接 且不能同时有4个不同格子的角汇聚在同一处。200组左右的输入 输出任意方案。 题解:由于限制条件太强所以最优方法是确定的 首先假设n#include using namespace std; #define orz printf("orz\n"); #define pf printf #define ss system("pause")

WJSZMRX 1047

基于迁移学习的花卉识别系统

本研究采用了预训练的经典深度学习模型,包括ResNet、AlexNet和VGG,通过微调的方式在Oxford-102数据集和一个自制花卉数据集上进行训练,并对图像进行了多种数据增强操作,以提高模型的泛化能力,致力于实现花卉的高效分类。

m0_71146337的博客 2375

ACM 构造题

I - Domino Tiling ZOJ - 3966

海边拾贝,沧海一粟 1120

Workbench中直接调用ICEM CFD进行网格划分

自从ANSYS 12.0之后,ICEM CFD就从Workbench中被分离出去,作为一个独立的程序使用了。取而代之的是Meshing模块。 在Meshing的属性节点菜单中右键点击Mesh,选择Insert > Method,插入方法。 选择需要划分网格的几何体,点击apply。此时Geometry显示为1 Body。 设置Method为MultiZone,如果不设置成这个的话,找不到进入ICEM CFD的入口。如果要划分四面体,可以在Mapped Mesh Type中选择其他类型。

Yan的博客 6510

如何使用Qt的PIMPL习惯用法(PIMPL Idiom

PIMPL是指“Pointer to IMPLementation”(指向实现的指针),意味着将实现细节隐藏起来,用户类无需关注这些实现细节。在Qt中常用PIMPL习惯用法来清晰地区分接口与实现,尽管Qt官方文档并未详细说明该机制。本文将演示如何在Qt中使用PIMPL习惯用法,并以一个简单的坐标输入对话框作为实例。

电脑管家 1033

ZOJ - 4046 - Good Permutation(树状数组逆序数)

ZOJ - 4046 - Good Permutation   题意: 有一个含有n个元素的数列p,每个元素均不同且为1~n中的一个,求出将数列变为循环递增序列至少需要交换多少次 每次交换只能交换相邻的两个数,循环递增数列就是当第 i 个数列为 a 则第 i+1 个数列为 a+1 当a = n 时 下一个数 = 1   题解: 因为只能相邻交换,又要变得有序,很容易就能想到逆序对数...

vloai 675

修改 Alist 密码时报错?看看这个坑怎么解决!

启动服务后,再修改密码”。以后再遇到类似问题,先检查服务是否正常运行,说不定就能少踩不少坑。如果还有其他 Alist 的问题,欢迎在评论区留言交流~

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1154

ZOJ 4046 Good Permutation【容斥+逆序对】

A permutation of is called “good”, if and only if for all , at least one of the following condition is satisfied. • • and Given a permutation of , each time you can choose two adjancent integer...

Irish_Moonshine的博客 541

基于物联网技术设计的微型消防小车控制系统(STM32+ESP8266局域网)(181)

基于物联网技术的小微型消防车控制系统。通过远程控制功能,用户能够灵活操作消防车的行驶,方便快速抵达火灾现场。环境感知功能实时采集烟雾浓度、温湿度信息,为灭火决策提供科学依据。火源定位功能采用自动和手动两种模式,准确迅速地定位火源,并通过报警提示用户。灭火功能则根据火源定位结果,自动或手动启动干粉灭火器进行高效灭火。这些功能的结合实现了对小型火灾的全面应对,提升了消防效率与安全性,减少了火灾带来的损失。通过本项目的设计与实现,为消防领域提供了一种创新且实用的解决方案。

3079

从菜鸟到大神:VSCode助力HTML开发全攻略

本文全面介绍 VSCode 在 HTML 开发中的高效应用。先引导读者完成 VSCode 的安装与个性化设置,助其快速适应开发环境;接着推荐 Live Server、Prettier 等实用插件,实现实时预览、代码格式化等功能,提升开发效率。通过详细的开发实战步骤,从新建文件到添加样式,带领读者掌握 HTML 基础结构与常用标签使用。还分享代码片段管理、多人协作等进阶技巧,解决常见开发问题。旨在帮助开发者利用 VSCode,轻松高效完成 HTML 开发,打造优质网页。

邓邓子的博客 3364

ZOJ Monthly, June 2018 - J Good Permutation

点击打开链接题意:给你一个数列。问你交换成特殊逆序对所需要的次数。特殊逆序对:1 2 3 4 5、5 1 2 3 4、4 5 1 2 3、3 4 5 1 2 ……POINT:先算出1 2 3 4 5 正常的逆序对所需要的次数。然后for循环更新。#include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; const...

Mr_Treeeee的博客 431

【Qt开发】管理OpenGL上下文QOpenGLContext类及应用实践示例代码

QOpenGLContext 提供了一个简单、高效的接口来管理 OpenGL 上下文。本文详细介绍了 QOpenGLContext 的基本功能、常用方法、信号槽机制、高级应用技巧及常见问题的解决方法。通过这些介绍,读者可以更好地掌握和利用 QOpenGLContext 进行 OpenGL 渲染和管理实验。对于有特殊需求的开发者,也可以通过探索更多高级设置和优化策略,以满足具体的应用场景。

科技改变人类,技术成就未来 1872

Good Permutation ZOJ - 4046

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4046 先求出给定排列变换到递增排列的步数 即逆序对 然后就是每次把1...n中的最小值换为最大值 比如12...n变为23...n1时 2为最小值 1为最大值 这个过程只有1自己的大小值发生改变 就看1造成的影响就行 1原来自己对逆序对的贡献是左边有多少比它大的 也就是...

sunyutian1998的博客 260

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[zoj4046][树状数组求逆序(强化版)]

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4046 题意:有一个含有n个元素的数列p,每个元素均不同且为1~n中的一个,求出将数列变为循环递增序列至少需要左右相邻的数交换多少次 题目分析:先看简化版的题目:如果只有1 2 3 4 5是符合要求的,那么交换次数根据冒泡排序可得就是逆序数,直接树状数组求逆序数...

aiyuneng5167的博客 173

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ZOJ Monthly, June 2018 J - Good Permutation ZOJ - 4046 (逆序对+递推)

题意就是给一个1到n的排列,然后要你把这个排列变成一个好排列,(好排列的定义是这样的,k+1,k+2,...,n,1,...,k k+1取值从1变化到n),每次操作是交换两个相邻的数,问最小交换次数。 很显然我们需要把原排列转换成n个好排列的最小交换次数都求出来,然后取最小值。显然变成1 2 3 4 。。。n 这个排列的最小交换次数就是原排列的逆序对数,然后2 3 4。。。。n 1 ...

SEIZE THE DAY 245

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ZOJ 3896 Permutation (JAVA IO, CRT)

题意: 给定n的两个排列A和B,还有置换C,问最少需要对A进行多少次置换C才能变成B,不可能则输出Impossible 思路: 思路是比较好想的,难度在于怎么实现。。 对A中每个数A[i],求出它需要经过多少次置换能变成B[i],如果变不了就Impossible。 然后就是用CRT来合并就是答案了。 涨姿势了。。java的输入挂。。 import java.math.*; impor

yamiedie_ 516

POJ 4046 - Sightseeing(最短路‘spfa)

题目: http://poj.org/problem?id=4046 题意: n个点,m条边。点和边分别有相应的权值。 Q个询问,给出起点终点,一条路径中选择权值最大的点加入花费的情况下,输出最小花费。 思路: 枚举每个点作为最大权值点,跑一次spfa,如果经过询问的端点则更新询问的答案。 AC. #include #include #include #include

Halo 683

zoj3946 Highway Project

Edward, the emperor of the Marjar Empire, wants to build some bidirectional highways so that he can reach other cities from the capital as fast as possible. Thus, he proposed the highway project. The

zoey的博客 277

zoj4041 三分

题意:在二维坐标系,有两个点在y轴左侧,给出两个点位置,以及k,k代表第二个点移动的速度是第一个点的k倍,问第一个点在到达y轴之前第二个点能否追上它思路:发现对于整个y轴,从上到下(或者从下到上)两个点移动的距离之比是先增后减(或先减后增),所以可以用三分算出这个极值点,判断在这个极值点是否能被追上。点击打开链接#include&lt;iostream&gt; #include&lt;cmath&...

qq_41231363的博客 450

zoj 3396

最短路问题,,求三点之间的最短路 给出n个电话连接在m个transfer stations上,给出transfer stations之间的距离, 给出三个电话,求把三个电话连通的最短距离 dijkstra可以求出一点到其余个点的最短距离, 枚举所有点到这三个点的最小距离之和,取最小值即可 #include #include #define in

菜鸟起航的专栏 1135

ZOJ3874 Permutation Graph(DP+分治NTT)

ZOJ3874 Permutation Graph 原题地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5482 题意: 多组数据。 对于一个排列{a1,a2,… an},如果他把每一对(ai,aj)满足 iaj(即逆序对)连接起来,会得到一张图。 例如,如果排列是{2,3,1,4},则1和2连接,1和3连接。

Bfk的博客 749

全排列(next_permutation,递归)

http://www.cnblogs.com/zyoung/p/6764371.html 下面用递归算法实现对1 2 3 4 全排列:#include <iostream> using namespace std;template<typename T> void permutation(T array[], int begin, int end) { int i; if(begin

xx_ii 1324

CODECHEF Minimum Good Permutation

题目链接:https://www.codechef.com/SEPT17/problems/MINPERM 求最小的错排 奇偶要分类讨论 偶数个时把[1,n][1,n]两两分组,每组两个交换,如[1,2][1,2],[3,4][3,4]等 偶数个时前面一样,后面三个特殊处理,n−2,n−1,nn-2,n-1,n变成n−1,n,n−2n-1,n,n-2 贴代码#include<cstdio>

白云千载空悠悠 410

ZOJ - 4041 - Chasing(数学)

ZOJ - 4041 - Chasing 题意: 在 Y 轴左半边有两个人 A,B,他们的位置分别为 (XA,YA), (XB,YB) 已知 B 的速度为 A 的 k 倍 判断 B 能否在A到达 Y 轴前抓住 A   题解: 即判断Y轴上是否存在一点P使得 PB/PA &gt;= k 设P为(0, YA+a) 则PA = sqrt(XA^2 + a^2) , PB = sqrt(...

vloai 688

zoj1715

N久没有做题了,今天开始做题,发现了一道以前没有做完的题,就看了一下,水的不能再水的题了。。怀疑那时我怎么会没有做完呢 代码如下: #include int main(){ int n,q; int m; int i, j, t; char num[101], best_time, best_num; /*num[t]用来存放时间t有空的人数,bes

340
上一篇: SPOJ:Counting Divisors (general)(min_25筛)
下一篇: 洛谷:[ZJOI2014]力(FFT)
junior19
博客等级 码龄10年 118粉丝 615原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值