2020算法设计竞赛 H 坐火车
链接:https://ac.nowcoder.com/acm/contest/3005/H
来源:牛客网
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=5e5+;
int visa[maxn];
int visb[maxn];
ll ans[maxn];
struct node
{
int val,l,r;
}a[maxn];
struct haa
{
int l;int r;
ll sum;
}tree[maxn<<];
void build(int l,int r,int root)
{
tree[root].l=l;tree[root].r=r;
tree[root].sum=;
if(l==r) return;
int mid=l+r>>;
build(l,mid,root<<);
build(mid+,r,root<<|);
}
void up(int root)
{
tree[root].sum=tree[root<<].sum+tree[root<<|].sum;
}
void update(int pos,int val,int root)
{
int L=tree[root].l;
int R=tree[root].r;
if(L==R){
tree[root].sum+=val;
return;
}
int mid=L+R>>;
if(pos<=mid) update(pos,val,root<<);
else update(pos,val,root<<|);
up(root);
}
ll query(int l,int r,int root)
{
int L=tree[root].l;
int R=tree[root].r;
if(l<=L&&r>=R){
return tree[root].sum;
}
ll ans=;
int mid=L+R>>;
if(l<=mid) ans+=query(l,r,root<<);
if(r>mid) ans+=query(l,r,root<<|);
return ans;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d%d%d",&a[i].val,&a[i].l,&a[i].r);
visa[a[i].val]++;
}
build(,maxn,);
ans[]=;
visa[a[].val]--; //右区间--
visb[a[].val]++; //左区间++;
for(int i=;i<=n;i++){
visa[a[i].val]--; //右区间--;
if(visb[a[i].val]){ //如果左区间包含这个数的话;
//我们就需要减掉与这个数相关的对数;
//但是左区间包含i-1这一项;而这一项在上次操作中没有出现;
//所以当两者相等的时候,tmp--;
int tmp=visb[a[i].val];
if(a[i-].val==a[i].val) tmp--;
update(a[i].val,-tmp,);
}
int tmp=visa[a[i-].val];
update(a[i-].val,tmp,);
ans[i]=query(a[i].l,a[i].r,);
visb[a[i].val]++;
}
for(int i=;i<=n;i++)
printf("%lld ",ans[i]);
printf("\n");
return ;
}
2020算法设计竞赛 H 坐火车的更多相关文章
- 2020算法设计竞赛 I、匹配星星
链接:https://ac.nowcoder.com/acm/contest/3005/I来源:牛客网 天上有n颗星星,每颗星星有二维坐标(xi,yi)(x_i, y_i)(xi,yi),还有一个 ...
- 2020算法设计竞赛 C 汉诺塔
作者:珩月链接:https://ac.nowcoder.com/discuss/367149来源:牛客网 将木板按照Xi从小到大排序,将这时的Yi数列记为Zi数列,则问题变成将Zi划分为尽可能少的若干 ...
- 2020牛客寒假算法基础集训营4 H坐火车
题目描述 牛牛是一名喜欢旅游的同学,在来到渡渡鸟王国时,坐上了颜色多样的火车. 牛牛同学在车上,车上有 n 个车厢,每一个车厢有一种颜色. 他想知道对于每一个正整数 $ x \in [1,\ n] $ ...
- 2020年算法设计竞赛 DP
链接:https://ac.nowcoder.com/acm/contest/3002/I来源:牛客网https://ac.nowcoder.com/acm/contest/3002/I 题目描述 & ...
- 集训第四周(高效算法设计)H题 (贪心)
Description Most financial institutions had become insolvent during financial crisis and went bank ...
- 2020 年TI 杯大学生电子设计竞赛E题总结(放大器非线性失真研究装置)
2020年TI杯大学生电子设计竞赛E题总结(放大器非线性失真研究装置) 摘要:E题的竞赛内容主要是参赛者自己搭建一个晶体管放大器,能够产生不失真.顶部失真.底部失真.双向失真和交越失真五种波形,并分别 ...
- 算法设计与分析 - 李春葆 - 第二版 - html v2
1 .1 第 1 章─概论 1.1.1 练习题 1 . 下列关于算法的说法中正确的有( ). Ⅰ Ⅱ Ⅲ Ⅳ .求解某一类问题的算法是唯一的 .算法必须在有限步操作之后停止 .算法 ...
- 算法设计和数据结构学习_5(BST&AVL&红黑树简单介绍)
前言: 节主要是给出BST,AVL和红黑树的C++代码,方便自己以后的查阅,其代码依旧是data structures and algorithm analysis in c++ (second ed ...
- 算法设计手冊(第2版)读书笔记, Springer - The Algorithm Design Manual, 2ed Steven S.Skiena 2008
The Algorithm Design Manual, 2ed 跳转至: 导航. 搜索 Springer - The Algorithm Design Manual, 2ed Steven S.Sk ...
随机推荐
- go 算法与数据结构
数据结构 稀疏数组 package main import "fmt" /* 稀疏数组 案例:五子棋存盘与复盘 节省存储空间 */ type ValNode struct { ro ...
- centos tomcat解压版安装
解压: tar -xzvf apache-tomcat-8.5.23.tar.gz -C /usr/local/java 配置Tomcat的环境变量: export CATALINA_HOME=/us ...
- PTA 邻接表存储图的广度优先遍历
试实现邻接表存储图的广度优先遍历. 函数接口定义: void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) ) 其中LGraph是邻接表存储的 ...
- Luogu1738 | 洛谷的文件夹 (Trie+STL)
题目描述 kkksc03是个非凡的空想家!在短时间内他设想了大量网页,然后总是交给可怜的lzn去实现. 洛谷的网页端,有很多文件夹,文件夹还套着文件夹. 例如:\(/luogu/application ...
- pads无模命令
W<n>………改变线宽,比如 30. 栅格(Grids) G<xx>………过孔和设计栅格设置.GD<xx>………显示栅格设置.GP………打开或关闭极性栅格.GP r ...
- BFS和队列
深度优先搜索(DFS)和广度优先搜索(BFS)是基本的暴力技术,常用于解决图.树的遍历问题. 首先考虑算法思路.以老鼠走迷宫为例: (1):一只老鼠走迷宫.它在每个路口都选择先走右边,直到碰壁无法继续 ...
- @Autowired、@Resource、@Qualifier区别
@Autowired 1.属于spring的注解,如果不想和Spring耦合的太紧,就不推荐使用. 2.默认情况下,要求依赖对象必须存在,不能为null.如果允许为空,那么设置属性值required为 ...
- Java(三)String类
一.String类初始化方法 1.初始化一个空字符串 String str=new String();//这里调用了String的无参构造方法 2.初始化一个有值的字符串 String str1=&q ...
- youhua
- vConsole 让你在手机上也能轻松调试网页
有时候为了想在手机真机上对网页进行 Debug,可手机上没有 F12,用 Chrome DevTools 连接手机操作又太过复杂.VConsole 的出现,正好解决了这一痛点! (下列内容照搬一下官方 ...