题目描述

有 n(1 \leq n \leq 10^5)n(1≤n≤105) 个小朋友,过年了,要发放 m(1 \leq m \leq 10^5)m(1≤m≤105) 次礼物。

每次发放,会给出三个参数 l,r,k(1 \leq l \leq r \leq n, 1 \leq k \leq 10^5)l,r,k(1≤l≤r≤n,1≤k≤105) ,表示给区间 [l, r][l,r] 内的小朋友都发一个礼物 kk 。

所有礼物发放完成后,对于每一个小朋友,回答他接受的礼物中,出现次数最多的礼物是什么。如果有多个,输出编号最小的那个;如果不存在,输出 -1−1 。

输入输出格式

输入格式:

第一行两个整数 n, mn,m ,意义如上所述。

接下来 mm 行,每行三个数 l,r,kl,r,k ,意义如上所述。

输出格式:

一共 nn 行,每行一个数,表示答案。

输入输出样例

输入样例#1: 复制

6 3
1 5 1
2 3 2
3 4 2
输出样例#1: 复制

1
1
2
1
1
-1 思路比较无脑,全是套路类的问题
按照小盆友的序号建权值线段树
对于每个询问差分一下
在树上打标记,记录最大值和最大值的位置
emmm以后要考虑考虑线段树怎么写了,感觉用DFS序不仅内存小,还写着顺手
// luogu-judger-enable-o2
#include<iostream>
#include<vector>
#include<cstdio>
using namespace std;
const int MAXN=1e6+;
struct node
{
int l,r,ls,rs,mx,mxpos;
}T[MAXN];
vector<int>v[MAXN];
int root,tot;
void Build(int &k , int ll , int rr)
{
k=tot++;
T[k].mx=; T[k].l = ll ; T[k].r = rr;
if( ll == rr ) { T[k].mxpos = ll; return ; }
int mid=ll + rr >>;
Build( T[k].ls , ll , mid );
Build( T[k].rs , mid+ , rr );
}
void update(int k)
{
if( T[ T[k].ls ].mx >= T[ T[k].rs ].mx ) T[k].mx = T[ T[k].ls ].mx , T[k].mxpos = T[ T[k].ls ].mxpos;
else T[k].mx = T[ T[k].rs ].mx , T[k].mxpos = T[ T[k].rs ].mxpos;
}
void Add(int k, int pos )
{
if( T[k].l == T[k].r )
{
T[k].mx++;
return ;
}
int mid=T[k].l + T[k].r >>;
if(pos<=mid) Add( T[k].ls , pos );
else Add( T[k].rs , pos );
update(k);
}
void Delet(int k, int pos )
{
if( T[k].l == T[k].r )
{
T[k].mx--;
return ;
}
int mid= T[k].l + T[k].r >>;
if(pos<=mid) Delet( T[k].ls , pos );
else Delet( T[k].rs , pos );
update(k);
}
int main()
{
#ifdef WIN32
freopen("a.in","r",stdin);
#else
#endif
int N,M;
scanf("%d%d",&N,&M);
for(int i=; i<=M ;i++ )
{
int l,r,k;
scanf("%d%d%d",&l,&r,&k);
v[l].push_back(k);
v[r+].push_back(-k);
}
Build(root,,N);
for(int i=; i<=N ;i++)
{
for(int j=; j<v[i].size() ;j++ )
{
// printf("*%d*",v[i][j]);
if( v[i][j]> )
Add(root , v[i][j] );
if( v[i][j]< )
Delet(root , -v[i][j] );
}
if( T[root].mx )
printf("%d\n",T[ root ].mxpos );
else
printf("-1\n");
} return ;
}


洛谷T21778 过年的更多相关文章

  1. 洛谷.T21778.过年(线段树 扫描线)

    题目链接或者这吧.. 被数据坑了 /* 操作按左端点排个序 依次进行即可 不是很懂 为什么不写Build 而在Add时改mp[rt]=p 会WA(too short on line 251..) 找到 ...

  2. 洛谷 [T21778] 过年

    离线扫描线+查分+线段树 我们发现,这个题的询问都是离线的,所以我们尝试用离线扫描线的方法来处理 对于每一次操作,我们维护一个差分数组, 在询问的时候,我们用一根扫描线,从左往右扫,并用线段树维护,每 ...

  3. 洛谷-P5357-【模板】AC自动机(二次加强版)

    题目传送门 -------------------------------------- 过年在家无聊补一下这周做的几道AC自动机的模板题 sol:AC自动机,还是要解决跳fail边产生的重复访问,但 ...

  4. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  5. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  6. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  7. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  8. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  9. 洛谷P1371 NOI元丹

    P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交  讨论  题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...

随机推荐

  1. 转:IOS 基于APNS消息推送原理与实现(JAVA后台)

    Push的原理: Push 的工作机制可以简单的概括为下图   图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider. APNS 是Apple ...

  2. bzoj千题计划286:bzoj1226: [SDOI2009]学校食堂Dining

    http://www.lydsy.com/JudgeOnline/problem.php?id=1226 关键点:一个人只能忍受 ‘紧跟’ 在他 后面的b个人比他先打到饭 dp[i][j][k] 前i ...

  3. bzoj千题计划258:bzoj3123: [Sdoi2013]森林

    http://www.lydsy.com/JudgeOnline/problem.php?id=3123 启发式合并主席树 #include<cmath> #include<cstd ...

  4. angularJs入门篇-hello world 开头

    AngularJS 采用了完全不同的解决方案,它创建实时视图模板代替视图,而不是将数据合并进模板之后更新DOM. 任何一个独立视图组件中的值都是 动态替换的.这个功能可以说是AngularJS中最重要 ...

  5. 关于An internal error occurred during: "Launching MVC on Tomcat 6.x". java.lang.NullPointerException异常处理

    一大早上来启动打开myeclipse就报一个这样的错误An internal error occurred during: "Launching MVC on Tomcat  6.x&quo ...

  6. [游戏数据分析]WAU模型简介及WAU预测

    声明:本博客中所采用的数据并非真实数据,会对真实数据加以变换,重在讨论游戏数据分析的思路. 这里是参考友盟的WAU模型[文章网址,  演示网址],利用某款游戏(以下称为游戏A)数据进行的分析. 作用: ...

  7. 第9月第9天 CTFramesetterCreateWithAttributedString

    1. NSString *text = @"This\nis\nsome\nmulti-line\nsample\ntext."; UIFont *uiFont = [UIFont ...

  8. Android View坐标系详解(getTop()、getX、getTranslationX...)

    View 提供了如下 5 种方法获取 View 的坐标:1. View.getTop().View.getLeft().View.getBottom().View.getRight();2. View ...

  9. 【ARTS】01_02_左耳听风-20181119~1125

    Algorithm 做一个 leetcode 的算法题 Unique Email Addresses https://leetcode.com/problems/unique-email-addres ...

  10. Project Euler Problem4

    Largest palindrome product Problem 4 A palindromic number reads the same both ways. The largest pali ...