F - Simplified Reversi 矩阵侧边视角 修改

1 行修改的时候只🔥影响的是哪些位置 因为Queries are pairwise distinct.

也就是当前行修改过之后 当前行就不会重复修改。额。实际上如果没有这个条件也无所谓的 我们可以用一个vis来判重就行

2 用什么东西可以维护这样的区间修改

主要还是行列间的 查询和修改的互动。。还挺有意思
...

cpp 复制代码
void solve() {
	cin >> n >> m;
	f.build(1, 1, n - 1, n - 1); //(root,l,r,val) //我们这边用n-1 。。到时候-1 。。这样会更舒服一点。
	g.build(1, 1, n - 1, n - 1);

	int ans = (n - 2) * (n - 2);

	while (m--) {
		int o, i;
		cin >> o >> i;
		if (o == 1) {
			int t = g.query(1, i, i);// (root,l,r)我们要找到当前列。他能到的底部位置
			ans -= t - 1;
			f.update(1, 1, t, i - 1);//(root,l,r,val)列的底部位置 就是行 [1,t]需要更新能到的最远距离i
		} else {
			int t = f.query(1, i, i);//(root,l,r)上下相反就行了。。
			ans -= t - 1;
			g.update(1, 1, t, i - 1);
		}
	}

	cout << ans << '\n';
};

这代码省略了。。线段树主模版。。对线段树熟悉的。一般能看的懂。

相关推荐
Hello.Reader6 分钟前
决策树基础概论
算法·决策树
张焚雪9 分钟前
关于决策树的一些介绍
算法·决策树·机器学习
黄卷青灯7714 分钟前
matlab while (~feof(fid))语句解释
数据结构·算法·matlab·feof
梦想科研社31 分钟前
【无人机设计与控制】四旋翼飞行无人机姿态控制ADRC非线性自抗扰控制Simulink仿真
算法·数学建模·matlab·无人机
妄想...1 小时前
最大余额法,解决百分比计算相加不等于100%(扇形/饼图百分比使用的此算法)
前端·javascript·算法
鱼跃鹰飞1 小时前
Leetcode面试经典150题-148.排序链表
算法·leetcode·链表·面试
hummhumm1 小时前
数据库系统 第58节 数据库审计
网络·数据库·python·算法·oracle·java-ee·database
summ1ts2 小时前
P3489 [POI2009] WIE-Hexer
c++·算法·图论·dijkstra·状态压缩
rylzdz3 小时前
JVM四种垃圾回收算法以及G1垃圾回收器(面试)
jvm·算法·面试