zoukankan      html  css  js  c++  java
  • 如何做信竞

    如何做信竞?
    首先你要看一道题
    然后根据题目要求写一段代码
    比如说“输出helloworld”
    那么代码是

    #include<cstdio>
    using namespace std;
    int main()
    {
        printf("helloworld");
        return 0;
    }

    现在你已经掌握了信竞的基本方法,现在我们来做一道简单的题练习一下吧!

    题目描述

    德黑兰市是伊朗国家图书馆的所在地。这个图书馆的镇馆之宝位于一个长长的大厅内,大厅里有排成一行的 张桌子,从左到右依次编号为从000到n?1n-1n?1。每张桌子上都陈列着一本手写的古书。这些古书是根据其历史年份进行排序的,这使得访客们难以根据书名来查找它们。所以,图书馆主管决定按照书名的字母序来重新排列它们。
    图书管理员Aryan要完成这项工作。他创建了一个长度为nnn的列表ppp,其中包括由000到n?1n-1n?1的不同整数。这个列表描述了按字母序来重排古书所要做的改变:对于0<=i<n0 leq i < n0<=i<n,目前在桌子iii上的古书应该被移到桌子p[i]p[i]p[i]上。
    Aryan从桌子sss开始重排这些古书。他希望在做完重排工作之后再回到同一张桌子上。由于这些古书非常珍贵,在任何时间,他手持的古书都不能超过一本。在重排古书的过程中,Aryan将会做一系列的操作。每个操作只能是以下其中之一:
    如果他手上没有书,而他所在的桌子上恰好有一本书时,他可以拿起这本书。
    如果他手上有一本书,而他所在的桌子上恰好有另一本书时,他可以把手上的书和桌子上的书进行交换。
    如果他手上有一本书,而他所在的桌子上没有书时,他可以把手上的书放到这个桌子上。
    他可以走到任何一张桌子前。当他进行这个操作时,他手上可以拿一本书。
    对于所有0<=i,j<=n?10leq i,j leq n-10<=i,j<=n?1,桌子iii和桌子jjj之间的距离正好是|j?i||j-i||j?i|米。你的任务是,计算出Aryan重 排好所有古书所走过的总距离的最小值。

    实现细节

    你需要实现下面的函数:
    (Java) int64 minimum_walk(int[] p, int s)
    (C++) long long minimun_walk(std::vector<int> p, int s)
    ppp是一个长度为nnn的数组。初始阶段在桌子iii上的古书需要被Aryan移到桌子p[i]p[i]p[i]上(对于所有0<=i<n0 leq i < n0<=i<n)。
    sss是初始阶段Aryan所在桌子的编号,同时也是重排好所有古书之后他应该在的位置。
    该函数要返回Aryan重排好所有古书所需走过的总距离的最小值(以米为单位)。

    输入输出格式

    输入格式:

    你需要实现上述函数

    输出格式:

    你的函数需要返回一个合法的结果

    (随便扒了一道IOI的题)

  • 相关阅读:
    Windows JScript 在 游览器 中运行 调试 Shell 文件系统
    autohotkey 符号链接 软连接 symbolink
    软链接 硬链接 测试
    SolidWorks 修改 基准面 标准坐标系
    手机 路径 WebDAV 映射 驱动器
    Win10上手机路径
    explorer 命令行
    单位公司 网络 封锁 屏蔽 深信 AC
    cobbler自动化部署原理篇
    Docker四种网络模式
  • 原文地址:https://www.cnblogs.com/aristocrat/p/8459961.html
Copyright © 2011-2022 走看看