hdu 4557 非诚勿扰(平衡树方法)

基于AI的智能开发环境—Trae在Web开发中的应用实战与性能评估【Trae项目实战】 Trae 是一款与 AI 深度集成的开发工具,提供智能问答、代码自动补全和基于 Agent 的 AI 自动编程能力,极大提升开发效率。它具备完备的 IDE 功能,如代码编写、项目管理和源代码管理等,同时还具备强大的 AI 助手,能够提供智能问答、实时代码建议、代码片段生成等服务。开发者可以通过自然语言与 AI 协作,从 0 到 1 开发项目,AI 会根据需求自动生成代码或创建文件。 阅读详情


hdu 4557 非诚勿扰


本题数据小,可暴力水过,这里用SBT练下手

Find相当于求后继,key保存响应的用来比较的数据


#include<stdio.h>
#include<string.h>
#define MAXN 1005
struct person
{
    char name[17];
    int key,kth;
    bool operator < (const person &a) const
    {
        if(key==a.key) return kth<a.kth;
        return key<a.key;
    }
    bool operator > (const person &a) const
    {
        if(key==a.key) return kth>a.kth;
        return key>a.key;
    }
    bool operator == (const person &a) const
    {
        return key==a.key&&kth==a.kth;
    }
};
struct node
{
    int l,r;
    person key;
    int size;
}t[MAXN];
int top,root;
void lRotate(int &p)
{
    int rch=t[p].r;
    t[p].r=t[rch].l;
    t[rch].l=p;
    
    t[rch].size=t[p].size;
    t[p].size=t[t[p].l].size+t[t[p].r].size+1;
    
    p=rch;
}
void rRotate(int &p)
{
    int lch=t[p].l;
    t[p].l=t[lch].r;
    t[lch].r=p;
    
    t[lch].size=t[p].size;
    t[p].size=t[t[p].l].size+t[t[p].r].size+1;
    
    p=lch;
}
void maintain(int &p,bool flag)
{
    if(!flag)
    {
        if(t[t[t[p].l].l].size>t[t[p].r].size)
            rRotate(p);
        else if(t[t[t[p].l].r].size>t[t[p].r].size)
        {
            lRotate(t[p].l);
            rRotate(p);
        }
        else return ;
    }
    else
    {
        if(t[t[t[p].r].r].size>t[t[p].l].size)
            lRotate(p);
        else if(t[t[t[p].r].l].size>t[t[p].l].size)
        {
            rRotate(t[p].r);
            lRotate(p);
        }
        else return ;
    }
    maintain(t[p].l, false);
    maintain(t[p].r, true);
    maintain(p, false);
    maintain(p, true);
}
void insert(int &p,person &key)
{
    if(!p)
    {
        p=++top;
        t[p].l=t[p].r=0;
        t[p].size=1;
        t[p].key=key;
        return ;
    }
    else
    {
        t[p].size++;
        if(key<t[p].key) insert(t[p].l,key);
        else insert(t[p].r,key);
        maintain(p, !(key<t[p].key));
    }
}
person remove(int &p,person &key)
{
    t[p].size--;
    if(key==t[p].key
       ||(key<t[p].key&&!t[p].l)
       ||(key>t[p].key&&!t[p].r))
    {
        person tkey=t[p].key;
        if(t[p].l&&t[p].r)
        {
            person ttkey=key;
            ttkey.key++;
            ttkey.kth++;
            t[p].key=remove(t[p].l,ttkey);
        }
        else
            p=t[p].l+t[p].r;
        return tkey;
    }
    else if(key<t[p].key) return remove(t[p].l,key);
    else return remove(t[p].r,key);
}
int succ(int &p,int pp,int key)
{
    if(p==0) return pp;
    else if(t[p].key.key>=key) return succ(t[p].l,p,key);
    else return succ(t[p].r,pp,key);
}
int main()
{
    int cas,n,x;
    char op[7];
    person key;
    scanf("%d",&cas);
    for(int kcas=1;kcas<=cas;kcas++)
    {
        printf("Case #%d:\n",kcas);
        top=root=0;
        int cnt=0;
        scanf("%d",&n);
        while(n--)
        {
            scanf("%s",op);
            if(op[0]=='A')
            {
                scanf("%s%d",key.name,&key.key);
                key.kth=++cnt;
                insert(root, key);
                printf("%d\n",t[root].size);
            }
            else
            {
                scanf("%d",&x);
                int id=succ(root,0,x);
                if(!id) printf("WAIT...\n");
                else
                {
                    printf("%s\n",t[id].key.name);
                    remove(root,t[id].key);
                }
            }
        }
    }
    return 0;
}


