帝都Day4(2)——数据结构
黄姓dalao is coming!
一、栈:
基本常识略。
例题:铁轨

模拟,O(n),
Usaco2006 Nov
题目略
做法:单调栈(续命栈?)

n//数量
a[]//奶牛
for(int i=1 to n)
{
for(;a[i]>a[stack[top]]&⊤top--);//把所有比他小的元素删掉
c[i]=i-stack[top]-1;//这个数和栈顶的数距离
ans+=c[i];//加答案
stack[++top]=i;
}
JSOI2008 最大数
m 操作数
n 数列长度
a[]
while(m--)
{
if(t==1)//加入操作
{
a[++n]=x;
for(;a[n]>=stack[top]&⊤top--);
stack[++top]=n;
}
else//询问操作
{
s=n-x;
printf("%d\n",a[stack[upper_bound(stack+1,stack+top+1,s)=stack]]);
}
}
二、队列
常识略
插入删除O(1) 空间复杂度O(n)
滑动的窗户
修剪草坪
三、链表
插入、删除O1 查询On
乱发节那道题(NOIP不怎么考链表啊)
n
a[]
bool cmp(int x,int y){return a[x]==a[y]?x>y:a[x]<a[y];}
for(i=1;i<=n;i++)
{
left[i]=i-1;
right[i]=i+1;
b[i]=i;
sort(b+1,b+n+1,cmp);
for(i=1;i<=n;i++)
{
c[i]=left[b[i]];
right[left[b[i]]]=left[b[i]];
left[right[b[i]]]=right[b[i]];
}
四、并炸鸡(并查集)
略,题目:
洛谷P1621 集合
枚举>=p的所有在[A,B]中的倍数,合并。复杂度O(nlog2n*n的反阿克曼)
洛谷P2170 玄学霸——南小鸟(选学霸)
洛谷P1197 JSOI2008 星球大战
先算出来炸完之后剩余的,然后倒过来做。
洛谷P2024 食物链 加权并查集
0 同一物种 1 吃 2 被吃
五、堆
堆为一颗二叉树,满足以下两个性质

五.1、二叉堆
二叉堆是一颗完全二叉树 插入 删除 求最小值
用数组表示 节点n儿子 2n 2n+1
插入节点:放在末尾 向上更新
删除节点:把最后一节点放到要删除的地儿向下更新
还有一道是usaco的
还有一道bzoj2151 种树:
帝都Day4(2)——数据结构的更多相关文章
- 帝都Day4(3)——还是数据结构
可并堆 左偏树中 dist[x]=dist[rs[x]]+1 合并的时候,把权志较大的根作为根节点,把这棵树右子树和另一棵树合并. 说明白点:(上图描述有点问题) 设x表示根权值较大的左偏树,y表示根 ...
- 帝都Day4(1)——还是dp
其实是day4 一.洛谷P1018 乘积最大 f[i][j]表示前i个数 切成j块 用f[i][j]而不用f[i][j][k](i到j切成k块)呢? Luogu1043 前缀和(好算一段里的数的和)+ ...
- 帝都Day5——依旧是数据结构
/*Day1.Day2我尽量整理吧*/ 树状数组 树状数组滋瓷单点修改和前缀查询 加特技可以使得树状数组支持更多操作. c[2n+1]=a[2n+1](奇数就是它本身) c[2n]≠a[2n](偶数不 ...
- ZROI 暑期高端峰会 A班 Day4 树上数据结构
FBI Warning:本文含有大量人类的本质之一. 你经历过绝望吗? [ZJOI2007]捉迷藏 询问树上最远黑点对. 动态边分治可以比点分治少一个 \(\log\). bzoj3730 咕了. [ ...
- ZROI 暑期高端峰会2019 总结
FBI Warning:以下博客含有 FBI Warning 的都是包含大量人类本质之一的. 前几天听课: Day1 组合计数 Day1 序列数据结构 Day2 线性代数 Day3 图论 Day3 字 ...
- 学习数据结构Day4
链表 之前看过了动态数组,栈和队列,虽然我们把第一个叫做动态数组,但是,他们的底层实质上还是静态数组.靠 resize来实现动态数组.而链表是真正的数据结构 链表需要一个节点. 数据存储在链表中 相当 ...
- day4:数据结构list
1,一直输入用户名,输入Q退出,注意用户的输入别忘了加strip,和upper不区分大小写,list最后一位添加append li = [] while 1: name = input("& ...
- 数据结构之链表C语言实现以及使用场景分析
牢骚:本篇博客两个星期前已经存为草稿,鉴于发生一些糟糕的事情,今天才基本完成.本人6月份应届毕业生一枚,毕业后当天来到帝都,之后也非常顺利,面试了俩家公司都成功了.一家做C++方面电商ERP,一家做w ...
- Spark菜鸟学习营Day4 单元测试程序的编写
Spark菜鸟学习营Day4 单元测试程序的编写 Spark相比于传统代码是比较难以调试的,单元测试的编写是非常必要的. Step0:需求分析 在测试案例编写前,需完成需求分析工作,明确程序所有的输入 ...
随机推荐
- windows中android SDK manager安装更新sdk很慢,或者出现Done loading packages后不动甚至没有任何可用包
出现问题: 1.windows中android SDK manager安装更新sdk很慢,或者出现Done loading packages后不动甚至没有任何可用包 2.Failed to fetch ...
- 【leetcode刷题笔记】Best Time to Buy and Sell Stock III
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- luogu2622开灯问题2
#include<iostream> #include<cstdlib> #include<algorithm> #include<cstdio> #i ...
- BZOJ4317: Atm的树+2051+2117
BZOJ4317: Atm的树+2051+2117 https://lydsy.com/JudgeOnline/problem.php?id=4317 分析: 二分答案之后就变成震波那道题了. 冷静一 ...
- POJ1041 John's trip
John's trip Language:Default John's trip Time Limit: 1000MS Memory Limit: 65536K Total Submissions: ...
- ACM学习历程—SNNUOJ1132 余数之和(数论)
Description F(n) = (n % 1) + (n % 2) + (n % 3) + ...... (n % n).其中%表示Mod,也就是余数.例如F(6) = 6 % 1 + 6 % ...
- keepalived+nginx实现双机热备
keepalived是一个类似于layer3, 4, 5 交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机, ...
- 记录对定时任务调度器的小小改进 - API调度计划
之前记录过一篇 [开源一个定时任务调度器 webscheduler],这是一个看似简单的小工具,昨天部署到服务器上开始试用下,听听反馈. 项目经理看过后,立马反馈说这个使用 Cron表达式 的计划太难 ...
- Mac 远程连接Linux服务器及上传、下载命令
1.使用ssh命令连接远程服务器主机 1.不设置端口,默认就是22 ssh root@192.168.18.129 1.1.设置端口例: ssh -p 22 root@192.168.18.1292. ...
- k8s基础(3)etcd集群
下载安装 https://github.com/coreos/etcd/releases 在这网页,可以看到有多个版本共选择. 下载3.25 解压后, cd etcd-v3.2.5-linux-amd ...