news 2026/6/23 0:13:22

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/6/13 13:14:04

css3如何引入外部字体

如果需要外部字体&#xff0c;电脑上没有&#xff0c;这时候可以用css3上新引入的font-face属性它的语法格式是font-face {font-family:自定义字体名称src:url(字体路径);}比如需要使用叫字体家AI北京长城体.ttf的字体&#xff0c;代码如下font-face {/*定义字体的名称*/font-f…

作者头像 李华
网站建设 2026/6/22 22:16:22

OkDownload入门指南:如何在5分钟内搭建你的第一个高效下载引擎

OkDownload入门指南&#xff1a;如何在5分钟内搭建你的第一个高效下载引擎 【免费下载链接】okdownload A Reliable, Flexible, Fast and Powerful download engine. 项目地址: https://gitcode.com/gh_mirrors/ok/okdownload 想要构建一个可靠、灵活且高效的下载系统吗…

作者头像 李华
网站建设 2026/6/22 14:51:25

权威榜单发布:浙江亿企邦领衔外贸网站引流推广行业

随着外贸行业数字化转型的深入&#xff0c;企业对专业化、多渠道、智能化的海外营销服务的需求日益迫切。为帮助广大外贸企业甄选优质服务伙伴&#xff0c;基于企业综合服务能力、技术创新水平、行业口碑与市场表现等多维度评估&#xff0c;现正式发布2025年度外贸网站引流推广…

作者头像 李华
网站建设 2026/6/21 13:59:10

新能源电动汽车VCU、Hil、BMS及硬件在环仿真建模说明书

新能源电动汽车VCUhilBMShil硬件在环仿真 文件包含电动汽车整车建模说明书&#xff0c;模型包含驾驶员模块&#xff0c;仪表模块&#xff0c;BCU整车控制器模块&#xff0c;MCU电机模块&#xff0c;TCU变速箱模块&#xff0c;减速器模块&#xff0c;BMS电池管理模块&#xff0c…

作者头像 李华
网站建设 2026/6/22 23:37:38

Linux中文手册页项目:让命令行帮助文档更易懂

Linux中文手册页项目&#xff1a;让命令行帮助文档更易懂 【免费下载链接】manpages-zh 项目地址: https://gitcode.com/gh_mirrors/ma/manpages-zh 作为Linux用户&#xff0c;你是否曾因英文手册页的阅读障碍而感到困扰&#xff1f;中文手册页项目&#xff08;manpage…

作者头像 李华
网站建设 2026/6/21 23:41:08

高效开发利器:renren-ui组件库核心组件深度解析

高效开发利器&#xff1a;renren-ui组件库核心组件深度解析 【免费下载链接】renren-ui renren-ui基于vue2、element-ui构建开发&#xff0c;实现renren-security后台管理前端功能&#xff0c;提供一套更优的前端解决方案。 项目地址: https://gitcode.com/renrenio/renren-u…

作者头像 李华