Authentication Assertion Tickets,SAP 系统到系统单点登录里的短命凭证 SAP 系统间的身份传递机制存在 Authentication Assertion Ticket 和 SAP Logon Ticket 两种易混淆的凭证。前者用于系统间短时身份委托(有效期2分钟,通过HTTP头传输),后者用于浏览器SSO(可配置有效期,通过Cookie传输)。Assertion Ticket依赖签发系统的数字签名和严格的时间同步,适用于ABAP/Java系统间的后台作业调用。现代SAP架构已转向OAuth 2.0等标准协议,但老系统中仍需注意两种票据的关键差异:传输方式、有效期、接收方限制 阅读详情

相关推荐

保姆级教程:用Qlib和LightGBM从零搭建你的第一个AI量化选股策略(附完整代码)

本文提供了一份详细的教程,教你如何使用Qlib和LightGBM从零搭建AI量化选股策略。教程涵盖了环境配置、数据获取、特征工程、模型训练和策略回测等关键步骤,并附有完整代码和常见问题解决方案,适合量化投资初学者快速上手。

weixin_29191081的博客 443

hdu4585 平衡树解法

平衡树板子 找出前驱后继节点比较一下 #include<cstdio> #include<algorithm> #include<iostream> #include<cmath> #include<cstdlib> #include<cstring> #include<string> #include&lt...

甦萌的博客 426

FreeRtos——10、全局看门狗设计

RTOS 里的看门狗不只是为了证明 CPU 还在动,而是为了证明每个业务逻辑都在按预期的节奏“呼吸”。

qq_40170041的博客 900

HDU 1540 Tunnel Warfare(平衡树) 解题报告

