DTOJ3704 威士忌(whiskey)

  • 题目
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例
      • 样例输入
      • 样例输出
    • 数据范围与提示
  • 题解

题目

题目描述

Alan喝了假威士忌,想问你一个问题:
nvliu66推荐大家读三本书《百年孤独》、《城市发展史》、《美国大城市的生与死》(???)
三本书的总页数分别为p,q,rp,q,rp,q,r
现有nnn个nvliu66的粉丝,作为nvliu66的粉丝,想必每本书都至少读过一页,其中第iii个粉丝读过aia_iai​页《百年孤独》、bib_ibi​页《城市发展史》、cic_ici​页《美国大城市的生与死》(1⩽ai⩽p,1⩽bi⩽q,1⩽ci⩽r)(1 \leqslant a_i \leqslant p,1 \leqslant b_i \leqslant q,1 \leqslant c_i \leqslant r)(1⩽ai​⩽p,1⩽bi​⩽q,1⩽ci​⩽r)
如果粉丝xxx有不少于两本书阅读过的页数都严格多余粉丝yyy,即当 ax>ay,bx>by,cx>cya_x>a_y,b_x>b_y,c_x>c_yax​>ay​,bx​>by​,cx​>cy​ 三个条件中有至少两个成立时,那么称xxx比yyy更“博闻强识”(???)
Alan作为nvliu66的粉丝,也决定去读a0a_0a0​ 页《百年孤独》、b0b_0b0​页《城市发展史》、c0c_0c0​页《美国大城市的生与死》 (1⩽a0⩽p,1⩽b0⩽q,1⩽c0⩽r)(1 \leqslant a_0 \leqslant p,1 \leqslant b_0 \leqslant q,1 \leqslant c_0 \leqslant r)(1⩽a0​⩽p,1⩽b0​⩽q,1⩽c0​⩽r)
如果Alan比nnn个粉丝都要博闻强识,那么他就会感到很奴比(???)
Alan想知道自己有多少种不同的读书方案使自己会很奴比,两个读书方案不同当且仅当存在一本书读取的页数不同

输入格式

第一行,四个整数n,p,q,rn,p,q,rn,p,q,r
接下来nnn行,每行三个整数ai,bi,cia_i,b_i,c_iai​,bi​,ci​

输出格式

一行,表示答案

样例

样例输入

3 4 4 5
2 2 5
1 3 4
4 1 1

样例输出

10

数据范围与提示

对于30%30 \%30%的数据,n,p,q,r⩽100n,p,q,r \leqslant 100n,p,q,r⩽100
对于60%60 \%60%的数据,n,p,q,r⩽50000n,p,q,r \leqslant 50000n,p,q,r⩽50000
对于100%100 \%100%的数据,n,p,q,r⩽500000n,p,q,r \leqslant 500000n,p,q,r⩽500000

题解

首先,我们先将这些粉丝按aia_iai​的大小来排序,然后我们枚举a0a_0a0​的大小,有两种情况:

  1. 如果ai>a0a_i>a_0ai​>a0​,那我们就要要求b>bib>b_ib>bi​并且c>cic>c_ic>ci​,为了方便,我们可以先预处理求出maxbimaxb_imaxbi​和maxcimaxc_imaxci​(后缀最大值)
  2. 如果ai<a0a_i<a_0ai​<a0​,那我们就要要求b>bib>b_ib>bi​或c>cic>c_ic>ci​,所以我们把所有的(bi,ci)(b_i,c_i)(bi​,ci​)数对转化为直角坐标系上的点,那么(b0,c0)(b_0,c_0)(b0​,c0​)就不能在任何一个以(bi,ci)(b_i,c_i)(bi​,ci​)组成的矩形中,又因为这些矩形的并集的yyy是递减的,所以我们就可以用一棵线段树来维护这些矩形的并集的面积

附上代码:

