【BZOJ1861】【Zjoi2006】Book 书架 Splay

【深度学习面试八股文】-- 1-5 1.样本不平衡的处理方法 ①欠采样 - 随机删除观测数量足够多的类,使得两个类别间的相对比例是显著的。虽然这种方法使用起来非常简单,但很有可能被我们删除了的数据包含着预测类的重要信息。 ②过采样 - 对于不平衡的类别,我们使用拷贝现有样本的方法随机增加观测数量。理想情况下这种方法给了我们足够的样本数,但过采样可能导致过拟合训练数据。 ③合成采样( SMOTE )-该技术要求我们用合成方法得到不平衡类别的观测,该技术与现有的使用最近邻分类方法很类似。问题在于当一个类别的观测数量极度稀少时该怎... 阅读详情

链接:

#include <stdio.h>
int main()
{
    puts("转载请注明出处[vmurder]谢谢");
    puts("网址:blog.youkuaiyun.com/vmurder/article/details/45166317");
}

题解:

随便来一种数据结构就好啦。
这里写的是平衡树(一眼直接想到,而且发现很水)

注意。。

呃或许也不用太注意。
就是那个Insert操作要你干什么千万要看明白……

代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 101000
#define ls son[x][0]
#define rs son[x][1]
#define is(x) (x==son[fa[x]][1])
#define inf 0x3f3f3f3f
using namespace std;
int src[N],n,m;
struct SPT
{
    int son[N][2],fa[N],root;
    int size[N],num[N];

    void pushup(int x)
    {
        size[x]=size[ls]+size[rs]+num[x];
    }
    void link(int x,int y,int d){son[y][d]=x,fa[x]=y;}
    void rotate(int x)
    {
        int y=fa[x],z=fa[y],i=is(x),t=son[x][!i];
        link(t,y,i),link(x,z,is(y)),link(y,x,!i);
        fa[0]=0,son[0][0]=son[0][1]=0;
        pushup(y);
    }
    void splay(int x,int d=0)
    {
        int y,z;
        while(fa[x]!=d)
        {
            y=fa[x],z=fa[y];
            if(z==d)rotate(x);
            else rotate(is(x)==is(y)?y:x),rotate(x);
        }
        pushup(x);
        if(!d)root=x;
    }
    int pred(int x)
    {
        splay(x);
        for(x=ls;rs;x=rs);
        return x;
    }
    int succ(int x)
    {
        splay(x);
        for(x=rs;ls;x=ls);
        return x;
    }
    int build(int L,int R)
    {
        int mid=L+R>>1,l=0,r=0;
        if(L<mid)l=build(L,mid-1);
        if(mid<R)r=build(mid+1,R);
        mid=src[mid],num[mid]=1;
        link(l,mid,0),link(r,mid,1);
        pushup(mid);
        return mid;
    }
    void init()
    {
        root=build(1,n);
        link(n+1,src[1],0),link(n+2,src[n],1);
    }
    void insert(int d,int x)
    {
        int suc=succ(d);
        splay(suc,d);
        link(x,suc,0);
        splay(x);
    }
    void remove(int x)
    {
        int pre=pred(x),suc=succ(x);
        splay(pre),splay(x,pre);
        link(rs,pre,1);
        splay(rs);
        ls=rs=0;
    }
    void Top(int x)
    {
        remove(x);
        insert(n+1,x);
    }
    void Bottom(int x)
    {
        remove(x);
        insert(pred(n+2),x);
    }
    void Insert(int x)
    {
        int t;scanf("%d",&t);
        if(t==0)return ;
        int pre=pred(x),suc=succ(x);
        remove(x);
        if(t==-1)insert(pred(pre),x);
        else insert(suc,x);
    }
    int Ask(int x)
    {
        splay(x);
        return size[ls];
    }
    int Query(int k)
    {
        int x=root;
        while(size[ls]+1!=k)
        {
            if(size[ls]>=k)x=ls;
            else k-=(size[ls]+1),x=rs;
        }
        return x;
    }
}spt;
char s[10];
int a,b;
int main()
{
    freopen("test.in","r",stdin);

    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)scanf("%d",&src[i]);
    spt.init();
    while(m--)
    {
        scanf("%s%d",s,&a);
        if(s[0]=='T')spt.Top(a);
        else if(s[0]=='B')spt.Bottom(a);
        else if(s[0]=='I')spt.Insert(a);
        else if(s[0]=='A')printf("%d\n",spt.Ask(a));
        else printf("%d\n",spt.Query(a));
    }
    return 0;
}
Camera2Demo 在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作 立即下载

