牛客周赛11TG B-弹钢琴
链接:https://ac.nowcoder.com/acm/contest/941/B
来源:牛客网
题目描述
为了阻止异变的发生,Pi将钢琴魔改了
钢琴上有 N 个键,每个键有音高、音色、春希度三种属性
和纱需要依次敲击若干个键,这些键的春希度之和越大,春希就越满意
然而由于Pi的魔改,一个键被敲下后,该键和所有音高或音色小于它的键都会坏掉(坏掉即不能再被敲击)
Pi想知道在这种情况下,和纱能弹琴的最大春希度之和
输入描述:
第一行一个数,为按键个数 N
接下来 N 行每行三个数,分别表示第 i 个键的音高、音色、春希度
输出描述:
一行一个数,为最大的春希度和
备注:
90% N≤105N\leq 10^5N≤105
100% N≤106N\leq 10^6N≤106, 输入中所有数均为正整数且 ≤108\leq 10^8≤108 emm这题正解树状数组???(但是我永远喜欢线段树并且永远讨厌离散化所以就用动态开点线段树写了qvq
最简单的动态开点线段树单点修改区间查值操作
改到最后还是90pts emmm线段树的常数还是大了而且1000000乘上logINF也不太遭得住
注意的是那个根一开始是取0的emmmm
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
#define int long long
using namespace std; const int maxn=;
const int INF=; struct node{
int w;
signed son[];
}tr[maxn<<]; struct qvq{
int x,y,w;
}a[maxn];
inline int max(int x,int y) {
return x>y?x:y;
} inline bool cmp(qvq x,qvq y) {
if (x.x==y.x) return x.y<y.y;
return x.x<y.x;
} int cnt;
inline void add(signed &now,int l,int r,int loc,int w) {
if (!now) now=++cnt;
tr[now].w=max(w,tr[now].w);
if (l==r) return;
int mid=l+r>>;
if (loc<=mid) add(tr[now].son[],l,mid,loc,w);
if (mid+<=loc) add(tr[now].son[],mid+,r,loc,w);
} inline int query(signed now,int l,int r,int x,int y) {
if (!now) return ;
if (x<=l && r<=y) return tr[now].w;
int ans=,mid=l+r>>;
if (x<=mid) ans=max(ans,query(tr[now].son[],l,mid,x,y));
if (mid+<=y) ans=max(ans,query(tr[now].son[],mid+,r,x,y));
return ans;
} signed main(){
int n;
scanf("%lld",&n);
for (int i=;i<=n;i++)
scanf("%lld%lld%lld",&a[i].x,&a[i].y,&a[i].w);
sort(a+,a+n+,cmp);
int ans=;
for (int i=;i<=n;i++) {
signed rt=;
if (i>) rt=;
int val=query(rt,,INF,,a[i].y)+a[i].w;
ans=max(ans,val);
add(rt,,INF,a[i].y,val);
}
printf("%lld",ans);
}
牛客周赛11TG B-弹钢琴的更多相关文章
- 牛客OI周赛9-提高组题目记录
牛客OI周赛9-提高组题目记录 昨天晚上做了这一套比赛,觉得题目质量挺高,而且有一些非常有趣而且非常清奇的脑回路在里边,于是记录在此. T1: 扫雷 题目链接 设 \(f_i\) 表示扫到第 \(i\ ...
- 牛客OI周赛8-提高组A-用水填坑
牛客OI周赛8-提高组A-用水填坑 题目 链接: https://ac.nowcoder.com/acm/contest/403/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制: ...
- 栈的压入、弹出顺序 牛客网 剑指Offer
栈的压入.弹出顺序 牛客网 剑指Offer 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是 ...
- 牛客OI周赛7-提高组 A 小睿睿的等式
链接:https://ac.nowcoder.com/acm/contest/371/A来源:牛客网 小睿睿在游戏开始时有n根火柴棒,他想知道能摆成形如“A+B=n”的等式且使用的火柴棒数也恰好等于n ...
- 牛客OI周赛7-提高组 B小睿睿的询问(ST打表)
链接:https://ac.nowcoder.com/acm/contest/371/B来源:牛客网 小睿睿的n个妹纸排成一排,每个妹纸有一个颜值val[i].有m个询问,对于每一个询问,小睿睿想知道 ...
- 牛客OI周赛7-普及组 解题报告
出题人好评. 评测机差评. A 救救喵咪 二位偏序.如果数据范围大的话直接树状数组,不过才1000就\(O(n^2)\)暴力就ok了. #include <bits/stdc++.h> s ...
- 牛客OI周赛2-提高组
A.游戏 链接:https://www.nowcoder.com/acm/contest/210/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...
- 牛客OI周赛10-普及组-A眼花缭乱的街市-(加速+二分)
https://ac.nowcoder.com/acm/contest/901/A 很简单的一道题,全场只有20+AC,卡时间.新学了cin加速语法和数组二分查找的函数调用. 知道有个读写挂,可以加速 ...
- 牛客OI周赛11-普及组 B Game with numbers (数学,预处理真因子)
链接:https://ac.nowcoder.com/acm/contest/942/B 来源:牛客网 Game with numbers 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C+ ...
随机推荐
- JavaScript - onunload失效
参考 https://stackoverflow.com/questions/7794301/window-onunload-is-not-working-properly-in-chrome-bro ...
- 虚拟机与ubuntu系统的安装与基础操作
1.虚拟机的下载: 常见的虚拟机软件有:VMware VirtuaIBOX Virtual PC 等. 这里主要介绍VMware ,VMware目前已经有很多个版本,可以根据个人情况进行选择.安 ...
- bootstrap帮助文档
概览 深入了解 Bootstrap 底层结构的关键部分,包括我们让 web 开发变得更好.更快.更强壮的最佳实践. HTML5 文档类型 Bootstrap 使用到的某些 HTML 元素和 CSS 属 ...
- static的特性
1,static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法.这实际上正是static ...
- 15 JavaScript弹窗(警告框alert、确认框confirm、提示框Promt)
警告框:window.alert().通常用于确认用户可以得到某些信息 <body> <script type="text/javascript" charset ...
- Legal High
不让任何人承担责任,不想看的东西就回避, 但是,如果想夺回值得夸耀的生存方式,就必须看那些不愿意看的现实,必须带着身负重伤的觉悟前进,这才叫做战斗. 有怨言的话去坟墓里说,钱不是全部,钱就是你们向对手 ...
- 【转】路由转发过程的IP及MAC地址变化
A-----(B1-B2)-----(C1-C2)-------E 就假设拓扑图是这个样子吧,B1和B2是路由器B上的两个接口,C1和C2是路由器C上的两个接口,A和E是PC,由主机A向主机E发送数据 ...
- IELTS Simon wr task p3
- 跳转连接转base64
//配置H5连接 @Value("${h5.domain}") private String h5Domain; // 校验商家端权限 public String checkSta ...
- jsp页面 将数据以Json 格式保存到数据库
1:jsp页面 <div class="control-group form-group all_activity"> <c:choose> <c:w ...