【JZOJ 5417】【NOIP2017提高A组集训10.24】方阵

JZOJ5417. 【NOIP2017提高A组集训10.24】方阵 Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。 这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Aij。 校长会定期检查一个p*q的方阵,询问这个方阵的学生能力值之和,或是学生能力值的最大值,或是学生能力值的最 阅读详情

Description

为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。
这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Aij。
校长会定期检查一个p*q的方阵,询问这个方阵的学生能力值之和,或是学生能力值的最大值,或是学生能力值的最小值。由于校长不喜欢一个方阵长宽之比差太多,他每次询问的方阵的长不会超过宽的两倍。作为校庆筹办组组长的你,应该迅速并准确的回答校长所问的问题。

Solution

用分块+RMQ,
块的大小设为16,这样可以用倍增来预处理,
复杂度:O(n2log(n)∗4+16q)

Code

#include <cstdio>
#include <algorithm>
#include <cmath>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
#define min(q,w) ((q)>(w)?(w):(q))
#define max(q,w) ((q)<(w)?(w):(q))
using namespace std;
const int N=1000;
int read(int &n)
{
    char ch=' ';int q=0,w=1;
    for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
    if(ch=='-')w=-1,ch=getchar();
    for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;
}
int m,n,ans,m1;
int a[N][N],sum[N][N];
int lg[N],er[11];
int MI[10][N][N],MX[10][N][N];
int MI1[10][N][N],MX1[10][N][N];
int main()
{
    freopen("phalanx.in","r",stdin);
    freopen("phalanx.out","w",stdout);
    int q,w,x,y,_;
    read(n),read(m);
    m1=16;
    fo(i,1,n)fo(j,1,m)
    {
        sum[i][j]=read(a[i][j])+sum[i-1][j]-sum[i-1][j-1]+sum[i][j-1];
        MX1[0][i][j]=MI1[0][i][j]=MI[0][i][j]=MX[0][i][j]=a[i][j];
    }
    fo(i,1,n)lg[i]=log2(i);
    er[1]=1;fo(i,2,10)er[i]=er[i-1]<<1;
    fo(k,1,9)fo(i,1,n-er[k])fo(j,1,m)
    {
        MI1[k][i][j]=MI[k][i][j]=min(MI[k-1][i][j],MI[k-1][i+er[k]][j]);
        MX1[k][i][j]=MX[k][i][j]=max(MX[k-1][i][j],MX[k-1][i+er[k]][j]);
    }
    fo(k,0,9)fo(l,1,4)fo(i,1,n-er[k])fo(j,1,m-er[l])
    {
        MI1[k][i][j]=min(MI1[k][i][j],MI1[k][i][j+er[l]]);
        MX1[k][i][j]=max(MX1[k][i][j],MX1[k][i][j+er[l]]);
    }
    read(_);
    fo(I,1,_)
    {
        char ch=' ';
        for(;ch<'A'||ch>'Z';ch=getchar());
        ch=getchar();
        read(q),read(w),read(x),read(y);
        q++,w++,x++,y++;
        if(ch=='U')
        {
            ans=sum[x][y]-sum[x][w-1]+sum[q-1][w-1]-sum[q-1][y];
        }else if(ch=='I')
        {
            ans=1e9;
            int e=lg[x-q+1];
            int t=x+1-er[e+1],i;
            for(i=w;i+m1<=y;i+=m1)ans=min(ans,min(MI1[e][q][i],MI1[e][t][i]));
            for(;i<=y;i++)ans=min(ans,min(MI[e][q][i],MI[e][t][i]));
        }else 
        {
            ans=-1;
            int e=lg[x-q+1];
            int t=x+1-er[e+1],i;
            for(i=w;i+m1<=y;i+=m1)ans=max(ans,max(MX1[e][q][i],MX1[e][t][i]));
            for(;i<=y;i++)ans=max(ans,max(MX[e][q][i],MX[e][t][i]));
        }
        printf("%d\n",ans);
    }
    return 0;
}
jzoj5417【NOIP2017提高A组集训10.24】方阵 题目Time Limits: 2000 ms Memory Limits: 262144 KBDescription题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。 这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Aij。 校长会定 阅读详情

