威士忌(whiskey)

威士忌(whiskey)

题目描述

Alan 喝了假威士忌,想问你一个问题:

nvliu66 推荐大家读三本书《百年孤独》、《城市发展史》、《美国大城市的生与死》,三本书的总页数分别为p,q,rp,q,r。现有nn个nvliu66 的粉丝,作为nvliu66的粉丝,想必每本书都至少读过一页,其中第ii个粉丝读过aiai页《百年孤独》、bibi页《城市发展史》、cici页《美国大城市的生与死》(1≤ai≤p,1≤bi≤q,1≤ci≤r)(1≤ai≤p,1≤bi≤q,1≤ci≤r)。如果粉丝xx有不少于两本书阅读过的页数都严格多余粉丝yy,即当ax>ay,bx>by,cx>cyax>ay,bx>by,cx>cy三个条件中有至少两个成立时,那么称xx比yy更“博闻强识”。

Alan 作为nvliu66 的粉丝,也决定去读a0a0页《百年孤独》、b0b0页《城市发展史》、c0c0页《美国大城市的生与死》(1≤a0≤p,1≤b0≤q,1≤c0≤r)(1≤a0≤p,1≤b0≤q,1≤c0≤r)。如果Alan 比nn个粉丝都要博闻强识,那么他就会感到很奴比。Alan 想知道自己有多少种不同的读书方案使自己会很奴比,两个读书方案不同当且仅当存在一本书读取的页数不同。

输入

第一行,四个整数n,p,q,rn,p,q,r。

接下来nn行,每行三个整数ai,bi,ciai,bi,ci。


solution

考虑枚举一位a

分情况考虑:

1.ai>a

那么我们一定要保证bc都小于a

这个可以预处理很方便求出max

2.ai<a

那么我们要保证b或c至少有一维要更大

把所有(b,c)抽象成点,那么我们的选择不能在任何一个以bc为右上角的矩形内。

注意到矩形的并y是递减的

我们可以用线段树维护这些矩形面积的并。

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#define maxn 500005
#define ll long long
using namespace std;
int n;
ll P,Q,R,mc[maxn],mb[maxn];
ll ans;
struct node{ll a,b,c;
}s[maxn];
struct no{int l,r,len;ll v,Max,bj;
}tree[maxn*4];
bool cmp(node a,node b){return a.a<b.a;
}
void wh(int k){tree[k].Max=max(tree[k*2].Max,tree[k*2+1].Max);tree[k].v=tree[k*2].v+tree[k*2+1].v;
}
void build(int k,int l,int r){tree[k].l=l;tree[k].r=r;tree[k].len=r-l+1;if(l==r){tree[k].v=R;return;}int mid=l+r>>1;build(k*2,l,mid);build(k*2+1,mid+1,r);wh(k);
}
void down(int k){ll &v=tree[k].bj,up=R-tree[k].bj;if(v!=0){tree[k*2].Max=tree[k*2+1].Max=v;tree[k*2].v=1LL*tree[k*2].len*up;tree[k*2+1].v=1LL*tree[k*2+1].len*up;tree[k*2].bj=tree[k*2+1].bj=v;v=0;}
}
int find(int k,int pl){if(tree[k].l==tree[k].r)return tree[k].l;down(k);if(tree[k*2+1].Max>=pl)return find(k*2+1,pl);else return find(k*2,pl);
}
ll ask(int k,ll li,ll ri){if(li>ri)return 0;if(tree[k].l>=li&&tree[k].r<=ri){return tree[k].v;}down(k);int mid=tree[k].l+tree[k].r>>1;ll tmp=0;if(li<=mid)tmp+=ask(k*2,li,ri);if(ri>mid)tmp+=ask(k*2+1,li,ri);return tmp;
}
void ch(int k,int li,int ri,ll v,ll up){if(li>ri)return;if(tree[k].l>=li&&tree[k].r<=ri){tree[k].Max=v;tree[k].v=1LL*tree[k].len*up;tree[k].bj=v;return;}down(k);int mid=tree[k].l+tree[k].r>>1;if(li<=mid)ch(k*2,li,ri,v,up);if(ri>mid)ch(k*2+1,li,ri,v,up);wh(k);
}
int main()
{cin>>n>>P>>Q>>R;for(int i=1;i<=n;i++)scanf("%lld%lld%lld",&s[i].a,&s[i].b,&s[i].c);sort(s+1,s+n+1,cmp);for(int i=n;i>=1;i--)mb[i]=max(mb[i+1],s[i].b),mc[i]=max(mc[i+1],s[i].c);build(1,1,Q);ll la=1;for(int i=1;i<=n;i++){ll nb=mb[i]+1,nc=mc[i]+1;ll pl=find(1,nc);if(tree[1].Max<nc)pl=0;ll tmp=0;if(!pl){tmp=tmp+(Q-nb+1)*(R-nc+1);}else {tmp=ask(1,nb,pl);ll t=max(nb,pl+1);tmp+=1LL*(Q-t+1)*(R-nc+1);}tmp=tmp*(s[i].a-la+1);ans=ans+tmp;la=s[i].a+1;ll ap=find(1,s[i].c);if(tree[1].Max<s[i].c)ap=0;ch(1,ap+1,s[i].b,s[i].c,R-s[i].c);}ll tmp=ask(1,1,Q);tmp=tmp*(P-la+1);ans=ans+tmp;cout<<ans<<endl;return 0;
}

posted @ 2018-12-19 19:37 liankewei 阅读(...) 评论(...) 编辑 收藏

