NOIP全国联赛普及组 1995年NOIP全国联赛普及组 编码问题

本文详细介绍了1995年NOIP全国联赛普及组的一道编码问题,涉及数组的逆序数计算。题目要求根据数组A求编码B,或根据编码B还原数组A。解题关键在于理解逆序数的概念,并能实现线性时间复杂度的算法。对于问题①,从前往后更新编码;对于问题②,从后往前查找原数据。
摘要由CSDN通过智能技术生成

题目链接

题目描述
设有一个数组 A:ARRAY[0…N-1] OF INTEGER;数组中存放的元素为0~N-1之间的整数,且A[i]≠A[j](当i≠j时)。
例如:
N=6时,有:A=(4,3,0,5,1,2)
此时,数组A的编码定义如下:
A[0]的编码为0;
A[i]的编码为:在A[0],A[1],……A[i-1]中比A[i]的值小的个数(i=1,2……N-1)
∴上面数组A的编码为:B=(0,0,0,3,1,2)

程序要求解决以下问题:
① 给出数组A后,求出其编码;
② 给出数组A的编码后,求出A中的原数据。

输入
每个测试文件只包含一组测试数据,每组输入包含三行。
第一行输入整数N,N<=12;
第二行输入有两种可能:
例如:
A=(4,3,0,5,1,2)

B=(0,0,0,3,1,2)
其中输入中的逗号和括号都是英文状态下的。
输出
当输入的是A=(…),则输出其编码。
当输入的是B=(…),则输出A中的原数据。
输出数据的格式和输入数据的格式是一样的。
样例输入 Copy
6
A=(4,3,0,5,1,2)
样例输出 Copy
B=(0,0,0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值