相关推荐

虚拟机器人平台CoppeliaSim(Vrep)的逆运动学教学

相信看这篇博客的人都知道CoppeliaSim是做什么的,因此这里不多赘述。CoppeliaSim从最早的Vrep到现在已经更新了N个版本,从过去Vrep3.x开始使用的我这里小小地吐槽一下这个软件。CoppeliaSim每一个版本都有更新,问题是这些更新有时候不能向前兼容,而且时不时更新地让人不知所措(对于有紧急任务的时候真的很火大啊)。 以本文所展示地逆运动学来说,CoppeliaSim在4.0.0之后又大变,推翻了过往所有的拖动模块链接之类的构建方式,转而采用直接通过代码来实现逆运动学。 简单版逆运动

qq_39243015的博客 6698

P2585 [ZJOI2006] 三色二叉树(树形dp

dp[i][x] 第i个节点颜色为x时 绿色的最多数目。学会递归建树的操作,其实和tire树是很像的捏。

m0_75125820的博客 364

Vivado 18.3安装全攻略:从下载到配置的完整指南

本文详细介绍了Vivado 18.3的安装全流程,从下载准备到配置优化,特别适合FPGA开发者。文章包含硬件要求、版本选择、组件配置等实用技巧,帮助用户避免常见安装问题,确保稳定运行。重点解析了License配置和系统优化设置,提升开发效率。

weixin_28331555的博客 565

洛谷P2596 [ZJOI2006]书架

指针写的代码量真心大 Code: #include&lt;cstdio&gt; #include&lt;algorithm&gt; #include&lt;cstring&gt; using namespace std; const int maxn=900000; int key[maxn]; int D[maxn]; char ...

EM LGH 231

ZYNQ专题-7020驱动KSZ9031 PHY芯片

之所以有这篇文章,得益于Alinx的开发板。

Anitawen的博客 4961

STM32CubeMX平台F4系列固件下载核心要点

详解STM32CubeMX平台下F4系列单片机的固件包下载方法与常见问题,重点讲解stm32cubemx固件包下载流程及配置技巧,帮助开发者快速完成开发环境搭建。

weixin_42575505的博客 891

洛谷P2596 [ZJOI2006]书架(BZOJ1861)

平衡树 洛谷题目传送门 BZOJ题目传送门 初始想法: 对于每个节点,新增一个变量表示当前节点的优先级,用Splay维护。 置顶/置底时先把节点取出,把优先级修改到最大/最小,再插入。 放回时把两个节点取出,交换优先级后插入。 询问的话直接做就好了。 然而打了一个下午没打出来。。。实在太烦了。。。 这时候ZZK飘了过来,看了一眼:“这不是平衡树维护序列裸题吗” Orz 正解:...

forezxl的博客 1322

Sobel原理及计算过程详解

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。首先,我们需要构建一个Sobel算子,通常是一个 3x3 的矩阵。Sobel算子可以分别计算水平和垂直方向的梯度值,然后将两者合并得到总梯度值。索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度近似值。所以,我们假设选择图像矩阵中的点A(1, 1),即第二行第二列的元素,对应的。接下来,我们将使用Sobel算子计算这个点的梯度值。

2301_76461741的博客 1万+

bzoj1861[Zjoi2006]Book 书架

bzoj1861[Zjoi2006]Book 书架 题意: 维护一个序列,支持移动元素,查询元素是第几个,查询第k个元素编号。 题解: 可以用treap和splay,我写的是splay。移动元素就是先删一个节点在将这个节点插入到对应位置,注意各种分操作(如splay、find)的次序性。反思:本弱又WA又T,最后自己造了一个极限数据发现死循环了,对着大数据调了半天才发现是分操作次...

anheku1562的博客 160

Ubuntu中 vsftpd 的安装与配置 (详细介绍)

简介 vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。 vsftpd是 UNIX 操作系统中的一个开源的、免费的 FTP 服务软件。具有以下特点: 安全性高 轻小易用 支持系统用户匿名用户和虚拟用户的权限验证和相关操作 安装步骤如下: 1.将此命令复制到终端 sudo apt-get install vsftpd 2.安装完成后启动VSFTP

qq_43299421的博客 1万+

从零开始讲DDR(5)——读懂Datasheet

对于开发人员来说,需要根据实际场景和使用的需要,使用不同厂家,不同型号的DDR,虽然原理上大同小异,但是还是有一些细节上的需要注意的地方,接触一个新的DDR芯片,首先就是需要找到对应的datasheet,而能都读懂datasheet,也是一个硬件工程师的必备技能。

apple_53311083的博客 5217

[ZJOI2006书架]Splay

题目描述小T有一个很大的书柜。这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列。她用1到n的正整数给每本书都编了号。小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本。由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置。不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那本书放在拿出来时的位置附近,比如说她拿的时候这本书上面有X本书,那么放回去时这本书上

Plume 羽 <。) 627

