投稿  收藏 
第 22 题   

对于一个1到n的排列p(即1到n中每一个数在p中出现了恰好一次),令qi为第i个位置之后第一个比pi值更大的位置,如果不存在这样的位置,则qi= n +1。举例来说,如果n = 5且p为1 5 4 2 3,则q为2 6 6 5 6。

下列程序读入了排列p,使用双向链表求解了答案。试补全程序。(第二空2分,其余 3 分)

数据范围 1 ≤ n ≤ 105

 

#include <iostream>

using namespace std;

const int N = 100010;

int n;

int L[N], R[N], a[N];

int main() {

cin >> n;

for (int i = 1; i <= n; ++i) {

int x;

cin >> x;

                 (1)        ;

}

for (int i = 1; i <= n; ++i) {

R[i] =      (2)      ;

L[i] = i - 1;

}

for (int i = 1; i <= n; ++i) {

L[      (3)      ] = L[a[i]];

R[L[a[i]]] = R[      (4)      ];

}

for (int i = 1; i <= n; ++i) {

cout <<      (5)      << " ";

}

cout << endl;

return 0;

}

 
 

下载文档

下载文档

相关试卷

第 23 题    一只小猪要买 N 件物品(N 不超过 1000)。 它要买的所有物品在两家商店里都有卖。第 i 件物品在第一家商店的价格是a[i],在第二家商店的价格是 b[i],两个价格都不小
第 22 题    对于一个1到n的排列p(即1到n中每一个数在p中出现了恰好一次),令qi为第i个位置之后第一个比pi值更大的位置,如果不存在这样的位置,则qi= n +1。举例来说,如果n = 5
第 21 题    阅读程序写结果: #include <cstdio> using namespace std; const int N = 110; bool isUse[N]; in
第 20 题    阅读程序写结果: #include <iostream> using namespace std; string s; long long magic(int l, i
第 19 题    阅读程序写结果: #include <cstdio> int n, d[100]; bool v[100]; int main() { scanf("%d&
第 18 题    阅读程序写结果: #include <cstdio> int main() { int x; scanf("%d", &x); int res
第 17 题 方程 a*b = (a or b) * (a and b),在 a,b 都取 [0, 31] 中的整数时,共有_____组解。(*表示乘法;or 表示按位或运算;and 表示按位与运算)
第 16 题 甲乙丙丁四人在考虑周末要不要外出郊游。 已知①如果周末下雨,并且乙不去,则甲一定不去;②如果乙去,则丁一定去;③如果丙去,则丁一定不去;④如果丁不去,而且甲不去,则丙一定不去。 如果周末
第 15 题 下列关于图灵奖的说法中,正确的有( )。  A. 图灵奖是由电气和电子工程师协会(IEEE)设立的。  B. 目前获得该奖项的华人学者只有姚期智教授一人。  C. 其名称取自计算机科学的
第 14 题 下列说法中,是树的性质的有( )。  A. 无环  B. 任意两个结点之间有且只有一条简单路径  C. 有且只有一个简单环  D. 边的数目恰是顶点数目减 11

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!
  • 温馨提示:本文属于积分文章,需要充值获得积分或升级VIP会员,也可在会员中心投稿获取。

猜你喜欢