#include<algorithm>
#include<cstdio>
using namespace std;
struct ppap
{int a,b,c;
}s[500010];
struct Segment_Tree
{int min,add;long long sum;
}t[2000010];
int n,p,q,r,maxb[500010],maxc[500010];
long long ans;
int cmp(const ppap &a,const ppap &b)
{return a.a<b.a;
}
void spread(int p,int l,int r)
{int mid=(l+r)/2;t[p*2].add=t[p*2+1].add=t[p*2].min=t[p*2+1].min=t[p].add,t[p*2].sum=(mid-l+1)*t[p].add,t[p*2+1].sum=(r-mid)*t[p].add,t[p].add=0;
}
int find(int p,int l,int r,int x)
{if(l==r) return (t[p].min<x?l:l+1);if(t[p].add) spread(p,l,r);int mid=(l+r)>>1;if(t[p*2].min<x) return find(p*2,l,mid,x);else return find(p*2+1,mid+1,r,x);
}
void change(int p,int l,int r,int L,int R,int d)
{if(L<=l&&r<=R){t[p].min=t[p].add=d,t[p].sum=(r-l+1)*d;return;}if(t[p].add) spread(p,l,r);int mid=(l+r)/2;if(L<=mid) change(p*2,l,mid,L,R,d);if(R>mid) change(p*2+1,mid+1,r,L,R,d);t[p].sum=t[p*2].sum+t[p*2+1].sum,t[p].min=min(t[p*2].min,t[p*2+1].min);
}
long long Ask(int p,int l,int r,int L,int R)
{if(L<=l&&r<=R) return t[p].sum;if(t[p].add) spread(p,l,r);int mid=(l+r)/2;long long ans=0;if(L<=mid) ans+=Ask(p*2,l,mid,L,R);if(R>mid) ans+=Ask(p*2+1,mid+1,r,L,R);return ans;
}
long long ask(int b,int c)
{int x=find(1,1,r,b);if(x<=c) return 1ll*(c-x+1)*b-Ask(1,1,r,x,c);return 0;
}
int main()
{freopen("whiskey.in","r",stdin);freopen("whiskey.out","w",stdout);scanf("%d%d%d%d",&n,&p,&q,&r);for(int i=1;i<=n;i++) scanf("%d%d%d",&s[i].a,&s[i].b,&s[i].c);sort(s+1,s+n+1,cmp);for(int i=n;i;i--) maxb[i]=max(maxb[i+1],s[i].b),maxc[i]=max(maxc[i+1],s[i].c);for(int i=1;i<=n;i++){long long Ans=ask(q,r)-ask(maxb[i],r)-ask(q,maxc[i])+ask(maxb[i],maxc[i]);ans+=Ans*(s[i].a-s[i-1].a);int x=find(1,1,r,s[i].b);if(x<=s[i].c) change(1,1,r,x,s[i].c,s[i].b);}printf("%lld",ans+1ll*(p-s[n].a)*ask(q,r));
}

DTOJ3704 威士忌(whiskey)相关推荐

  1. 威士忌(whiskey)

    威士忌(whiskey) 威士忌(whiskey) 题目描述 Alan 喝了假威士忌,想问你一个问题: nvliu66 推荐大家读三本书<百年孤独>.<城市发展史>.<美 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. netty服务器定时发送消息,netty+websocket+quartz实现消息定时推送
  2. CS294-112 深度强化学习 秋季学期(伯克利)NO.17 Meta-learning and parallelism
  3. 山东理工大学第十二届ACM程序设计竞赛 - Cut the tree(树上启发式合并+线段树)
  4. python输出举例_python字符串格式化输出及相关操作代码举例
  5. element 项目 示例_Java ArrayDeque element()方法与示例
  6. 锐捷多网卡解决方案 与当前环境冲突(Code 2)
  7. “拖欠货款、裁员降薪”,这家生鲜电商平台无奈回应...
  8. design php 如何使用ant_Ant Design Pro如何调用接口 | Ant Design Pro渲染数据 绑定数据...
  9. 从办公桌可以看透一个人
  10. 南宁研祥智谷远程预付费电能管理系统的应用
  11. element tree不刷新视图_安卓从入门到进阶第五章(视图查看)
  12. vb6引用vbRichClient5 下载对象 cDownloads 简单示例
  13. Python-爬取历史地震数据并可视化
  14. SMART PLC PID仿真 (SMART PID仿真库使用说明)
  15. EpiDope:用于线性B细胞表位预测的深度神经网络
  16. 深入浅出理解SVM支持向量机
  17. 创龙SOM-TL437xF 核心板简介(二)
  18. 触摸!天空龙 - 锻炼极速反应力
  19. html版本的网站地图只适合,网站地图-乐云SEO优化知识
  20. 打光在绘画中的重要性有多重要?

热门文章

  1. DBCP连接池配置优化分析
  2. 原光明中医函授大学教材
  3. 英伟达首席科学家:深度学习硬件的过去、现在和未来
  4. Aras Innovator PLM二次开发
  5. oracle expdp jobname,【EXPDP/IMPDP】数据泵 job_name参数的使用
  6. Failed to start LSB: Kurento Media Server daemon. kurento-media-server 启动失败的解决办法
  7. 针对豆瓣TOP250电影知识图谱的构建(Python+neo4j)
  8. PHP域名whois查询代码(数据源万网、新网)
  9. 菜鸟学院~沉寂近30年后火了!存内计算如何打破AI算力瓶颈?
  10. mysql入门 博客园_FreeSql (一)入门 – FreeSql – 博客园