poj万人题
poj提交数量过万的题,除了水爆了的题就是无比经典的,不得不刷的题。 准备将poj上提交次数过万的题刷个遍。 持续更新中。。。
poj 2828(线段树)
此题乃是Zhu, Zeyuan神牛出的,拿到题目就觉得这题真的是很有意思,苦想一天无果。 感叹大神的思维果真奇妙。 随随便便提出的问题都成为了如此经典。看了下讨论发现貌似不好想,再尝试了下发现有些问题还是没有想出解决掉方法,而且越来越混乱, 无奈只能看题解了。。。
由于插队是具有最高优先级,而且显然最后一个人插在哪里那么他的最终位置就是哪里。 所以可以从后往前看。先将最后一个人放好,再根据最后一个人的位置判断倒数第二个人的位置。 由此如果能在得知后n个点的位置推出从后往前第n+1个点的位置,那么这题就可以得到完美解决。直接模拟的话需要n*n的复杂度,明显不行。
用num[s]表示从l[s]到r[s]中还有多少空格可以放入(l[s]表示这段线段的左端点,r[s]表示这段线段的右端点)
当要插入到当前线段的第i个位置时,其实并不一定能插到i的位置,因为如果从起点到i上已经有点了,那么表示这点必须得后退,且出现一个点后退一步,且后退途中遇到新的点又得多后退一步。
到底是插入到左段还是右段 如果i<=num[2*s] (插入点的位置小于左段可插入的个数),那么就插入左段,否则插入右段且更新插入位置,i变成i-(cntleft-cnthave) 或者i+cnthave-cntleft其中cntleft表示左端的点个数cnthave表示左端有多少点已经插入了。 这个是用线段树的关键所在,可以举几个例子推一下。
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <string>
#include <algorithm>
#include <math.h>
#include <stdlib.h>
using namespace std;
#define N 200200 int n;
int gp[N],gv[N];
int l[*N],r[*N],num[*N];
int ans[N]; void build(int tl,int tr,int s)
{
l[s]=tl;
r[s]=tr;
if(tl==tr)
{
num[s]=;
return ;
}
int mid=(tl+tr)/;
build(tl,mid,*s);
build(mid+,tr,*s+);
num[s]=num[*s]+num[*s+];
} void update(int x,int w,int s)
{
if(l[s]==r[s])
{
ans[l[s]]=w;
num[s]=;
return ;
}
if(x<=num[*s])//左段又足够的空间,且要插入的位置比较靠前
update(x,w,*s);
else //左段不够,必须得到右边
update(x-num[*s],w,*s+);
num[s]--;
} int main()
{
while(scanf("%d",&n)!=EOF)
{
memset(num,,sizeof(num));
build(,n,);
for(int i=;i<=n;i++)
scanf("%d%d",gp+i,gv+i);
for(int i=n;i>=;i--)
{
update(gp[i]+,gv[i],);
}
for(int i=;i<n;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[n]); }
return ;
}
poj万人题的更多相关文章
- 字节跳动已经10万人了?渣本双非Android程序员怎么上车?
字节跳动已经 10 万人了? 是的,在 2020 年字节跳动的员工总数从 6 万蹿到 10 万,平均每个工作日就有 150 人在办理入职,加入字节跳动全球超过 240 个办公点. 更有统计,在总部北京 ...
- POJ推荐50题
此文来自北京邮电大学ACM-ICPC集训队 此50题在本博客均有代码,可以在左侧的搜索框中搜索题号查看代码. 以下是原文: POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求, ...
- 第一章 基础设施,1.3 阿里视频云ApsaraVideo是怎样让4000万人同时狂欢的(作者:蔡华)
1.3 阿里视频云ApsaraVideo是怎样让4000万人同时狂欢的 前言 在今年的双11中,双11天猫狂欢夜的直播成为一大亮点. 根据官方披露数据,直播总观看人数超4257万,同时观看人数峰值达5 ...
- 最短路+线段交 POJ 1556 好题
// 最短路+线段交 POJ 1556 好题 // 题意:从(0,5)到(10,5)的最短距离,中间有n堵墙,每堵上有两扇门可以通过 // 思路:先存图.直接n^2来暴力,不好写.分成三部分,起点 终 ...
- 每年有20万人进军IT行业,为何还会人才短缺?
众所周知,IT行业是个高薪行业,也是很多人的梦想职业,在全球最缺人的十大行业中IT行业居首位. 但是现在很多人都有一个疑问: 几乎每所大学里都有计算机技术相关专业,再加上IT培训机构的输出,每年培养出 ...
- 落实制度靠流程<摘自平安50万人的执行力>
落实制度靠流程<摘自平安50万人的执行力> 讲在嘴上的制度是给人听的,写在纸上的制度是给人看的,落实在流程上的制度才是可靠的.制度的执行不能都依赖个人的自觉性. 很多企业都在强调和推行制 ...
- Python如何实现微信群万人同步直播?
很多人传言微信网页版(https://wx.qq.com/)接口已经被封了,所以所有的微信都不能登录网页版,这是错误的. 2019年7月微信对网页版微信进行了动态安全策略调整,导致一大批微信号不能登录 ...
- https://docs.huihoo.com/infoq/qconbeijing/2016/day1/工程效率提升专题/2-2-支持百度万人开发的工具装备及百度工程能力建设-夏仲璞.pdf
https://docs.huihoo.com/infoq/qconbeijing/2016/day1/工程效率提升专题/2-2-支持百度万人开发的工具装备及百度工程能力建设-夏仲璞.pdf http ...
- 突破JAVA万人面试,懂多线程者得天下
突破JAVA万人面试,懂多线程者得天下 在面试中,求职者会遇到很多棘手的问题,其中关于"线程安全"."线程同步"."线程死锁"等方面的面 ...
随机推荐
- 5种样式实现div容器中三图摆放实例对比说明
代码地址如下:http://www.demodashi.com/demo/11593.html 效果演示: demo点查看效果 需求说明: 如下图所示为设计图,希望在图片上传无规则无规律的情况下实现设 ...
- 单元测试JUnit 4(二)——keeps the bar green to keeps the code clean
1.Failure和Error Failure是指测试失败 Error是指测试程序本身出错 (int a=10/0) 2.JUnit常用注解 2.1 @RunWith: 可以更改测试运行器(继承o ...
- [转载]Scikit-learn介绍几种常用的特征选择方法
#### [转载]原文地址:http://dataunion.org/14072.html 特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解 ...
- Markdown进阶指南
数学公式编辑 Mac OS下建议使用Daum Equation Editor,按照MathType那样写公式,自动生成TeX代码 行内公式:用$...$包住Tex代码 行间公式:用$$..$$包住Te ...
- C语言 Linux环境变量
/* *@author cody *@date 2014-08-12 *@description */ /* extern char **environ //environment values #i ...
- Atitti. 语法树AST、后缀表达式、DAG、三地址代码
Atitti. 语法树AST.后缀表达式.DAG.三地址代码 抽象语法树的观点认为任何复杂的语句嵌套情况都可以借助于树的形式加以描述.确实,不得不承认应用抽象语法树可以使语句翻译变得相对容易,它很好地 ...
- C# asp.net页面常用语法,页面包含
搞.net开发这么多年,知道和用过包含include指令吗? <%@ Page Language="C#" AutoEventWireup="true" ...
- python学习之find()
定义: find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1. 语法 ...
- (译)Getting Started——1.2.2 Desinging a User Interface(设计用户界面)
用户需要以最简单的方式与应用界面进行交互.应该从用户的角度出发设计页面,使得界面更高效.简捷和直接. storyboard以图形化的方式帮助你设计和实现界面.在设计和实现界面的过程中,你 ...
- Unknown module(s) in QT: xlsx解决方法
解决方法在此: https://github.com/dbzhang800/QtXlsxWriter Documentation: http://qtxlsx.debao.me QtXlsx is a ...