博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何做信竞
阅读量:5098 次
发布时间:2019-06-13

本文共 1272 字,大约阅读时间需要 4 分钟。

如何做信竞?

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

#include
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?10\leq 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的题)

转载于:https://www.cnblogs.com/aristocrat/p/8459961.html

你可能感兴趣的文章
bzoj1044 [HAOI2008]木棍分割——前缀和优化DP
查看>>
jvm性能调优笔记
查看>>
python学习第三天基本数据类型、格式化输入输出、运算符。流程控制
查看>>
FRM-40654 Record has been updated
查看>>
IDEA03 连接数据库、自动生成实体类
查看>>
保险数据分析
查看>>
字程序级别的重构
查看>>
标准的ajax上传
查看>>
extjs4 折线图(实时动态展现数据)实例
查看>>
测试小技巧之常用工具
查看>>
真有效值与有效值概念
查看>>
poj1470 LCA+RMQ
查看>>
搭建 CentOS 6 服务器(15) - Keepalived、HAProxy、LVS
查看>>
优秀IOS开发网站集合
查看>>
hdu 4451水题
查看>>
博客作业2---线性表
查看>>
右击main 方法运行正常,启动tomcat 后,spring boot 项目 出现参数字符串是乱码的情况...
查看>>
javascript朝花夕拾
查看>>
20135335郝爽 & 20135304刘世鹏 实验一
查看>>
多行文本省略号的实现.html
查看>>