F - Rook on Grid 矩阵 侧面视角 树状数组

两种走法

先下再右 吃到的就是Li-1个

先右再下 就吃剩的哈哈 每个Li挡住的阴影部分 才是有效的吃到部分

关于阴影 🔥可以想象从矩阵右侧有光线照进来。然后被障碍物挡住的那些空格。

处理方式可以按照列扫过去。一边用树状数组维护那些有阴影的行

实现的主要部分就是怎么去维护那些阴影。

小tip:>=ri都当做第一列开始就有阴影
题目

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ll __int128_t
#define ar array<int, 2>
#define arr array<int, 3>
int  n, m, k, inf = 1LL << 61, mod = 998244353;// 1e9+7;
const int N = 5e5 + 50;
int tr[N + 1];
void add(int x, int v) {
	while (x <= N) {//这个N-1变量是开放的。。是个隐患。。
		tr[x] += v, x += x & (-x);
	}
}
int query(int x) {
	int s = 0;
	while (x) {
		s += tr[x], x -= x & (-x);
	}
	return s;
}
void solve() {
	cin >> n >> m >> k;
	vector<int>l(n + 1, m + 1), r(m + 1, n + 1);//这边我们统计非法的第一个位置
	for (int i = 1; i <= k; ++i) {
		int x, y;
		cin >> x >> y;
		l[x] = min(l[x], y);
		r[y] = min(r[y], x);
	}

	int ans = 0;
	vector<int>mp[m + 2];// 他有可能是m+1 。所以这里要开大点
	//计算 先下再右
	for (int i = 1; i < r[1]; ++i) { 
		ans += l[i] - 1;
		mp[l[i]].push_back(i);
	}

	for (int i = r[1]; i <= n; ++i)//>=r[i]都当做第一列开始就有阴影
		mp[1].push_back(i);

    //先右再下
	for (int i = 1; i < l[1]; ++i) {
		ans += query(r[i] - 1);
		for (int j : mp[i])
			add(j, 1);
	}

	cout << ans;
};


// 这题看似简单。。但是实际上是一类题目的典型处理方式。。

signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout << fixed << setprecision(15);
#ifdef DEBUG
	freopen("../1.in", "r", stdin);
#endif
	//init_f();
	//init();
	//expr();
	// int T; cin >> T; while(T--)
	solve();
	return 0;
}
相关推荐
yi01122 分钟前
DAY17: LeetCode 139|单词拆分:从“把单词删掉”到用 DP 记录合法切口
人工智能·笔记·python·算法·leetcode·动态规划
陈希瑞34 分钟前
LongCat-2.5-Preview 的web逆向能力实测
人工智能·算法·wasm
tangguofeng2 小时前
基于分治策略的循环赛日程表问题的思路讲解
算法
起个名字费劲死了2 小时前
VisionMaster集成深度学习算法(基础狗)
人工智能·深度学习·算法
lengxuenong2 小时前
枚举例题分析
c++·算法·青少年编程
Navigator_Z3 小时前
LeetCode //C - 1269. Number of Ways to Stay in the Same Place After Some Steps
c语言·算法·leetcode
2601_965742223 小时前
短视频脚本创作方法分享:本地生活类账号的起步思路
大数据·人工智能·算法·ai·新媒体运营·生活
55873生态系统手记3 小时前
读完 55873 资产钱包的技术栈,我重新理解了 "合规钱包" 应该长什么样
算法·架构
旋生万物3 小时前
素数螺旋映射 $z_n=n^{1+i}$ 的角分布统计检验与零模型对比
大数据·前端·人工智能·算法·云原生·螺旋生成论·螺旋相位
HRTOS3 小时前
HRTOS Shell继续完善:优化printf缓冲区与字符串越界保护,国庆后随新版本更新
运维·单片机·嵌入式硬件·算法·51单片机