HDU 6215 2017Brute Force Sorting 青岛网络赛 队列加链表模拟

PLSQL Developer新手必看:如何避免安装过程中的常见坑 本文为PL/SQL Developer新手提供了详尽的安装与配置避坑指南。从版本选择、注册码使用、汉化包安装到Oracle客户端连接配置,逐一解析常见问题并提供解决方案,帮助开发者快速搭建稳定的PL/SQL开发环境,顺利开启Oracle数据库编程工作。 阅读详情

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6215

题意:给你长度为n的数组,定义已经排列过的串为:相邻两项a[i],a[i+1],满足a[i]<=a[i+1]。我们每次对当前数组删除非排序过的串,合并剩下的串,继续删,直到排序完成。

解法:双向链表模拟过程,设置一个队列,用于存可能产生非排序过的串的头结点,每次从队列中拿出一个头结点判断后面的情况,若还能继续删除,则将头结点的上一个结点放入队列继续判,知道没有别的结点为止。

#include<bits/stdc++.h>
using namespace std;

const int maxn=1e5+1e3;

int n, a[maxn];

int pre[maxn], nxt[maxn], vis[maxn];

vector<int> V;

void del(int p) {
    nxt[pre[p]] = nxt[p];
    pre[nxt[p]] = pre[p];
    if(nxt[p] != n + 1 && !vis[nxt[p]] && pre[p] != 0 && a[pre[p]] > a[nxt[p]]) {
        V.push_back(nxt[p]);
        V.push_back(pre[p]);
    }
}

void read(){
    scanf("%d", &n);
    for(int i = 1; i <= n; ++i)scanf("%d", a+i);
    for(int i = 1; i <= n; ++i)pre[i] = i - 1,nxt[i] = i + 1;
    for(int i = 1; i <= n; ++i) vis[i] = 0;
    V.clear();
    for(int i = 1; i < n; ++i) if(a[i] > a[i + 1]) {
        V.push_back(i);
        V.push_back(i + 1);
    }
    sort(V.begin(), V.end());
    V.erase(unique(V.begin(), V.end()), V.end());
}

vector<int> ans;

void solve(){
    while(!V.empty()) {
        for(int i=0;i<V.size();i++)vis[V[i]] = 1;
        vector<int> tmp = V;
        V.clear();
        for(auto v: tmp)del(v);
        sort(V.begin(), V.end());
        V.erase(unique(V.begin(), V.end()), V.end());
    }
    ans.clear();
    for(int i = 1; i <= n; ++i) if(!vis[i]) ans.push_back(i);
    printf("%d\n", (int)ans.size());
    for(int i = 0; i < ans.size(); ++i) {
        printf("%d ", a[ans[i]]);
    }
    puts("");
}

int main() {
    int T;
    scanf("%d",&T);
    while(T--) {
        read();
        solve();
    }
    return 0;
}
EPICS电机支持(asynMotor) 阅读详情

相关推荐

3DMax马克杯制作教程

01 在前视图创建一个【圆柱体】,设置参数,长度为32,高度为82;高度分段12、边数为16;如图所示。 02 点击鼠标右键,把圆柱体转换为可编辑多边形,如图所示。 03 在修改面板中,选择【多边形】层级,在视图中选择所示的面,使用缩放工具稍微缩小一点,如图所示。 04 点击【插入设置】,如图所示。 设置插入数量为2.5mm。 05 点击【挤出设置】,如图所示。 ...

youximoxingEDO的博客 3478

【2017青岛网络赛】1010 hdu 6215 Brute Force Sorting 双向链表+队列

Problem Description Beerus needs to sort an array of N integers. Algorithms are not Beerus's strength. Destruction is what he excels. He can destroy all unsorted numbers in the array simultaneous

弱菜zc 713

二次开发vba_CATIA VBA(VBS)二次开发:使用Search批量选择元素

在CATIA二次开发中很多在程序中进行自动交互的方法或函数都需要使用选择集作为参数,将几何元素按照要求批量添加到选择集中也是实现程序自动运行的有效方法。在前面的文章《CATIA使用VBA(VBS)二次开发时用户的交互选择》和《CATIA使用VBA(VBS)二次开发时工程图和草图位置的交互选择函数Indicate2D》中介绍了在CATIA VBA(VBS)二次开发中用户和选择集之间的交互操...

weixin_32497403的博客 1321

NBOJ 1184 Elaine's Queue deque的运用

题目来源:http://ac.nbutoj.com/Problem/view.xhtml?id=1184     题意:就是说有一种队列,有两种操作,top操作是将原队列中的一个元素作为新队列的头元素,next操作是输出新队列中的头元素    思路:有多种解法,可以用链表做,也可以用deque做。话说,deque真的好强大,竟然还可以访问下标。。。。 代码: #include #incl

1097