Python 爬虫实战:爬取今日头条文章与阅读量数据

本文详细介绍了基于Python爬取今日头条文章与阅读量数据的完整方案。通过分析今日头条API接口,采用Requests+正则表达式技术实现数据抓取,重点解决加密参数构造、请求头模拟、反爬规避等核心问题。文章包含文章列表获取、详情数据提取、互动数据采集等完整流程,并提供数据存储与基础分析方法。同时强调合规使用爬虫技术,控制爬取频率,避免干扰平台运营。该方案可为内容传播分析、用户兴趣研究提供数据支持,但需注意接口参数更新和反爬机制变化,适时调整代码实现。

2503_91057718的博客 2519

[bzoj1861][Zjoi2006]Book书架 splay

什么是平衡树? 连验证码都算错了

Unlimited Code Works 426

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【bzoj1861】[Zjoi2006]Book 书架 splay

splay的另一种应用,维护序列,不再按照权值建平衡树,而是按照下标建平衡树,然后维护一些东西。 题目大意: 1、把编号为S的书放到最上面 2、把编号为S的书放到最下面 3、把编号为S的书前移、后移或者不动 4、询问编号为S的书上面有多少本书 5、询问第S本书的编号 很朴素的平衡树,不需要维护任何东西,直接模拟就好。 记录一下编号为S的书对应的splay上的节点。 1、2、3 删

Oxer的专栏 1212

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

BZOJ1861: [Zjoi2006]Book 书架 Splay

BZOJ1861: [Zjoi2006]Book 书架 Time Limit: 4 Sec  Memory Limit: 64 MB Submit: 1302  Solved: 747 [Submit][Status][Discuss] 题解:Splay 对于两种询问操作不多说。 对于剩下的几种修改,本质上是一模一样的,首先要判断如果是Insert而且T==0那么就cont

Oakley 582

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

[BZOJ1861][Zjoi2006]Book 书架 && splay

加个build 几下每个元素在树中的位置就行了 #include #include #include #include #include #define SF scanf #define PF printf using namespace std; typedef long long LL; const int MAXN = 80000; int n, m, A[MA

shiyukun1998的专栏 576

bzoj1861: [Zjoi2006]Book 书架 平衡树 Splay

bzoj1861: [Zjoi2006]Book 书架 Description 小T有一个很大的书柜。这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列。她用1到n的正整数给每本书都编了号。 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本。由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置。不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那本书

