news 2026/4/18 5:32:07

ABC331D Tile Pattern

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ABC331D Tile Pattern

原题

题目描述

有一个 10^9 乘 10^9的方格网格。让 (i,j)表示从上往下数第 (i+1)行、从左往右数第 (j+1) 列的方格

每个方格要么是黑色要么是白色。方格 (i,j)的颜色由字符 P[i mod N][j mod N]表示,其中B表示黑色,W表示白色。这里,a mod b表示a除以b的余数。

回答 Q个查询。

每个查询给出四个整数 A,B,C,D要求你找出以 (A,B)为左上角、(C,D)为右下角的矩形区域内包含的黑色方格数量。

题目思路

令f(x,y)为满足条件的黑色方格的个数,则所求的答案就是f(c+1,d+1)-f(a,d+1)-f(c+1,b)+f(a,b)。但是如直接计算肯定比较麻烦,可以利用他的一些性质。当x=8,y=7时,如右图所示,可以将其分解为A*(x/n)*(y/n)、B*(y/n)、C*(x/n),D。其中A=f(n,n),B=f(x%n,n),C=f(y%n,n),D=f(x%n,y%n)。即可以将其分解为f(n,n)*(x/n)*(y/n) + (y/n)*f(x%n,n) + (x/n)*f(n,y%n) + f(x%n,y%n)。最后f(1,1)~f(n,n)可以使用前缀和的方式快速求出。

#include<bits/stdc++.h> using namespace std; using LL=long long;//给long long去个别名LL const int N=1010; int n,q,h[N][N]; LL f(LL x,LL y){ if(x<=n&&y<=n){ return h[x][y]; } return f(n,n)*(x/n)*(y/n)+(x/n)*f(n,y%n)+(y/n)*f(x%n,n)+f(x%n,y%n); } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>q; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ char c; cin>>c; h[i][j]=(c=='B')+h[i-1][j]+h[i][j-1]-h[i-1][j-1]; } } //前缀和优化↑ while(q--){//处理q次查询 int a,b,c,d; cin>>a>>b>>c>>d; c++; d++; cout<<f(c,d)-f(a,d)-f(c,b)+f(a,b)<<"\n"; } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:25:35

12306反反爬虫策略:Python网络请求优化实战

一、引言&#xff1a;12306反爬虫的严峻挑战 12306作为中国铁路售票系统&#xff0c;每天面临着海量的抢票请求&#xff0c;其反爬虫机制异常严格&#xff1a;IP封锁、验证码、请求频率限制、会话追踪等。要在这样的环境下实现稳定抢票&#xff0c;必须设计一套完善的反反爬虫策…

作者头像 李华
网站建设 2026/4/18 3:27:25

网络编程入门:从IP到TCP全解析

一、引言昨天讲了闭包与装饰器,今天给大家讲一下网络编程.二、计算机网络概述1.网络的概念网络就是将具有独立功能的多台计算机通过通信线路和通信设备连接起来&#xff0c;在网络管理软件及网络通信协议下&#xff0c;实现资源共享和信息传递的虚拟平台。2.为什么要学网络学习…

作者头像 李华
网站建设 2026/4/18 3:26:53

基于Java的安全生产投诉智慧管理系统的设计与实现全方位解析:附毕设论文+源代码

1. 为什么这个毕设项目值得你 pick ?安全生产投诉智慧管理系统结合了会员管理、投诉处理等17个模块&#xff0c;旨在提升企业安全管理效率。与传统选题相比&#xff0c;本系统功能更全面、创新性强且实用性高。不仅涵盖传统的事故管理、培训管理和设备维护记录管理&#xff0c…

作者头像 李华
网站建设 2026/4/17 8:03:14

LangChain RAG-递归文档树检索实施高级RAG优化理解

01. RAPTOR 递归文档树策略 在传统的 RAG 中&#xff0c;我们通常依靠检索短的连续文本块来进行检索。但是&#xff0c;当我们处理的是长上下文时&#xff0c;我们就不能仅仅将文档分块嵌入到其中&#xff0c;或者仅仅使用上下文填充所有文档。相反&#xff0c;我们希望为 LLM…

作者头像 李华