nssl1195-健美猫【???】

正题


题目大意

给出序列s(s∈[1,n])(s\in [1,n])(s[1,n]),将序列旋转
旋转操作
si=si+1(i∈[1,n−1])sn=s1\begin{matrix} \\s_i=s_{i+1}(i\in [1,n-1]) \\ s_n=s_1 \end{matrix}si=si+1(i[1,n1])sn=s1
然后要求
∑i=1nsi−i\sum _{i=1}^ns_i-ii=1nsii
最小


解题思路

根据对答案的贡献,我们排除尾部过去,我们可以大致分为两种情况:
si&lt;=i:fi=fi−1+1s_i&lt;=i:f_i=f_{i-1}+1si<=i:fi=fi1+1
si&gt;i:fi=fi−1−1s_i&gt;i:f_i=f_{i-1}-1si>i:fi=fi11
然后我们用桶aia_iai记录在第i次旋转会两种形态互换的个数然后用addaddadd记录目前可以累加的,然后每次根据上面那个aia_iai来改变addaddadd
至于最后一个,我们考虑一下s?−ns_?-ns?n肯定是在第1种情况,然后要先用这个改变,然后在考虑
abs(s?−n)(s&lt;=n)⇒n−s?abs(s_?-n)\ (s&lt;=n) \Rightarrow n-s_?abs(s?n) (s<=n)ns?

abs(s?−1)(s&gt;=1)⇒s?−1abs(s_?-1)\ (s&gt;=1) \Rightarrow s_?-1abs(s?1) (s>=1)s?1
所以改变之后产生代价
(n−s?)+(s?−1)=2∗s?−n−1(n-s_?)+(s_?-1)=2*s_?-n-1(ns?)+(s?1)=2s?n1


code

#include<cstdio>
#include<algorithm>
#define N 2000010
using namespace std;
int n,s[N],a[N];
long long ans,sum,add;
int read(){int x=0,flag=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')flag=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*flag;
}
int check(int x,int y)
{if(x<=y) return y-x;else return n+y-x;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){s[i]=read();a[check(i,s[i])]++;if(s[i]<=i) add++;sum+=abs(s[i]-i);}ans=sum;for(int i=1;i<n;i++){add--;sum+=abs(s[n-i+1]-1)-abs(s[n-i+1]-n);sum+=add*2-n+1;add+=a[i];ans=min(ans,sum);}printf("%lld",ans);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hack for Cloud Beginner微软黑客松大赛

在这美丽的西子湖畔&#xff0c;我们欢迎各行各业的开发者参与此次Hack for Cloud Beginner微软黑客松大赛。我们致力于为开发者们提供在技术、社区领域中的交流平台&#xff0c;重在参与&#xff0c;意于创新。 此次黑客松大赛将于10月22日在中国杭州拉开帷幕&#xff0c;参与…

Asp.Net Core 2.0 多角色权限认证

在使用 WebForm 技术开发网站的时候&#xff0c;微软就提供了 Form 身份认证&#xff0c;这使得登录认证简单了许多&#xff0c;不同于 WebForm 以及后来的 Asp.Net Mvc&#xff0c;Asp.Net Core 中的身份认证与之前相比使用更加便捷&#xff0c;本文介绍 Asp.Net Core 2.0 多角…

html近期所学

导航栏&#xff08;新学的&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;其实就是简单的href&#xff09; css 开门大吉 轮播样式 js css js1 js1 js1 js1 js1 js7 首先是css 开门大吉 改只需其中的gif <html><head><style>section{width…

nssl1210-质数【素数筛】

正题 题目大意 求l∼rl\sim rl∼r这个区间素数或两个素数的乘积的数个数 解题思路 在欧式筛的时候判断j是不是素数&#xff0c;是就标记就行了。 code #pragma GCC optimize(2) #include<cstdio> #define N 10000000 #define ll int using namespace std; ll prime[N]…

asp.net core后台系统登录的快速构建

登录流程图 示例预览 构建步骤 当然&#xff0c;你也可以直接之前前往coding仓库查看源码&#xff0c;要是发现bug记得提醒我啊~ LoginDemo地址 1. 首先你得有一个项目 2. 然后你需要一个登录页面 完整Login.cshtml视图代码戳这里-共计55行 效果预览图 <!DOCTYPE html>&l…

nssl1211-好文章【字符串hash,map】

正题 题目大意 求长度为n个一个字符串长度为m不同的子串个数 解题思路 用字符串hash判断字符串是否相同&#xff0c;然后时间复杂度O(n2)O(n^2)O(n2)&#xff0c;然后我们因为自然溢出所以不能开桶&#xff0c;那就开map。然后就会愉快的被卡&#xff0c;所以再加一个自定义模…

JavaFX Chart设置数值显示

一、XYChart import javafx.application.Application; import javafx.geometry.NodeOrientation; import javafx.geometry.Side; import javafx.scene.Scene; import javafx.scene.chart.*; import javafx.scene.control.Label; import javafx.stage.Stage;public class LineC…