maxtir的博客 273

bzoj 1861: [Zjoi2006]Book 书架 (splay)

链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1861 题面; 1861: [Zjoi2006]Book 书架 Time Limit:4 SecMemory Limit:64 MBSubmit:2499Solved:1464[Submit][Status][Discuss] Description 小T有一...

weixin_30583563的博客 89

BZOJ 1861 ZJOI2006 Book 书架 Splay

题目大意:……自己看懒得打了 很裸的Splay 首先开一个指针数组记录每个值代表的节点 然后就能找到某本书在序列中的什么位置了 总感觉这题可以不用Splay的说……一定是我的错觉 #include #include #include #include #define M 80800 using namespace std; struct abcd{ abcd *fa,*ls,*rs

世界 1725

splay学习小结1.1【BZOJ 1861】[Zjoi2006]Book 书架

Description有一个居住在多山岛屿的登山家,已经攀上了一座山峰,并且要攀爬另外一座更高的山峰。更精确地说,岛上的每一点都有一个大于零的海拔(海面的海拔为零),并且如果登山家位于海拔Ei的山峰上,那么他的目标是到达其他海拔为Ej(Ej>Ei)的山峰。因为登山家在一个山峰上,所以无法马上向上爬——为了到达一个海拔更高的地点,登山家需要先下山才能上山。下山的路不及上山精彩,因此,登山家想将从当前地

Marcus 436

BZOJ 1861 ZJOI 2006 Book 书架 Splay

题目大意:有一个书架,现在需要经常改变这些书的位置,每次询问一本书在哪或者第几本书是什么。 思路:赤裸裸的Splay,只是有些小事需要注意。因为他有的时候问你一个书在哪,这个事情不能只在Splay中就能解决,我们需要辅助他解决。注意到操作中没有加入书的操作,也就是书的总数并不会变化,而且Splay的过程中只是指针的变动,所以不会有点发生变化,所以在一开始建树的时候维护一个数组,表示这本书

(╯°口°)╯(┴—┴ 820

【BZOJ 1861】[Zjoi2006]Book 书架 splay

建立一个splay维护书架的信息,开一个数组标记每一个编号对应的节点的指针就好了,没什么好说的 #include #include #include using namespace std; int n,m; struct Tree{ int x,size; Tree* ch[2],*f; Tree(int a=0,Tree* e=NULL){ x=a,size=1,ch[0]=NUL

pbihao的博客 244

bzoj1861 [Zjoi2006]Book 书架——splay

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1861 发现自己想splay的时候总是纠结那个点权是什么,因为splay原本是二分查找树... 但其实splay已经不是维护点权大小顺序的,它的最大作用就在于无论怎样旋转都保持着中序遍历这个相对位置不变; 所以很对应这道题,用splay进行各种操作的同时书的摆放顺序是不变的; 假设出一...

weixin_30881367的博客 141

bzoj1861 [Zjoi2006]Book 书架 splay

小T有一个很大的书柜。这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列。她用1到n的正整数给每本书都编了号。 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本。由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置。不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那本书放在拿出来时的位置附近,比如说她拿的时候这本书上面有X本书,那么放回去时这本书上面就...

weixin_30457065的博客 114

BZOJ 1861: [Zjoi2006]Book 书架 splay

1861: [Zjoi2006]Book 书架 Description 小T有一个很大的书柜。这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列。她用1到n的正整数给每本书都编了号。 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本。由于这些书太有吸引力了,所以她看完后常常会忘记原来是放在书柜的什么位置。不过小T的记忆力是非常好的,所以每次放书的时候至少能够将那...

weixin_30515513的博客 107
上一篇: 【BZOJ4007】【JLOI2015】战争调度 war 搜索
下一篇: 【BZOJ4003】【JLOI2015】城池攻占 可并堆
空灰冰魂
博客等级 码龄12年 83粉丝 392原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值