一道看似线段树的题,用平衡树也破了。。。。 /* * 题意:有N个村庄,相邻点相连,可以毁坏某个点或修复毁坏点,求某点的最大联通点数。 * 方法:平衡树。 * 分析:最最朴素的想法就是把破坏的村庄做一个标记,然后遇到Q的时候,就循环的找一 * 下答案,当然这么做肯定是会超时的设想一下,如果能够很快的找到距离某个点最近的 * 两个被破坏掉的点,那么答案就很容易得到了于是用到了

CSUST_ACM的专栏 2135

保姆级教程:用Python从UCI下载波士顿房价数据集,手把手跑通线性回归、岭回归和Lasso

本文提供了一份保姆级教程,详细讲解如何用Python从UCI下载波士顿房价数据集,并手把手实现线性回归、岭回归和Lasso回归模型。内容涵盖数据获取、清洗、特征分析到模型构建与评估的全流程,特别适合机器学习初学者掌握波士顿房价预测这一经典案例。

weixin_34254848的博客 476

手把手教你用海康威视相机+DLP4500搭建双目结构光系统(附避坑指南)

本文详细介绍了如何使用海康威视相机和DLP4500搭建双目结构光三维测量系统,涵盖硬件选型、系统搭建、双目标定及三维重建等关键步骤。特别针对预算有限的开发者和实验室团队,提供实用的避坑指南和优化技巧,帮助实现0.02mm的高精度测量。

weixin_42526087的博客 461

2013金山西山居创意游戏程序挑战赛——复赛(1) 非诚勿扰

非诚勿扰 Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 13Accepted Submission(s): 10 Problem Description   作为2013年699万应届毕业生中的一员,由于宏观经济的不景气,小...

xiaoheliushuiya 265

模拟ic入门——设计一个带隙基准Bandgap(三)高阶温度补偿与启动电路设计

本节我们来介绍高阶温度补偿,以及一些启动电路的设计,附上一些经典的论文供大家学习

qq_64956710的博客 1万+

HDU 4942 [线段树][平衡树]

DescriptionDescription给定一棵平衡树,每个点有一个权值wuw_u。 定义一个valueuvalue_u为uu子树的wvw_v之和。 要求满足以下操作: 0 x0~x:对xx左旋。 1 x1~x:对xx右旋。 2 x2~x:查询xx子树中所有valuevalue的乘积。 首先左右旋是不会改变这棵树的中序遍历的(改变就不是平衡树了QAQ)。 然后是一次操作只会改变两个节点的值

Vectorxj的博客 690

智能制造 | 如何快速自动生成站位表及自动与BOM校验?

一、站位表(SMT行业中)是SMT上料防错的基础信息,用于对需上料物料与产线、贴片机位置、飞达规格型号、用量,建立基础资料。 SMT站位表是否正确? 首先需要人工确认站位表与SMT程序的是否符合,上料员依照站位表安装好后,确认人员需有第三方确认者 (品管确定)核对。 站位表内容包括什么? 站位表内容为:SMT站位号相对应的物料编码,元件位号,飞达大小/间距,数量等等,根据不同公司的要求而定义。 就目前来说,基本每一款贴片机都可以输出站位清单 但对于企业来说,直接输出的站位清单一般不直接使用,需要进行手动处理

vayoinfo111的博客 4941

C# 8. 在新窗口中使用chart控件波形移动显示

1. 添加新窗口 在Form1中新建button控件,名称为buttonStartWaveDisp,这样单击就能调出Form2窗口 在Form1中增加如下: private void buttonStartWaveDisp_Click(object sender, EventArgs e) { if((form2 == null) || (form2.IsDisposed == true)) { form2 = new Form2();

TrueLink的博客 1432

[线段树模拟平衡树] HDU4942. Game on S♂play

刚开始想用Splay、Treap什么的维护dfs序…打起来贼烦 打完后vectorxj大佬说用中序遍历就好了…因为旋转后一棵树的中序遍历是不会变的,那么每次旋转就是改变了下子树在中序遍历中的区间,然后用线段树模拟一下就好了。#include <cstdio> #include <iostream> #include <algorithm>using namespace std;const int

CE玩家 536

<PLC><socket><汇川>汇川PLC使用socket与其他控制器(如上位机)通讯模板程序示例

以上介绍了汇川PLC通用socket通讯的示例,事实上,汇川的官方手册也有使用示例,可以直接仿照使用,也可以加以修改。

用沸腾的热血,支付我们的人生吧! 3247

hdu 4557 非诚勿扰(非暴力,平衡树treap)

非诚勿扰 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 98    Accepted Submission(s): 60 Problem Description   作为2013年699万应届毕业生中的一员,由于宏观经济

q775968375的专栏 1697

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

hdu 4557 非诚勿扰

非诚勿扰 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 30    Accepted Submission(s): 18 Problem Description   作为2013年699万应届毕业生中的一员,由于

q775968375的专栏 2512

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

hdu 4557 非诚勿扰 (Java实现)

非诚勿扰 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1302    Accepted Submission(s): 470 Problem Description   作为2013年699万应届毕业生中的一员,由

曾经是个DBA 857

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

人才能力hdu 4557 非诚勿扰(非暴力,平衡树treap)

本篇文章是一篇关于人才能力的帖子 非诚勿扰 Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 98Accepted Submission(s): 60 Problem Des...

weixin_30830327的博客 86

HDU 4557 非诚勿扰(Treap找后继)

非诚勿扰 Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 2202Accepted Submission(s): 797 Problem Description   作为2013年699万应届毕业生...

weixin_30869099的博客 78

HDU 6338 2018HDU多校赛 第四场 Depth-First Search(组合数学+平衡树/pbds)

大致题意:给你一个dfs序列B和一棵树,现在让你在这个树上随机选择一个点,然后按照随机的dfs顺序走。问你最后能走出几个dfs序列,是得该dfs序列字典序小于给定的dfs序B。首先,我们考虑一棵树有根树他的dfs序有多少种。我们可以这么考虑,对于任意点x,我都可以任意的向它的所有儿子走去,那么就会对应 种方法。我们注意到,除了根之外,所有的点的儿子的数目等于其度数减一,那么,我们便可以得出一棵有根树的dfs序列为:。进一步,我们可以令 ,那么对于不同的根,其对应树的方案数就是 res*deg[root],

alpc_qleonardo 892

练习题目-平衡二叉树

NotDeep一直不擅长数据结构,于是找来slowlight帮助他。slowlight于是就从二叉平衡树讲起(纳尼?!): 平衡二叉树(Balanced Binary Tree)具有以下性质的一种树:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树 讲完了slowlight就给NotDeep出了一道练习题:一棵高度为h的二叉平衡

AndyLau96的博客 5587

hdu4864 贪心+平衡二叉搜索树(map)

题意 n个机器,m个任务,每个机器最多做一个任务,每个任务最多被一台机器做 每个机器和任务有两个属性,x和y,机器这两个属性都分别大于等于任务的这两个属性时才可做该任务。 问最多能做多少任务。 另外,一个任务完成挣500x+2y的钱数,在任务数达到最多的前提下,问你挣得最多的钱数。 思路 贪心,把任务和机器分别按两个属性从大到小排序,x是第一优先级,y是第二 遍历任务和机器,对每个任务,所有机器的x

luke2834的专栏 1214

HDU 4585 平衡树Treap

点击打开链接 题意:给出n组数,第一个数是id,第二个数是级别,每输入一个,输出这个人和哪个人打架,这个人会找和他级别最相近的人打,如果有两个人级别和他相差的一样多,他就会选择级别比他小的打架。 思路:用treap完成,可以用STL水过,但要练Treap就写了平衡树的,对于每个人的等级,我们找到他的等级的排名t,然后找第t-1大的数和第t+1大的数,然后进行比较一下。讨论后输出,PS:没有好得

Dan__ge的博客 1970

hdu4812 D Tree,平衡树,启发式合并

今天模拟2013南京赛,两个半小时做完5题开始梦游。 每次都出不了难题有木有!都是水题的场手速又拼不过有木有! hdu4812 D Tree,南京的k题。 每个点有一个权值,问是否存在一条路径,路径所有点的权值乘积模1e6+3等于k。 这个题,大家基本都是用点分治过的,复杂度O(nlogn)。 这里介绍一个有趣的解法,也是一个我感觉很有用的思想:启发式合并。 先说说启发

Necs的小窝 1729

hdu 5444 Elven Postman(模拟)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 104    Accepted Submis

theArcticOcean 1090

HDU 5249 KPI(treap 树堆 )

2015年百度之星程序设计大赛 - 初赛(1) 验treap模板的题 AC代码如下: #include #include #include #include #include #include #include using namespace std; struct Node { Node* son[2]; int rank; int size; int

哇哈哈的专栏 717

HDU 5475 平衡树/线段树

题目意思百度上到处都是啊~ 题目大意: 有一个特殊的计算器,初始值 X = 1。现在有两种操作: 1. 乘以 Y 2. 除以一个之前乘过的数。 每次操作之后,输出对 M 取余的值。 方法1(错误): 根据题目意思,用同余计算。 但是这里的要取余的数字是不是素数!所以这个方法不对 #include #include #include

ACMer不要报考高校代码为13627的移通学院! 510
上一篇: poj 3481 Double Queue(平衡树,SBT)
下一篇: The 2014 ACM-ICPC Asia Mudanjiang Regional Contest - K Known Notation
yjCola
博客等级 码龄14年 4粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值