相关推荐

JZOJ5456. 【NOIP2017提高A组冲刺11.6】奇怪的队列

nodgd的粉丝太多了,每天都会有很多人排队要签名。 今天有

lijf2001的博客 490

10.25T2 二维线段树

Description   为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。  这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Ai,j。  校长会定期检查一个p*q的方阵,询问这个方阵的学生能力值之和,或是学生能力值的最大值,或是学生能力值的最小值。由于校长不喜欢一个方阵长宽之比差太多,他每次询问的方阵的长不会超过宽的两倍。作为校庆筹办组组长的你...

weixin_34010949的博客 167

有限元法(Finite Element Method,FEM)原理详解

有限元法( FEM )是一种流行的方法,用于数值求解工程和数学建模中出现的微分方程。

车手只需要车和手,压力来自轮胎 7万+

【JZOJ5417】方阵

Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。 这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Aij。 校长会定期检查一个p*q的方阵,询问这个方阵的学生能力值之和,或是学生能力值的最大值,或是学生能力值的最

sadnohappy 646

能量机关 STM32HAL库开发大疆A板WS2812B彩灯(PWM+DMA)

本文主要目的是为了制作RoboMaster比赛能量机关的灯条控制,模拟比赛场中大符,搭建出类似场地道具,以供视觉测试 使用的是RoboMaster开发板A型,芯片为STM32F427IIH6,使用的灯条为WS2812B。 采用PWM+DMA控制,使用CUBEMX配置底层,keil5编辑烧录代码 实现:一共五片扇叶,每片扇叶均实现流水灯+常亮颜色 参考文章在后面会标记出来

m0_51756449的博客 4291

缺陷检测-金属表面缺陷检测

1介绍 缺陷检测是工业视觉技术中最重要的组成部分。业务广泛,场景丰富,技术难点高、工作量大。针对不同的场景,选择不同的相机和

huneng1991的专栏 5249

【NOIP2017提高A组集训10.24】合影

Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 经过一天的忙碌,志愿者们结束了他们的工作,准备站在一排合影留念。 现在总共有n名志愿者留下来准备合影。不过,进程并不是那么顺利,有些同学提出了一些奇奇怪怪的要求(每个人最多只会提出一个):他必须站在另外一个同学的左边(不一定相邻),仁慈的老师满足了他们的要求。

玫葵之蝶 792

Cheat Engine实战:多级指针逆向破解游戏内存的5个关键步骤(附C++模拟代码)

本文详细解析了使用Cheat Engine进行多级指针逆向破解游戏内存的完整流程。通过5个关键步骤,从定位动态地址到逐层追踪指针链,最终构建稳定指针路径。文章结合C++模拟代码,深入剖析了指针链的底层汇编原理,并提供了高级排查技巧,帮助读者掌握逆向工程中的核心内存追踪技术。

weixin_29239279的博客 306

JZOJ 5417. 【NOIP2017提高A组集训10.24】方阵

JZOJ 5417. 【NOIP2017提高A组集训10.24】方阵 Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出。 这个方阵是一个n*m的矩形,第i行第j列有一名学生,他有一个能力值Aij。 校长会定期检查一个p*q的方阵,询问这个

Felix-Lee的博客 511

基于STM32F1XX 、HAL库的OPT4001-Q1环境光传感器驱动应用C语言程序设计

OPT4001-Q1 的输出是半对数 的,具有 9 个二进制对数满量程照度范围,每个范围内具有高度线性响应,使得 PicoStar™ 型号的测量能力为 312.5μlux 至 84klux,USON 型号的测量能力为 400µlux 至 107klux。// 禁用中断(示例)

PP_Cottage的博客 461

C# 实现 Modbus 通信全教程(支持 TCP 和 RTU,含完整错误处理)

