https://nanti.jisuanke.com/t/27118

在线段树上写了矩阵乘法,其实只是2*2的矩阵,手写转移似乎更好。

#include<bits/stdc++.h>
using namespace std;
const int mo = 323232323;
const int maxn = 1e5 + 100;
struct I_node{int p, q, x, y, flog, k;bool operator < (const I_node & u)const{if(x == u.x)return flog > u.flog;return x < u.x; }
}I[maxn * 2];
struct node{long long a[2][2];node(long long x = 0){for(int i = 0; i < 2; i++){for(int j = 0; j < 2; j++){a[i][j] = x;}}}node operator * (node u)const{node c(0);for(int i = 0; i < 2; i++){for(int k = 0; k < 2; k++){if(a[i][k])for(int j = 0; j < 2; j++){c.a[i][j] = (c.a[i][j] + a[i][k] * u.a[k][j]) % mo;} } }return c;}
}one, change;
node seg[maxn << 2];
void pushup(int node){seg[node] = seg[node << 1] * seg[node << 1 | 1];
}
void build(int l, int r, int node){if(l == r){seg[node] = one;return ;}int mid = (l + r) >> 1;build(l, mid, node << 1);build(mid + 1, r, node << 1 | 1);pushup(node);return ;
}
void update(int ind, int l, int r, int node){if(l == r){seg[node] = change;return ;}
//  cout << l << " " << r << endl;int mid = (l + r) >> 1;if(ind <= mid){update(ind, l, mid, node << 1);}else{update(ind, mid + 1, r, node << 1 | 1); }pushup(node);return ;
}
node query(int le, int ri, int l, int r, int node){if(l >= le && r <= ri){return seg[node];}int mid = (l + r) >> 1;if(le <= mid && ri > mid){return query(le, ri, l, mid, node << 1) * query(le, ri, mid + 1, r, node << 1 | 1); }else if(le <= mid){return query(le, ri, l, mid, node << 1);}else if(ri > mid){return query(le, ri, mid + 1, r, node << 1 | 1);}
}void pri(node u){for(int i = 0; i < 2; i++){for(int j = 0; j < 2; j++){cout << u.a[i][j] << " ";}cout << endl;}
}
int book[maxn];
long long ans[maxn];
int main(){one.a[0][1] = one.a[1][0] = 0;for(int i = 0; i < 2; i++){one.a[i][i] = 1;}int n, m, Q, l, r, y, tp, tq, x;cin >> n >> m >> Q;char type[2];int k = 0;int In = 0, Qn = 0;while(Q--){scanf("%s", type);if(type[0] == 'I'){k++;scanf("%d %d %d %d %d", &l, &r, &y, &tp, &tq);I[In].p = tp, I[In].q = tq, I[In].k = k, I[In].flog = 1, I[In].x = l, I[In].y = y;In++;I[In].p = tp, I[In].q = tq, I[In].k = k, I[In].flog = -1, I[In].x = r, I[In].y = y;In++;book[k] = 1;}else if(type[0] == 'Q'){scanf("%d %d %d", &x, &l, &r);I[In].p = l, I[In].q = r, I[In].x = x;I[In].k = Qn++;I[In].flog = 0;In++;}else{scanf("%d", &l);book[l] = 0;}}build(1, m, 1);sort(I, I + In);for(int i = 0; i < In; i++){if(I[i].flog == 0){// cout << I[i].flog << " " << I[i].x << " " << I[i].y << endl;node be(0);be.a[0][1] = 1;be = be * query(I[i].p, I[i].q, 1, m, 1);ans[I[i].k] = be.a[0][0];}else if(I[i].flog == 1){if(!book[I[i].k])continue;//  cout << I[i].flog << " " << I[i].x << " " << I[i].y << endl;change.a[0][0] = I[i].p;change.a[0][1] = 0;change.a[1][0] = I[i].q;change.a[1][1] = 1;update(I[i].y, 1, m, 1);}else{if(!book[I[i].k])continue;//    cout << I[i].flog << " " << I[i].x << " " << I[i].y << endl;change = one;update(I[i].y, 1, m, 1);}}for(int i = 0; i < Qn; i++){printf("%lld\n", ans[i]);}return 0;
}

贝壳找房户外拓展(中等) 扫描线相关推荐

  1. 贝壳找房算数(中等)

    题目链接:点击打开链接 描述 贝壳找房力求为每位用户找到满意的房子,最近贝壳找房通过大数据得出下面的一个结论, 求满足0<i,j<=n,f(i) * f(j)>0,且0 < g ...

  2. AI 搜房,贝壳找房的Milvus实践

    | 项目背景 贝壳作为一家房产服务互联网平台,如何在海量房源中选出能够快速成交的房源是对平台和经纪人来说都是一件非常重要同时具有挑战的事情,但是针对房型图,户型信息等一系列非结构化数据在平台中应该怎么 ...

  3. 连亏三年!贝壳找房在纽交所上市,市值233亿美元

    贝壳找房在美国纽交所成功上市,股票代码为BEKE. 贝壳找房此次首次公开发行,发行价为每股20美元,稀释后总市值达233亿美元,总募集资金约24.4亿美元. 华兴资本在此次交易中担任主承销商.华兴资本 ...

  4. 互联网晚报 | 05月11日 星期三 | 贝壳找房启动新一轮裁员;苹果宣布停产iPod touch;朴新教育否认“宣布破产”...

    知网称正在反思,将择机向社会公开整改措施 5月9日,同方股份针对投资者留言回应称:知网在进行反思,并研究进行经营模式优化改善,积极进行整改.知网会将相关整改措施择机向社会公开.同方知网(北京)技术有限 ...

  5. 现代汽车、欧莱雅、贝壳找房、信达生物、诺维信等公司高管变动

    一周企业高管变动要闻. 全球 韩国现代汽车集团(Hyundai Motor Group)首席副会长郑义宣14日升任集团新一任会长,作为现代集团的第三代继承人正式接班.这是现代汽车集团时隔20年正式换帅 ...

  6. 贝壳找房挖到AI大牛叶杰平,房产中介转型需要技术,高估值更需要

    杨净 发自 凹非寺  量子位 报道 | 公众号 QbitAI 前滴滴AI实验室负责人叶杰平,去贝壳找房了. 没错,从"行"到"住",从"车" ...

  7. 贝壳找房技术总监肖鹏:高速成长下的技术团队怎么带?

    本文根据肖鹏老师在[deeplus直播第248期]线上分享演讲内容整理而成.(文末有获取本期PPT&回放的方式,不要错过) 肖鹏 贝壳找房技术总监 贝壳系统平台中心技术总监,主要负责数据库.大 ...

  8. 贝壳找房《2018城市居住报告》:新一线租房量持续攀升

    2019年1月24日,贝壳找房发布<2018城市居住报告>,聚焦租房和二手房交易人群,盘点分析了北京.上海.深圳.南京.武汉.长沙.重庆.成都.合肥等9大房产交易城市现状.报告发现,过去一 ...

  9. 为公寓运营商提供SaaS管理系统,寓小二获贝壳找房5000万元A轮融资...

    消息,公寓SaaS管理平台寓小二已获得贝壳找房5000万元A轮融资.同时,贝壳找房CTO闫觅将会加入寓小二董事会. 本轮融资后,寓小二将扩大和升级产品技术团队,以及全国25城线下服务体系搭建,为不断增 ...

最新文章

  1. web前端开发怎么学,web教程资源
  2. NO。58 新浪微博顶部新评论提示层效果——position:fixed
  3. 设计模式(四)--代理模式
  4. C语言学习之用选择法对10个整数排序
  5. java项目经验行业_行业研究以及如何炫耀您的项目
  6. 2013年蓝桥杯模拟赛答案
  7. Groq新进展!谷歌TPU原班人马明年发布首款AI芯片
  8. ubuntu16.04配置opencv2、python2、cuda8.0、cudnn以及caffe
  9. 基于OWIN WebAPI 使用OAUTH2授权服务【授权码模式(Authorization Code)】
  10. 求解sinx的n次方积分
  11. 说课稿模板计算机,计算机系统的组成说课稿1模板.doc
  12. 数据结构与算法分析(五)队列
  13. python量化交易书籍推荐_量化交易的几本书籍介绍
  14. 搜索神器Android,网盘搜索神器
  15. 中职计算机教师考核工作总结,中职计算机教师教学工作总结
  16. oracle停止 sparc,我现在可以清楚地看到云已经消失了:Oracle 12c on-premises for Linux,SPARC...
  17. python学习知识点
  18. elementui去掉表格所有边框
  19. android studio识别不到夜神模拟器怎么办
  20. html5 xml在线编辑,xml在线(在线编辑xml文件)

热门文章

  1. 陈年咖啡豆是什么?陈年咖啡能喝吗?陈年咖啡有什么特别的?
  2. fc坦克大战游戏完美复刻
  3. Winedt/CTeX/LaTeX编辑器显示行号
  4. 学习笔记:强化学习与最优控制(Chapter 2)
  5. 教你看懂Code128条形码
  6. python -u xxx.py
  7. python七段数码管显示学号_python小实例——七段数码管绘制
  8. 暗影精灵5风扇怎么调_惠普HP暗影精灵5 Super游戏主机改装猫头鹰风扇攻略
  9. NVIDIA显卡架构
  10. 个推技术 | ETL工程师必看!超实用的任务优化与断点执行方案