VS2019手动添加bits/stdc++.h全指南(附解决‘无法打开源文件‘错误)

本文详细介绍了在Visual Studio 2019中手动配置C++万能头文件bits/stdc++.h的完整方法,解决常见的'无法打开源文件'错误。通过分析GCC与MSVC编译器生态差异,提供了纯手动创建和MinGW移植两种可靠方案,并给出详细的步骤、常见错误排查及最佳实践建议,帮助开发者高效配置竞赛开发环境。

weixin_29011395的博客 549

Visual Studio 2022 社区版安装指南:从下载到配置的完整流程

本文详细介绍了Visual Studio 2022社区版的完整安装与配置流程,包括系统要求检查、官方下载步骤、工作负载选择、安装位置配置等关键环节。作为微软推出的免费集成开发环境,VS2022社区版支持多种编程语言,适合个人开发者和小型团队使用。文章还提供了常见问题解决和性能优化技巧,帮助用户高效完成开发环境搭建。

weixin_28829339的博客 880

hdu 1027 水+模拟排列

题意:         给定1~n的序列,求第m小的序列。大小比较按照字符串比较的顺序。 分析:        n个数有n!个排列方式,如果在n里面取出最小的1,那么后面的就有n-1!个序列,按照这个原理,从前往后推,可以得出

JoeJiao 554

WRF后处理:python cartopy绘制土地利用/土地分类图//python绘制WRF下垫面类型(以北极为例)

下垫面类型对于WRF的地表过程十分重要,而在我们研究WRF的地表过程之前,需要对输入的土地利用类型进行一些绘制,以便后续的修改。LU_MODIS21函数定义了绘制的土地类型、标签与对应色标,我们使用时,直接引用LU_MODIS21()即可返回。其实很简单,只要将你拥有的土地类型数据提取出来,将原本函数中的labels和C切片,重新定义色标再绘制即可。在这里,我将以北极地区为例,绘制北极地区的WRF下垫面数据,我使用的MODIS21这类。

weixin_43750300的博客 3859

hdu 4217 链表 超内存

#include <stdio.h> #include <malloc.h> int n,m,c; struct node { int data; struct node * next; }; void InitList(node * H) { H=(node *)malloc(sizeof(node)); H->next...

weixin_30627381的博客 199

Twincat Scopeview录波中的Ringbuffer设置技巧与常见问题解决

本文深入解析了倍福Twincat Scopeview录波功能中Ringbuffer(环形缓冲区)的核心设置技巧与常见问题解决方案。针对数据丢失、触发时机不准等痛点,详细阐述了缓冲区大小、预触发样本、采样率等关键参数的优化配置,并提供了多通道同步、自动诊断等实战应用指南,帮助工程师高效捕捉和分析PLC数据。

rainy的博客 846

CAPL概述与环境搭建

CANoe和CANalyzer是Vector公司开发的两款用于汽车电子系统开发和测试的工具。CANoe主要用于网络开发、仿真和测试,而CANalyzer则主要用于网络分析和诊断。两者都支持CAPL脚本语言,可以用于编写复杂的测试脚本和仿真模型。CAPL Browser是CANoe/CANalyzer中用于编写、编辑和调试CAPL脚本的工具。它提供了一个集成的开发环境,支持语法高亮、代码自动补全、调试等功能。菜单栏:包含文件操作、编辑、编译、调试等功能。工具栏。

闲人编程的博客 1665

hdu6215(双向链表)

链接:点击打开链接 题意:给出n个数,每次删除所有递减的子串,然后按照原先的顺序合并剩下的元素,直到不存在递减的子串为止,输出所有元素 代码:#include #include #include #include #include #include #include #include #include using namespace std; const int siz=10

stay_accept的专栏 766

别再瞎改网络结构了!解决YOLO小目标检测痛点,我用这招把mAP提了15%

本文基于我7年工业PCB缺陷检测、无人机航拍、安防监控项目的一线落地经验,针对YOLO小目标检测最痛的「漏检率高、特征丢失、精度难提升」三大核心问题,拆解出。本文全程配套小目标特征丢失原理图、分块训练流程图、切图前后效果对比图、mAP提升柱状图、多方案性能对比表等可视化内容,从YOLO天生不擅长小目标的底层根源、方案核心原理、可直接复制的代码实现,到工业场景实测验证、新手必踩的10个坑位避坑指南,全链路讲透。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 387

HDU 6215 Brute Force Sorting 模拟

题目链接:HDU 6215 Brute Force Sorting Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 302    Accepted Submission(s): 60 Problem Descr

teddywang 1121

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

hdu 6215 Brute Force Sorting 模拟链表

hdu 6215 题意: 给你长度为n的数组,定义已经排列过的串为:相邻两项a[i],a[i+1],满足a[i] 思路: 我们可以采用数组模拟一个双向链表,再用一个队列来模拟整个的删除过程.队列中存放的是可能从该点开始产生非排序序列的下标,每次从队列中拿出一个结点,看后面的是否满足排序,不满足就删除这一段然后一直后移,直到整个队列为空. 这里需要注意要