环境准备:安装 NModbus4 库,明确设备参数(IP/串口、地址、数据类型);连接设备:TCP 用 TcpClient,RTU 用 SerialPort,注意超时和参数匹配;读写数据:根据数据类型调用对应方法(读保持寄存器用 ReadHoldingRegisters);错误处理:捕获连接、超时、协议等异常,针对性排查问题。掌握这些后,即可轻松实现与工业设备的 Modbus 通信,为上位机开发提供稳定的数据交互能力。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2066

JZOJ5417. 【NOIP2017提高A组集训10.24】 二维线段树

题意:给一个矩阵,q次询问子矩阵,查询最大值最小值,区间和, 每个询问的方阵的长不超过宽的两倍。屁股后面那个两倍什么玩意儿的你想用就用,我不想用,懒得打什么鬼畜的rmq,去他的,二维线段树多爽,直接过。 然后我比赛把前缀和打错了啊啊啊啊啊!!! /喷血 犯了史上最傻逼错误没有之一,更让我绝望的是,我打拍的时候直接把前缀和那个地方黏过去用所以根本没拍出来/喷血。 血的教训,希望我能铭记。#inc

老臣 398

【雕爷学编程】Arduino动手做(75)---TTL转RS-485模块之二线制可以实现真正的多点双向通信

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验七十五:TTL转RS-485模块 MAX485 RS485模块 MAX485 是一个8.

雕爷学编程 1万+

【NOIP 2017】赛季正式打响!

传送门: NOIP2017 检查清单 2017的赛季正式打响了!加油干啊同志们,这里就记录一下我到底干了什么吧~,10_21【JZOJ 5407】【NOIP2017提高A组集训10.21】Deep 【JZOJ 5408】【NOIP2017提高A组集训10.21】Dark 【JZOJ 5409】【NOIP2017提高A组集训10.21】Fantasy小结T1没有去尝试找规律,不能懒啊 T3有

1135

ComfyUI整合包V8中文版最新版介绍

和普通AI绘图网页不同,它把图像生成的每一个步骤拆分成一个个"节点",用连线把它们串起来,形成工作流。里面包含ComfyUI内核、Python运行环境、常用插件、部分预置模型,还有一个叫"绘世启动器"的图形界面管理工具。网上的对比数据显示,WebUI最低需要4G显存,ComfyUI最低3G显存就能运行。可以在里面管理插件、切换模型路径、设置显存模式、查看日志报错,还有"疑难解答"功能,遇到报错可以先扫描一下看是不是已知问题。原版ComfyUI的界面是英文的,右键菜单、节点名称全是英文。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 5226

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【2018/10/11】T1 - 水题 - 方阵

方阵 描述 Tom 最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的 Tom 打算在 电脑上还原这个伟大的布局。 他努力钻研,发现秦始皇布置兵马俑是有一定规律的。兵马俑阵总共有 n 行 m 列,秦始 皇在布置的时候每次会指定一行或一列,然后指定一个兵种,使得这一行或者这一列上全 部放上这一个兵种。如果这一行上以前放过其它的兵种,那么他会拔掉以前的兵种改成现在 他命令的兵种。 ...

Faithfully-xly的博客 301

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【NOIP2017提高A组集训10.22】幸运值

Description校庆志愿者小Z在休息时间和同学们玩卡牌游戏。一共有n张卡牌,每张卡牌上有一个数Ai,每次可以从中选出k张卡牌。一种选取方案的幸运值为这k张卡牌上数的异或和。小Z想知道所有选取方案的幸运值之和除以998244353的余数。Input输入的第一行有两个整数n和k。 第二行有n个整数,表示序列A。Output一个整数表示答案。Sample Input输入1: 3 2 1 2 3

玫葵之蝶 631

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NOIP2017列队

Sylvia 是一个热爱学习的女♂孩子。 前段时间,Sylvia 参加了学校的军训。众所周知,军训的时候需要站方阵。 Sylvia 所在的方阵中有名学生,方阵的行数为 n,列数为 m。 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中 的学生从 1 到 编上了号码(参见后面的样例)。即:初始时,第 i行第 j列 的学生的编号是。 然而在练习方阵的时候,经常会有学生因为各种各样...

Freopen的博客 740

