帝都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:需求分析 在测试案例编写前,需完成需求分析工作,明确程序所有的输入 ...
随机推荐
- pyget-资源与标签(Sprite、Label、Font)
Sprite精灵,是游戏中对具有动画作用功能的图片的爱称. 精灵,图标和字体等资源是不能够处理事件的,因为它们并不是继承自EventDispatcher.但是可以包含一个能够EventDispatch ...
- 07 - Django应用第四步
知识点 1) 表单的编写 CSRF问题 forloop.counter 2) 视图函数的知识 GET和POST HttpResponseRedirect的使用 reverse的使用 3) 通用视图 C ...
- linux命令学习笔记(15):tail 命令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件, tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新 ...
- javascript设计模式和构造函数返回值
工厂模式 function createPerson(name,age,job){ var o = new Object(); o.name = name; o.age = age; o.job = ...
- C#的闭包
简单的理解:闭包变量是把局部变量的作用域扩展到回调函数,发生在匿名方法注册到委托上,而匿名方法中使用外部的局部变量 说什么都不如图示那么容易明白啊 先看C#的源码 class Program { st ...
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
一.标准化(Z-Score),或者去除均值和方差缩放 公式为:(X-mean)/std 计算时对每个属性/每列分别进行. 将数据按期属性(按列进行)减去其均值,并处以其方差.得到的结果是,对于每个属 ...
- (Python编程)Pickle对象
Programming Python, 3rd Edition 翻译 最新版本见:http://wiki.woodpecker.org.cn/moin/PP3eD 19.4. Pickled Obje ...
- 0011_练习题d1
__author__ = 'qq593' #!/usr/bin/env python #-*- coding:utf-8 -*- #使用while循环输入1 2 3 4 5 6 8 9 10 a=1 ...
- URL中#符号的作用
转自http://blog.sina.com.cn/s/blog_6f9eb2dd0100sk97.html 一.#的涵义 #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如, ...
- Luogu 4317 花神的数论题
披着数论题外衣的数位dp. 相当于数一数$[1,n]$范围内$1$的个数是$1,2,3,4,...log(n)$的数各有多少个,直接在二进制下数位dp. 然而我比较sb地把(1e7 + 7)当成了质数 ...