news 2026/6/10 22:59:19

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/10 2:00:51

Tengine实战指南:如何构建高性能Web服务器与负载均衡系统

Tengine实战指南&#xff1a;如何构建高性能Web服务器与负载均衡系统 【免费下载链接】tengine A distribution of Nginx with some advanced features 项目地址: https://gitcode.com/gh_mirrors/tengi/tengine 当您的Web服务面临高并发访问压力&#xff0c;传统的负载…

作者头像 李华
网站建设 2026/6/10 19:26:26

Tekla Structures智能标注调图插件:5大核心功能全面提升钢结构详图效率

Tekla Structures智能标注调图插件&#xff1a;5大核心功能全面提升钢结构详图效率 【免费下载链接】Tekla自动标注调图插件 Tekla自动标注调图插件是一款专为Tekla Structures设计的强大工具&#xff0c;旨在提升钢结构详图制作效率。该插件能够自动识别详图中的梁、柱、板等元…

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

实战指南:BootstrapBlazor导航组件在企业级应用中的高效运用

实战指南&#xff1a;BootstrapBlazor导航组件在企业级应用中的高效运用 【免费下载链接】BootstrapBlazor 项目地址: https://gitcode.com/gh_mirrors/bo/BootstrapBlazor 技术痛点与价值分析 在现代企业级Web应用开发中&#xff0c;导航系统的设计直接影响用户体验和…

作者头像 李华
网站建设 2026/6/10 12:55:32

随机车流和桥梁的相爱相杀就像开盲盒,你永远不知道下一辆重卡会怎么虐桥。今天咱们整点硬核但能实操的活儿——用代码让桥梁在虚拟世界里接受百万辆车的疯狂碾压

随机车流模拟仿真&#xff0c;搭配大跨径非线性桥梁车辆效应影响面、影响线提取&#xff0c;用于快速进行随机车流仿真分析 获取计算所需吊杆应力时程、位移时程、弯矩剪力时程等数据 结果稳定可靠&#xff0c;自定义车型和车流量&#xff0c;程序一键生成计算分析结果&#xf…

作者头像 李华
网站建设 2026/6/10 15:07:32

前端数据存储新思路:store.js架构解析与应用实战

前端数据存储新思路&#xff1a;store.js架构解析与应用实战 【免费下载链接】store.js Cross-browser storage for all use cases, used across the web. 项目地址: https://gitcode.com/gh_mirrors/st/store.js 在复杂的前端应用开发中&#xff0c;你是否曾为数据存储…

作者头像 李华