POJ2828 Buy Tickets(树形DP)

本文介绍了一种使用线段树实现的倒序插入算法,该算法通过从最后一个输入开始进行逆向操作来确定最终不变数值的位置。文章详细解释了如何创建并更新线段树以记录空闲位置,并通过示例代码展示了算法的具体实现过程。
// http://www.cnblogs.com/shenben/p/5624886.html
//  思路:根据题目可知,最后插入的位置的数才是最终不变的数,
// 所以可以从最后的输入作第1个放入,依此类推,倒插入。
// 在插入时也有一定的技术,首先创建一棵空线段树时,每个节点
// 记录当前范围内有多少个空位置。在插入时,要注意,一个数放
// 入之后那么这个位置就不用管了,那么树中所有的空位置就是余
// 下的数所对应的位置,也就是把余下的数又可以看作是一个新的
// 集合。那么每次插入都是当前集合的第1次放。

#include<iostream>
#include<cstdio>

using namespace std;
const int N=200005;

int n,id,pos[N],val[N],ans[N],w[N*3];

void build(int k,int left,int right){
    w[k]=right-left+1;  //  w记录这个区间有多少的空位。
    int mid=(left+right>>1);
    if(left<right){
        build(k<<1,left,mid);
        build(k<<1|1,mid+1,right);
    }
}

void updata(int k,int pos,int l,int r){
    w[k]--;//  这个区间增加了一人,区间空位-1。
    if(l==r){
        id=l;return;
    }
    int mid=(l+r)/2;
    if(w[k<<1]>=pos) updata(k<<1,pos,l,mid);
    else{
        pos-=w[k<<1];
        updata(k<<1|1,pos,mid+1,r);
    }
}

int main(){

    freopen("a.txt","r",stdin);

    while(scanf("%d",&n)==1){
        build(1,1,n);
        for(int i=1;i<=n;i++)
            scanf("%d%d",&pos[i],&val[i]);
        for(int i=n;i>=1;i--){
            updata(1,pos[i]+1,1,n);
            ans[id]=val[i];
        }
        for(int i=1;i<=n;i++)
            printf("%d ",ans[i]);
        putchar('\n');
    }
    return 0;
}
这个是完整源码 python实现 Flask,Vue 【python毕业设计】基于Python的Flask+Vue物业管理系统 源码+论文+sql脚本 完整版 数据库是mysql 本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发
源码地址: https://pan.quark.cn/s/a4b39357ea24 # SerialAssistant串口助手 下载地址: 本仓库release文件夹 在线下载:http://mculover666.cn/SerialAssistant.zip 功能说明 本项目是使用C# + WinForm框架编写的串口助手。 目前版本为2.0.0版本,拥有以下功能: 未打开串口时,自动扫描可用端口 接收数据支持文本或者HEX方式显示 支持接收数据加入时间戳 支持将当前接收数据保存为文件 支持发送文本数据或HEX数据 支持自动定时发送数据 支持从文件中(.txt, .json)加载数据到发送文本框 支持发送数据记录(不重复记录) ……欢迎加入更多功能 环境说明 VS2019 .NET Framework 4.5 教程 C#上位机开发(一)—— 了解上位机 C#上位机开发(二)—— Hello,World C#上位机开发(三)—— 构建SerialAssistant雏形 C#上位机开发(四)—— SerialAssistant功能完善 C#上位机开发(五)——SerialAssistant界面升级(WinForm界面布局进阶) C#上位机开发(六)——SerialAssistant功能优化(串口自动扫描功能、接收数据保存功能、加载发送文件、发送历史记录、打开浏览器功能、定时发送功能) C#上位机开发(七)—— 修改窗口图标和exe文件图标 C#上位机开发(八)—— 美化界面(给按钮添加背景) 更新日志 2018/6/3 完成串口属性设置,打开与关闭异常处理; 字符串发送功能; 字符串接收功能; 2018/6/4 完善串口扩展功能界面部分 2018/6/6 完善...
基于共轭转移与噬菌体介导的 CRISPR 系统对抗耐药菌的建模研究(Matlab代码实现)内容概要:本文档标题为《基于共轭转移与噬菌体介导的 CRISPR 系统对抗耐药菌的建模研究(Matlab代码实现)》,但实际内容并未围绕该主题展开具体论述,而是列举了大量与Matlab仿真相关的科研技术服务项目,涵盖智能优化算法、机器学习、路径规划、无人机应用、电力系统优化、信号处理等多个领域,并提供了相关资源的网盘下载链接。文档强调科研需逻辑缜密、善于借力与创新,建议按目录顺序阅读以避免迷失方向。真正关于CRISPR系统对抗耐药菌的研究内容缺失,标题与正文严重不符。; 适合人群:具备一定科研基础,熟悉Matlab编程,从事工程优化、生物信息、控制系统、电力系统、人工智能等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①获取各类科研问题的Matlab代码实现资源,如优化调度、预测建模、路径规划等;②复现高水平论文中的算法模型;③开展跨学科仿真研究时借鉴技术方案与代码框架;④利用提供的YALMIP等工具包进行优化问题求解。; 阅读建议:注意本文档标题与实际内容不符,重点应放在其所列出的技术服务范围和提供的网盘资源上,使用者可根据自身研究方向筛选相关内容,结合提供的代码实例进行学习与二次开发,同时注意甄别信息的有效性与准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值