【JZOJ 5409】【NOIP2017提高A组集训10.21】Fantasy

DescriptionY sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}。 对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大。 然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间。 你需要告诉她,最大的幻境值之和。Solution1先做一遍前缀和, 对于每个位置i,它所对应的合法右端点

742

JZOJ5379. 【NOIP2017提高A组模拟9.21】Victor爱数字 数位DP

题意:求a,b的区间内有多少个数字,他中间不包含回文串。a,b<=1e18 智障预定。 一开始觉得这不是裸题吗,随便记录一下前面或者后面两个就好了,然后感觉十分模板,然后打了个windy数的模板以后开始调,刚开始还好,然后发现边界处理有点问题,然后觉得不妥,xjb调着调着样例都过不了了,然后直接掀桌弃疗。 主要是按照那题的方法一口气做到最后,边界上面总是会少计算一个,而且是每一部分少计算一个,

老臣 375

【JZOJ 5419】【NOIP2017提高A组集训10.24】筹备计划

Description校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典。 学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[1,n]的整数位置上。 老师们选择的地点是会根据参加典礼的学生位置来决定的,具体来说:定义一个位置的距离和为该位置到所有参加学生的距离之和。如果一个位置的距离和最小,且它比所有和它距离和相等的位置的位置更靠左,则老师们会选择这个位置。

551

JZOJ 5440. 【NOIP2017提高A组冲刺11.1】背包

JZOJ 5440. 【NOIP2017提高A组冲刺11.1】背包 Description蛤布斯有n种商品,第i种物品的价格为ai,价值为bi。有m个人来向蛤布斯购买商品,每个人每种物品只能购买一个。第j个人有cj的钱,他会不停选择一个能买得起的价格最高的商品买走(如果有多个则选择价值最高的)。你需要求出每个人购买的物品的价值和。Input第一行两个正整数n,m。接下来n行每行两个正整数ai,bi。接下来m行每

Felix-Lee的博客 469

JZOJ 5419. 【NOIP2017提高A组集训10.24】筹备计划

JZOJ 5419. 【NOIP2017提高A组集训10.24】筹备计划 Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典。 学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[1,n]的整数位置上。 老师们选择的地点是会根据参加典礼的学生位置来决定的,具体来说:定义一个位置的距离和为该位置到所有参加学

Felix-Lee的博客 495

JZOJ 5417 方阵

方阵Description给出一个nn*mm的矩形AA,第ii行第jj列的值为Ai,jA_{i,j}。 给出qq个询问,每次询问某个在AA内的矩阵的最大值,最小值以及和。Data Constraintnn,mm<=800800,qq<=500000500000,00<=Ai,jA_{i,j}<=30003000,每个询问的方阵的长不超过宽的两倍Solution方法一 一看到这题直接上二维RMQR

XianHaoMing的博客 477

JZOJ5418. 【NOIP2017提高A组集训10.24】 树形DP+组合数

题意:给出n个数,有一些特定要求,形如x,y表示x一定要在y的左边,求排列方案数。一早上死想序列做法,想到了一下连边然后否决了。。然后想出了50分的容斥或者状压,然后觉得100分是不是再优化一下啥的,然后就再没脱出坑。。 事实证明部分分做法不一定是正解做法的暴力版本。。 首先有一个条件就是每一个人最多提出一个要求。 那么连边后的dag是一个森林,不相交的n棵树。 那么对于每一棵树,我们从下往

老臣 404

codeup27968 方阵填数(NOIP1995普及组第2题)

codeup27968 方阵填数(NOIP1995普及组第2题) 时空限制 1000ms/128MB 题目描述 在一个N*N的方阵中,填入1,2,……N*N个数,并要求构成如下的格式: 例如: N=5 13 14 15 16 1 12 23 24 17 2 11 22 25 18 3 10 21 20 19 4 9 8 7 6 5 例如:N=6 16 17 18 19 20 1 15...

H优快云 3848
上一篇: 【JZOJ 5416】【NOIP2017提高A组集训10.22】密码
下一篇: 【JZOJ 5418】【NOIP2017提高A组集训10.24】合影
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值