威士忌(whiskey)相关推荐

  1. 2021年中国单一麦芽的威士忌市场趋势报告、技术动态创新及2027年市场预测

    单一麦芽的威士忌市场的企业竞争态势 该报告涉及的主要国际市场参与者有Bacardi.Beam Suntory.Brown-Forman.Diageo.Pernod Ricard.Asahi Brewe ...

  2. 酒水知识(六大基酒之威士忌_Whisky)

    世界上许多国家和地区都有生产威士忌的酒厂.但最著名最且代表性的威士忌分别是苏格兰威士忌.爱尔兰威士忌.美国威士忌和加拿大威士忌四大类. 威士忌酒是用大麦.黑麦.玉米等谷物为原料,经发酵.蒸馏后放入旧的 ...

  3. 美国威士忌的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

    本文研究全球与中国市场美国威士忌的发展现状及未来发展趋势,分别从生产和消费的角度分析美国威士忌的主要生产地区.主要消费地区以及主要的生产商.重点分析全球与中国市场的主要厂商产品特点.产品规格.不同规格 ...

  4. 2022年全球市场花生酱威士忌总体规模、主要生产商、主要地区、产品和应用细分研究报告

    本文研究全球市场.主要地区和主要国家花生酱威士忌的销量.销售收入等,同时也重点分析全球范围内主要厂商(品牌)竞争态势,花生酱威士忌销量.价格.收入和市场份额等.针对过去五年(2017-2021)年的历 ...

  5. 未来拟投10亿!保乐力加峨眉山威士忌酒厂正式揭幕;欧舒丹收购美国护理品牌约83%间接股权 | 美通社头条...

    要闻摘要:保乐力加峨眉山威士忌酒厂正式揭幕.欧舒丹收购美国护理品牌约83%的间接股权.甲骨文学院推出全球职业中心.数数科技完成3.76亿元C轮融资.药明生基美国费城扩建基地投入运营.上海睦家医疗与滔搏 ...

  6. 一喝到威士忌真是什么烦恼都忘了

    说的好像挺装逼的,就是挺装逼的. 那装的好一点: 苏格兰金黄色的小麦香,就像金黄色的小麦色皮肤,沁人心. 今天是大年初一,我下午五点才真正的下了床换了衣服,午饭在床上吃的妈妈做的方便面.我要求的. 补 ...

  7. 新品周刊 | 星巴克推出威士忌桶酿咖啡;天梭年度旗舰新品卡森臻我系列腕表上市...

    星巴克.天梭.LINE FRIENDS.Maison Kitsune.佳洁士.A.O.史密斯.Michter's Distillery.玩具反斗城发布最新产品. 饮品 星巴克推出精品咖啡品类" ...

  8. 星巴克中国首推全新精品咖啡品类“威士忌桶酿咖啡”

    因为热爱咖啡,多年来,星巴克不断探索精品咖啡的各种可能性,推出了一个个突破边界的创新品类和产品, 引领精品咖啡创新风潮. 4月28日,星巴克历时多年打造的创新咖啡品类 -- 臻选威士忌桶酿咖啡系列正式 ...

  9. 百年烈酒公司William Grant&Sons将通过区块链追踪威士忌产品

    点击上方"蓝色字"可关注我们! 暴走时评:据报道,优质苏格兰威士忌品牌Ailsa Bay即将推出所谓的世界上第一款采用区块链系统追踪的苏格兰威士忌.该系统将跟踪其产品从源头到商店的 ...

最新文章

  1. android 设置允许http请求_网络请求框架----OkHttp原理
  2. python snmp 交换机 配置文件_如何使用python从SNMP获取数据?
  3. 只开窗不镀锡_平开窗选购时有哪些误区
  4. python3项目-30 个惊艳的Python开源项目
  5. 问答中心html,html
  6. 从公司发展看技术人才需求
  7. C#调用C++ DLL的方式
  8. 【CV】使用OpenCV搭建违章停车检测系统
  9. python3标准数据类型
  10. 微服务API模拟框架frock介绍
  11. Java Web学习(六)HttpServletRequest(客户端请求)
  12. jsf集成spring_Spring和JSF集成:MVC螺母和螺栓
  13. CompletableFuture的多线程和异步监听实现
  14. 快手国际化事业部组织架构调整 在事业部内单独设立国际化商业化部
  15. python京东笔试题象棋马走到指定位置方法数
  16. 1024: 例题3-2 计算存款利息
  17. aix 到 linux的网络,通过VIOS实现AIX系统的网络虚拟化
  18. 电脑如何备份重要文件?教你两种简单方法
  19. c# mailgun 发送邮件测试
  20. 家用nas存储,家庭个人云推荐

热门文章

  1. 在 阿里云ECS 上安装 CDH6.2 standalong
  2. SEO快排系统功能更新
  3. OSChina 周六乱弹 —— 为什么中国人到了非洲都成了非洲粉
  4. ubuntu下sed命令详解 - Dicky - 开源中国社区
  5. 计算机菜单在桌面未显示怎么找回,电脑桌面开始菜单不见和任务栏消失怎么办...
  6. java中怎么编写围棋对弈,TPWEIQI : JAVA 网络围棋对弈系统
  7. CentOS6.5安装Chromium谷歌浏览器
  8. 为什么做抓包测试 及抓包 http 原理图解分析
  9. 交换机模拟配置软件_GNS3 for mac(网络模拟工具)
  10. 清华计算机系校服,北大清华(清华大学各系校服)