帝都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:需求分析 在测试案例编写前,需完成需求分析工作,明确程序所有的输入 ...
随机推荐
- Log4j_学习_00_资源帖
一.log4j2 1. log4j使用教程详解(怎么使用log4j2) 2.Log4j2的基本使用 二.log4j 1.[转]最详细的Log4J使用教程 2.最详细的Log4j使用教程 3.log4j ...
- Java企业微信开发_03_自定义菜单
一.本节要点 1.菜单相关实体类的封装 参考官方文档中的请求包的内容,对菜单相关实体类进行封装. 这里需要格外注意的是,企业微信中请求包的数据是Json字符串格式的,而不是xml格式.关于json序列 ...
- 了解fiddler:实现简单的抓包测试
fiddler是一款轻型的抓包软件 本文介绍几个常用的功能:(相信图片更直观点,上图片,右键在新标签页中打开,查看高清大图) 通过composer,我们可以修改http头部信息,修改post(),ge ...
- [转]HTTP头的Expires与Cache-control
1.概念 Cache-control用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了Pragma: no-cache) 数据包中的格式: Cache-Control: cache- ...
- BZOJ2809:[APIO2012]dispatching
浅谈左偏树:https://www.cnblogs.com/AKMer/p/10246635.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php? ...
- 用遗传算法解决TSP问题
浅谈遗传算法:https://www.cnblogs.com/AKMer/p/9479890.html Description \(小m\)在踏上寻找\(小o\)的路程之后不小心碰到了大魔王\(fat ...
- Poj 1316 Self Numbers(水题)
一.Description In 1949 the Indian mathematician D.R. Kaprekar discovered a class of numbers called se ...
- bzoj4545
lct+SAM bzoj4516+bzoj2555 这道题唯一的用处就是教会了我真正的广义SAM dfs时保留当前节点在后缀自动机中的位置,每个点接着父亲建 lct动态维护right集合大小,用lct ...
- js检测对象属性
In:(检测自身及原型属性) var o={x:1}; "x" in o; //true,自有属性存在 "y" in o; //false "toSt ...
- Python-实现socket简单地连续发数据
只需用while条件判断来实现 服务器端 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import socket serv ...