hdu 6215 Brute Force Sorting
来源:互联网 发布:淘宝上那些代购是真的 编辑:程序博客网 时间:2024/06/05 05:00
如果直接暴力肯定是不能过的,时间超限,删除一个数,只会影响到这个数的前一个和后一个,用数组模拟链表,如果每次删除后再从头遍历,就是暴力,超时的,所以用set存储删除的数x的前一个,链表的前一个,不是直接前一个数。因为是按顺序来的,不存在存进set然后在删除的情况(这一句,如果看不懂可以忽略)。如果删除n个数复杂度就是o(n)*lg(n),因为set存储是o(n)*lg(n)。
#include <bits\stdc++.h>using namespace std;set<int>st;vector<int>vec;const int maxn=1e5+7;int pre[maxn],nxt[maxn],val[maxn],dl[maxn];int main(){int t,n;scanf("%d",&t);while(t--){ memset(dl,0,sizeof(dl)); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&val[i]); pre[i]=i-1; nxt[i]=i+1; st.insert(i); } nxt[0]=1; pre[n+1]=n;val[n+1]=maxn; int pre1,nxt1; while(st.size()>0) { vec.clear(); for(auto &x:st) { pre1=pre[x];nxt1=nxt[x]; if(val[pre1]>val[x])vec.push_back(pre1),vec.push_back(x); if(val[x]>val[nxt1])vec.push_back(x),vec.push_back(nxt1); } st.clear(); for(auto &x:vec) if(!dl[x]) { pre1=pre[x];nxt1=nxt[x]; nxt[pre1]=nxt1; pre[nxt1]=pre1; st.insert(pre1); dl[x]=1; } } int cnt=0; for(int i=nxt[0];i!=n+1;i=nxt[i]) cnt++; printf("%d\n",cnt); for(int i=nxt[0];i!=n+1;i=nxt[i])printf("%d ",val[i]); puts("");} return 0;}/*281 4 5 2 3 2 1 261 4 5 2 3 2*/
阅读全文
0 0
- HDU 6215 Brute Force Sorting
- hdu 6215 Brute Force Sorting
- hdu 6215 Brute Force Sorting
- HDU 6215 Brute Force Sorting [链表]
- HDU 6215 Brute Force Sorting 模拟
- HDU 6215 Brute Force Sorting [链表]
- Hdu 6215 Brute Force Sorting【链表】
- hdu 6215 Brute Force Sorting 【链表+队列】
- HDU 6215 Brute Force Sorting【双端链表】
- hdoj 6215 Brute Force Sorting
- HDU 6215 Brute Force Sorting 链表 + 队列(模拟)
- hdu 6215 Brute Force Sorting 模拟链表
- HDU 6215 Brute Force Sorting (链表维护数组)
- HDU 6215 Brute Force Sorting(伪双向链表删边)
- HDU-6215 Brute Force Sorting(思维、模拟链表)
- HDU 6215 2017Brute Force Sorting 青岛网络赛 队列加链表模拟
- 【2017青岛网络赛】1010 hdu 6215 Brute Force Sorting 双向链表+队列
- HDU6215 Brute Force Sorting 【模拟】
- JDK源码学习(jdk1.8)
- Dubbo 管理页面的部署
- iOS-从任何一个view中获得当前控制器
- CSR是什么样的公司?CSR蓝牙芯片有何过人之处?
- 域名--->IP 和 IP---->MAC
- hdu 6215 Brute Force Sorting
- spring+springmvc+hibernate利用poi实现导出Excel功能
- 关于服务机器人,这都是你不知道的事
- 深度学习里神奇的1*1卷积核
- php综合复习题大全(上)——基础篇
- cat命令
- C# “不能使用非固定表达式中包含的固定大小缓冲区。请尝试使用 fixed 语句”
- 生成随机数组-php
- caffe-0.16 nvidia docker编译