前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >E-Early Orders 题解

E-Early Orders 题解

作者头像
灯珑LoGin
发布2022-10-31 13:15:00
1810
发布2022-10-31 13:15:00
举报
文章被收录于专栏:龙进的专栏

前两天打了2021年度训练联盟热身训练赛第一场

这个e题还是蛮不错的

链接:https://ac.nowcoder.com/acm/contest/12606/E

样例输入

代码语言:javascript
复制
链接:https://ac.nowcoder.com/acm/contest/12606/E
来源:牛客网

示例1
输入
6 3
3
2
1
3
1
3

输出
2 1 3

示例2
输入
10 5
5
4
3
2
1
4
1
1
5
5

输出
3 2 1 4 5

题意大概是:给出一段数字序列,要求按照顺序取元素组成子列,子列有1-k的数字,并且子列值最小

这道题可以用栈来解决:先把第一个元素压入栈,然后接下来判断栈顶元素是否大于当前元素值,是的话就弹出(前提是后面还存在这个元素,以便于它可以再次被压进来)

如果当前元素以及在栈里面,那么上述规则不生效(防止同一多次压进去)

最后,代码是这样子的:

代码语言:javascript
复制
#include<bits/stdc++.h>
using namespace std;

#define MAXN 200005
int x[MAXN] = { 0 };
int js[MAXN] = { 0 };
bool in_stack[MAXN] = { false };

int main()
{
    int k, n;
    scanf("%d%d", &n, &k);

    for (int i = 0; i < n; ++i)
    {
        scanf("%d", &x[i]);
        js[x[i]]++;
    }

    stack<int> s;
    s.push(x[0]);
    js[x[0]]--;
    in_stack[x[0]] = true;

    for (int i = 1; i < n; ++i)
    {
        js[x[i]]--;
        //if(x[i]==1) cout<<"aaa"<<in_stack[1]<<endl;
        while (!s.empty() && (s.top() > x[i]) && (js[s.top()] > 0) && in_stack[x[i]] == false)
        {
            in_stack[s.top()] = false;
            s.pop();
        }
        if (in_stack[x[i]] == false)
        {
            s.push(x[i]);
            in_stack[x[i]] = true;
            //cout<<x[i]<<' '<<in_stack[x[i]]<<endl;
        }

    }
    list<int> li;

    while (!s.empty())
    {
        li.push_front(s.top());
        s.pop();
    }

    while (!li.empty())
    {
        printf("%d", li.front());

        if (li.size() > 1)
            printf(" ");
        else printf("\n");


        li.pop_front();
    }
    //system("pause");
}

转载请注明来源:https://www.longjin666.top/?p=813

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年7月14日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档