多多自走棋

文章目录[x]形似麻将种族职业各种搭配操作下面还是讲讲攻略&#xff08;主要&#xff09;在朋友的推荐下玩了自走棋&#xff0c;我一个不玩王者不玩吃鸡的人&#xff0c;玩这游戏竟然上瘾了&#xff0c;太不可思议了&#xff0c;这两天被这游戏搞得中午都没睡好&#xff0c;不得…

Linux--用SecureCRT来上传和下载文件

转载自 Linux--用SecureCRT来上传和下载文件 SecureCRT下的文件传输协议有以下几种&#xff1a;ASCII、Xmodem、Ymodem、Zmodem ASCII&#xff1a;这是最快的传输协议&#xff0c;但只能传送文本文件。 Xmodem&#xff1a;这种古老的传输协议速度较慢&#xff0c;但由于使用…

从头编写 asp.net core 2.0 web api 基础框架 (1)

工具: 1.Visual Studio 2017 V15.3.5 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相关知识就不介绍了, 这里主要是从头编写一个asp.net core 2.0 web api的基础框架. 我最近几年一直在使用asp.net web api (传统.net framework)作为后台Api, …

nssl1209-奇怪的队列【贪心,权值线段树】

正题 题目大意 给出每个人前或后面比他高的人数&#xff0c;然后求一个序列&#xff0c;人们高度字典序最小的序列。 解题思路 我们将高度从小到大插入&#xff0c;然后对于每个人至少保留一些比他高的人的空位&#xff0c;然后用权值线段树O(log2n)O(log^2 n)O(log2n)计算第…

美妙的Github

这十天来&#xff0c;一度被自走棋带入了旋涡。没学到什么&#xff0c;但让我惊喜的是&#xff0c;游戏之余&#xff0c;我尝试了下Github。人们都讲Github是程序员的必备&#xff0c;连Github都不知道做什么程序员。玩了github之后我才是知道什么叫大佬。 通常我找源代码都是上…

layer之jquery 弹窗插件 (最后版本v1.8.5)

转载自 jquery 弹窗插件 layer jquery.layer版本&#xff08;v1.8.5&#xff09;下载地址 注意&#xff1a;v1.8.5后改版移除各种API&#xff0c;构造方法改版 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ht…

白嫖之Github

文章目录[x]微信机器人这十天来&#xff0c;一度被自走棋带入了旋涡。没学到什么&#xff0c;但让我惊喜的是&#xff0c;游戏之余&#xff0c;我尝试了下Github。人们都讲Github是程序员的必备&#xff0c;连Github都不知道做什么程序员。玩了github之后我才是知道什么叫大佬。…

asp.net core封装layui组件示例分享

什么封装&#xff1f;这里只是用了TagHelper&#xff0c;是啥&#xff1f;自己瞅文档去 在学习使用TagHelper的时候&#xff0c;最希望的就是能有个Demo能够让自己作为参考 怎么去封装一个组件&#xff1f; 不同的情况怎么去实现&#xff1f; 有没有更好更高效的方法&#xff1…

ssl提高组周三备考赛【2018.10.17】

前言 爆零… 成绩 爆蛋的就不放了 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC1112017hjq2017hjq2017hjq2022022021414148888881001001002222017zyc2017zyc2017zyc1001001000001001001000003332015lzx2015lzx2015lzx1001001001001001000000004442017lrz2017lrz2…

layer之弹层组件文档 layui.layer(v.1.9.0之后)

弹层组件文档 - layui.layer layer 至今仍作为 layui 的代表作&#xff0c;她的受众广泛并非偶然&#xff0c;而是这数年来的坚持、不弃的执念&#xff0c;将那些不屑的眼光转化为应得的尊重&#xff0c;不断完善和维护、不断建设和提升社区服务&#xff0c;在 Web 开发者的圈子…

设置宽带自动连接

刚接触电脑的小伙伴有没有这样的困扰&#xff0c;每次电脑开机的时候都要自己手动重新连接宽带&#xff0c;很麻烦。 而通过一些设置我们可以免除这样的麻烦&#xff0c;不需要输入账号密码&#xff0c;开机自动连接&#xff0c;每次开机省去个一两分钟的宽带连接时间&#xf…

随时随地以任意方式编写 .NET 应用程序

希望大家现在都知道&#xff0c;Microsoft .NET 不再仅适用于 Windows。借助 .NET Core&#xff0c;可以使用想要的语言&#xff08;C#、Visual Basic 或 F#&#xff09;编写应用程序&#xff0c;这些应用程序可以在选定的任何 OS&#xff08;Windows、macOS 或 Linux&#xff…

ssl提高组周四备考赛【2018.10.18】

前言 开始做四面八方扣来的题 成绩 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC1112017zyc2017zyc2017zyc1601601607070703030306060602222017wyc2017wyc2017wyc1401401408080801010105050503332017lrz2017lrz2017lrz1401401404040401001001000004442017xjq2017x…