红色的幻想乡

思路:

  线段树+容斥原理;

代码:

#include <bits/stdc++.h>
using namespace std;
#define maxn 100005
#define maxm maxn<<2
#define ll long long
class TreeType {private:int L[maxm],R[maxm],mid[maxm],dis[maxm];public:void build(int now,int l,int r){L[now]=l,R[now]=r,dis[now]=0;if(l==r) return;mid[now]=l+r>>1;build(now<<1,l,mid[now]),build(now<<1|1,mid[now]+1,r);}void updata(int now,int to){if(L[now]==R[now]){dis[now]^=1;return;}if(to<=mid[now]) updata(now<<1,to);else updata(now<<1|1,to);dis[now]=dis[now<<1]+dis[now<<1|1];}int query(int now,int l,int r){if(L[now]>=l&&R[now]<=r) return dis[now];int res=0;if(l<=mid[now]) res+=query(now<<1,l,r);if(r>mid[now]) res+=query(now<<1|1,l,r);return res;}
};
struct TreeType tree1,tree2;
int n,m,q;
inline void in(int &now)
{char Cget=getchar();now=0;while(Cget>'9'||Cget<'0') Cget=getchar();while(Cget>='0'&&Cget<='9'){now=now*10+Cget-'0';Cget=getchar();}
}
int main()
{in(n),in(m),in(q);tree1.build(1,1,n);tree2.build(1,1,m);int op,x1,y1,x2,y2;while(q--){in(op),in(x1),in(y1);if(op==1) tree1.updata(1,x1),tree2.updata(1,y1);else{in(x2),in(y2);ll ans1=tree1.query(1,x1,x2),ans2=tree2.query(1,y1,y2);printf("%lld\n",ans1*(y2-y1+1)+ans2*(x2-x1+1)-ans1*ans2*2);}}return 0;
}

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6979639.html

AC日记——红色的幻想乡 洛谷 P3801相关推荐

  1. AC日记——小书童——刷题大军 洛谷 P1926

    题目背景 数学是火,点亮物理的灯:物理是灯,照亮化学的路:化学是路,通向生物的坑:生物是坑,埋葬学理的人. 文言是火,点亮历史宫灯:历史是灯,照亮社会之路:社会是路,通向哲学大坑:哲学是坑,埋葬文科生 ...

  2. AC日记——[USACO07DEC]手链Charm Bracelet 洛谷 P2871

    题目描述 Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like t ...

  3. AC日记——最小路径覆盖问题 洛谷 P2764

    题目描述 «问题描述: 给定有向图G=(V,E).设P 是G 的一个简单路(顶点不相交)的集合.如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖.P 中路径可以从V 的任何一个顶点开 ...

  4. P3801 红色的幻想乡(树状数组)

    题目背景 蕾米莉亚的红雾异变失败后,很不甘心. 题目描述 经过上次失败后,蕾米莉亚决定再次发动红雾异变,但为了防止被灵梦退治,她决定将红雾以奇怪的阵势释放. 我们将幻想乡看做是一个 n \times ...

  5. 算法刷题【洛谷P1593】因子和(附等比数列求和公式推导)

    异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...

  6. 洛谷刷题C语言:Fergusonball Ratings、Don‘t Mozheng. /oh、gcd.、幻想乡扑克游戏、PMTD

    记录洛谷刷题C语言qaq [CCC2022 J2] Fergusonball Ratings 题目描述 现在有一个球队需要你评价. 球队中的第 i i i 个人进了 a i a_i ai​ 个球,犯规 ...

  7. 【洛谷3345_BZOJ3924】[ZJOI2015]幻想乡战略游戏(点分树)

    大概有整整一个月没更博客了 -- 4 月为省选爆肝了一个月,最后压线进 B 队,也算给 NOIP2018 翻车到 316 分压线省一这个折磨了五个月的 debuff 画上了一个不算太差的句号.结果省选 ...

  8. 洛谷-DFS-1101-单词方阵-个人AC题解及公共题解的笔记

    先上自己AC代码(博主这个代码修改过多次,只因代码长度过长) #include<bits/stdc++.h> using namespace std; #define MAXN 102 i ...

  9. 洛谷-DFS-1019-单词接龙-个人AC题解和公共AC题解笔记

    学习内容: 预处理 万能头文件 string的使用 话不多说,直奔主题 本人AC代码 #include<iostream> #include<cstdio> #include& ...

最新文章

  1. SQLite数据库操作
  2. 安装server 2012 时提示输入的密码不满足网络或组管理员设置的密码复杂度
  3. UrlRewrite(URL重写)--ASP.NET中的实现
  4. UE4 左右立体参数
  5. python常用模块教程_盘点Python常用的模块和包
  6. 北京文化:截至10月8日 来源于《我和我的家乡》的收益约为8000万元-1亿元
  7. 35岁以上的IT人士如果有一天被公司裁员了,该怎么办?
  8. json string 格式_Retrofit同时解析JSON和XML数据格式
  9. python进阶(一)关联sql的算法操作
  10. CentOS 7.6 安装 nginx,配置端口访问网站,切换root目录
  11. Linux 运维必备的 13 款实用工具,拿好了~
  12. mac brew 测速 软件_敏捷过程中的软件持续建模
  13. 浅谈使用实现FactoryBean接口的方式定义Bean
  14. java程序设计精编教程第3版电子版课后答案_java程序设计精编教程第3版答案
  15. 创新创业技术路线怎么写_【精选】如何撰写创新创业项目申请书.ppt
  16. 被黑多年的WPS上市,背后:雷军拒绝收购,死磕微软 31 年
  17. T430s BIOS白名单破解
  18. android添加一层半透明,android – 在imageview上添加半透明叠加层
  19. PHP数组内容制作分页功能
  20. VUE-Vuetify框架

热门文章

  1. kasp技术原理_KASP基因型测定技术在各个学科的应用实践(内附官方重要资料)...
  2. 最优化读书笔记R(一)
  3. 【Flink】Flink 源码阅读笔记(20)- Flink 基于 Mailbox 的线程模型
  4. 【Flink】Flink CDH6.3.2 下的yarn per job模式 savepoint和checkpoint,卡住,没有保存成功文件
  5. 95-38-040-Buffer-AbstractReferenceCountedByteBuf引用计数
  6. 【Flink】Flink Max 和 MaxBy的区别
  7. 《Elasticsearch 源码解析与优化实战》样章-第 6 章 数据模型
  8. 【Antlr】Antlr preview 不能使用了
  9. 【Flink】Flink No JAAS configuration section named Client ERROR:Authentication failed
  10. 【hortonworks/registry】诡异问题之启动了却无法访问