Marcus-Bao的个人主页 920

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

[刷题]2017 ACM Qingdao Online - Brute Force Sorting

2017 ACM-ICPC Asia Regional Qingdao Online - 1010 - Brute Force Sorting(HDU6215)Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1195 Accepted

蟹脑板的博客 631

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

HDU 6215 模拟链表 + 队列优化

简略题意:对一个序列做如下操作:每次同时将一个数,以及这个数右边的比他小的数删除,执行若干次直到整个序列单调不递减。输出最终序列。假若直接模拟的复杂度是O(n^2)的。 用pre[i]代表与i相连的,在i之前的数。 用suf[i]代表与i相连的,在i之后的数。 其实如果我们需要删除[l,r][l, r]区间,那么我们下次有可能删除的只有pre[l]pre[l],用队列存下这个pre[l]pre

即使摸爬滚打,满身泥泞,我也要前进 413

hdu6215 Brute Force Sorting

地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6215 题目: Brute Force Sorting Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 496Accept...

weixin_30247781的博客 140

hdu 6215(双向链表+队列模拟)

hdu 6215 思路: 用链表记录数据,将所有数据存入队列,然后每次删除不符合的数据,将符合要求的数据如队列, 逐步缩小数据范围。(注意:最后输出的每个数字后面接一个空格)。 #include<iostream> #include<cstdio> #include<cstring> using namespace std; const i...

积少成多,水滴石穿 448

HDU 6215 Brute Force Sorting(伪双向链表删边)

题目地址 题意:Beerus想把一个序列排序,但是他不会排序,他只会删除一些点(如果一个数比前一个数小或者比后一个字符大就要把这个字符删掉),为了让最后得到得串是有序的,或者是空字符串。问最后剩下的序列是什么? 思路:因为要与前一个后一个去比较,但是又要进行删除操作,那么很自然的就可以想到用双向链表去实现,但是双向链表要每次都要把空间给释放掉,要不然就会爆内存了,这样的话我们可以用结构体数组去代

不要錯過才珍惜 786

UVa 540 小团体队列

题意:队列中有小团体(队列)。当入队时,如果有该团体的元素在队列中,则新元素排到该团体的尾部,否则排到队列的尾部。出队时和正常的一样,队首元素出列。 思路:这个用STL很好模拟,用纯C的话,很直接会想到用二维数组来做,每个团体是其中的一个一维数组,最多再开一个数组来对小团体编号进行排队。但是当时没有看到题目中说的每个团体最后有1000个元素,这样的话我以为要开1000X200000的数组,忒大了

buxizhizhou530的专栏 1487

【Luogu1160】队列安排(双向链表)

problem solution codes #include&amp;lt;iostream&amp;gt; using namespace std; int le[100010], ri[100010], book[100010]; int main(){ int n; cin&amp;gt;&amp;gt;n; ri[0] = 1; for(int i = 2; i&amp;lt;= n; i...

小哈里的博客 843

P1903 [国家集训队]数颜色 / 维护队列

传送门 带修莫队,在原来的基础上加一个时间指针 $t$ 每次移动时除了 $l,r$ 移动 $t$ 也跟着移动,并更新状态 为了维护时间变化 所以维护一个 $pos[i]$ 表示第 $i$ 次修改的位置,$co[i]$ 表示第 $i$ 次修改的颜色 $pre[i]$ 表示第 $i$ 次修改前 $pos[i]$ 的颜色 #include<iostream> #includ...

weixin_30648587的博客 136

模拟链表

#include<stdio.h> #include <stdlib.h> int main() { int data[101], right[101];//right[i] = n代表data[i]右边的元素是data[n] eg right[3] = 10 表示data[3]右边的元素是data[10] int i, ...

weixin_30305735的博客 124

HDU 6215 链表

题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6215 给出n个数的序列,每一轮需要删除当前这一轮比左边的数小或者比右边的数大的数字,然后再将剩下的部分合并,进行下一轮。最后序列变成非递减时结束,输出最后序列。思路:很显然每一轮就删掉一段递减的序列,比如,{1,2,3,7,6,5,8}删除的就是7,6,5,可以发现,每次删除一段后只会对这一段左

Bahuia的博客 977

hdu 6215 -- Brute Force Sorting(双向链表+队列)

题目链接 Problem Description Beerus needs to sort an array ofNintegers. Algorithms are not Beerus's strength. Destruction is what he excels. He can destroy all unsorted numbers in the array simulta...

weixin_30815469的博客 162
上一篇: Codeforces 758C-   Unfair Poll
下一篇: HDU 6208 ac自动机 hash sam 后缀数组
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值