codeforces 285C - Building Permutation

简介: 题目大意是有一个含n个数的数组,你可以通过+1或者-1的操作使得其中的数是1--n中的数,且没有重复的数。既然是这样的题意,那么我就应该把原数组中的数尽量往他最接近1--n中的位置放,然后求差绝对值之和,但有多个数,怎么使他们和最小,这样就要对其进行排序了,直接按大小给它们安排好位置,然后计算。

题目大意是有一个含n个数的数组,你可以通过+1或者-1的操作使得其中的数是1--n中的数,且没有重复的数。


既然是这样的题意,那么我就应该把原数组中的数尽量往他最接近1--n中的位置放,然后求差绝对值之和,但有多个数,怎么使他们和最小,这样就要对其进行排序了,直接按大小给它们安排好位置,然后计算。

//CF 285C
//2013-06-06-19.57
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
const int maxn = 3*100001;
int a[maxn];
int main()
{
    int n;
    while (scanf("%d", &n) != EOF)
    {
        for (int i = 0; i < n; i++)
            scanf("%d", &a[i]);
        sort(a, a+n);
        __int64 ans = 0;
        for (int i = 0; i < n; i++)
            ans += abs(i+1-a[i]);
        printf("%I64d\n", ans);
    }
    return 0;
}
目录
相关文章
|
机器学习/深度学习 自然语言处理 算法
【论文精读】ACL 2022:Graph Pre-training for AMR Parsing and Generation
【论文精读】ACL 2022:Graph Pre-training for AMR Parsing and Generation
|
前端开发 Java API
【IDEA版】简单快速上手撸Struts框架
【IDEA版】简单快速上手撸Struts框架
556 1
|
12月前
|
监控 JavaScript 前端开发
python中的线程和进程(一文带你了解)
欢迎来到瑞雨溪的博客,这里是一位热爱JavaScript和Vue的大一学生分享技术心得的地方。如果你从我的文章中有所收获,欢迎关注我,我将持续更新更多优质内容,你的支持是我前进的动力!🎉🎉🎉
173 0
|
人工智能 供应链 物联网
未来已来:探索新兴技术的融合与革新
在数字化浪潮的推动下,区块链、物联网、虚拟现实等技术正逐渐从边缘走向中心舞台。本文将深入探讨这些技术各自的发展趋势,以及它们如何在融合中催生新的应用场景和商业模式。我们将通过具体实例揭示这些技术如何重塑我们的工作、生活和社会结构,并引发读者对未来技术走向的思考。
|
容灾 Shell Nacos
【Seata】seata的部署和集成
一、部署Seata的tc-server 1.下载 首先我们要下载seata-server包,地址在http://seata.io/zh-cn/blog/download.html
589 0
|
C++
c++ unordered_map4种遍历方式
c++ unordered_map4种遍历方式
666 0
|
机器学习/深度学习 人工智能 运维
构建高效自动化运维系统:DevOps与AI的融合
【5月更文挑战第19天】 在数字化转型的浪潮中,企业IT运维面临着日益复杂的挑战。传统的手动运维方式已经无法满足快速迭代和高可靠性的需求。本文探讨了如何通过结合DevOps理念和人工智能(AI)技术,构建一个高效的自动化运维系统。文章首先回顾了DevOps的核心原则及其在自动化运维中的应用,接着分析了AI如何增强故障预测、智能决策和自动化流程的能力。最后,提出了一个综合DevOps与AI技术的自动化运维框架,并讨论了其在实际部署中的优势和潜在挑战。
|
开发工具
vim全键盘操作
vim全键盘操作
161 0
|
存储 C语言
歌曲信息管理系统[低配版]
歌曲信息管理系统[低配版]
c++【键盘读入操作】,两种方法做小游戏的控制摇杆
c++【键盘读入操作】,两种方法做小游戏的控制摇杆
c++【键盘读入操作】,两种方法做小游戏的控制摇杆