hdu 1754 I Hate It(分块做法)

题意:中文题,不多解释

思路:这个题原本用线段树很容易做,但分块其实也很容易,对于分块的复杂度还不是很会计算,只知道是每次分为sqrt(n)块,然后一共有sqrt(n)块,其他地方直接暴力,这应该是hzw大牛里的第一类最简单的分块(跑的好像比线段树慢很多)

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+7;int n,m;
int block,a[maxn],num[maxn],maxe[maxn];void query(int l,int r)
{int cnt=0;for(int i=l;i<=min(num[l]*block,r);i++){cnt=max(cnt,a[i]);
//        printf("test %d %d\n",i,a[i+1]);
    }if(num[l]!=num[r]){for(int i=(num[r]-1)*block+1;i<=r;i++){cnt=max(cnt,a[i]);}}for(int i=num[l]+1;i<num[r];i++){cnt=max(cnt,maxe[i]);}printf("%d\n",cnt);
}
void update(int x,int y)
{a[x]=y;maxe[num[x]]=0;for(int i=(num[x]-1)*block+1;i<=(num[x]*block);i++){maxe[num[x]]=max(maxe[num[x]],a[i]);}
}
int main()
{while(~scanf("%d%d",&n,&m)){block=sqrt(n);
//        memset(a,0,sizeof(a));for(int i=1;i<=n;i++){scanf("%d",&a[i]);
//            printf("%d == %d\n",i,a[i]);num[i]=(i-1)/block+1;}memset(maxe,0,sizeof(maxe));for(int i=1;i<=n;i++){maxe[num[i]]=max(maxe[num[i]],a[i]);}char ch[5];while(m--){scanf("%s",ch);if(ch[0]=='Q'){int t1,t2;scanf("%d%d",&t1,&t2);query(t1,t2);}else{int t1,t2;scanf("%d%d",&t1,&t2);update(t1,t2);}}}return 0;
}
/*
5 6
1 2 3 4 5
Q 1 5
U 3 6
Q 3 4
Q 4 5
U 2 9
Q 1 5
*/

 

转载于:https://www.cnblogs.com/lalalatianlalu/p/8582777.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven(一)——快速上手Maven

文章目录Maven概述Maven简介Maven的安装Maven的基本使用IDEA配置Maven依赖管理依赖范围Maven概述 Maven是专门用于管理和构建Java项目的工具&#xff0c;它的主要功能有&#xff1a; &#xff08;一&#xff09;提供了一套标准化的项目结构 不同的IDE项目结构是不一样的&…

如何定制Activity的标题栏

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); //自定义标题栏 mWindow getWindow(); mWindow.setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.titlebar); titlebar.xml <?xml version"1.…

牛客网 牛客小白月赛1 H.写真がとどいています

H.写真がとどいています链接&#xff1a;https://www.nowcoder.com/acm/contest/85/H来源&#xff1a;牛客网这个题数乱了&#xff0c;导致wa了好几次。特别弱智&#xff0c;从A开始往上&#xff0c;就是A,B,C,D,E,F。A的下面就是G开始倒着&#xff0c;G,F,E。我智障&#xff0…

EntityFramework_MVC4中EF5 新手入门教程之三 ---3.排序、 筛选和分页

在前面的教程你实施了一套基本的 CRUD 操作&#xff0c;为Student实体的 web 页。在本教程中&#xff0c;您将添加排序、 筛选和分页到 StudentsIndex的功能。您还将创建一个页面&#xff0c;并简单分组。 下面的插图显示页面当你完成时的样子。列标题是链接&#xff0c;用户可…

eclipes快捷键

本文原创作者&#xff1a;pipi-changing 本文原创出处&#xff1a;http://www.cnblogs.com/pipi-changing/ Ctrl1 快速修复(最经典的快捷键,就不用多说了)CtrlD: 删除当前行 CtrlAlt↓ 复制当前行到下一行(复制增加)CtrlAlt↑ 复制当前行到上一行(复制增加)Alt↓ 当前行和下面一…

fluentd主从配置

fluentd是一个免费的、完全开源的日志管理工具&#xff0c;可以对日志进行收集、处理、存储。对于一些高流量的网站或者特殊的架构&#xff0c;需要fluentd高可用配置。 以下是在测试环境搭建模拟fluentd主从配置&#xff0c;模拟主从切换。 服务器 服务 192.168.199.1 elas…

Hadoop总结

目录 大数据概述 Hadoop大数据开发平台 资源管理YARN 分布式文件系统HDFS 非关系型数据库NOSQL 分布式数据库HBASE 批处理和MapReduce 数据仓库查询分析和Hive 基于内存计算的Spark 流计算和Flink 图计算和PREGEL Hadoop常用命令总结 大数据概述 大数据的4V&#x…

poj 2449

转自http://blog.csdn.net/sdj222555/article/details/7690081 题目大意就是给出一个图&#xff0c;然后给出一个起点个一个终点&#xff0c;求这两点间的第K短路。 本题中是可以走重复的路的&#xff0c;所以如果一张图中有一个环的话&#xff0c;无论求第几短路都是存在的。 …

CTS类型

类如果被封装&#xff0c;叫做密封类&#xff0c;密封类不能作为其他类的基类接口是抽象成员的集合&#xff0c;它在对象和对象用户间提供一个契约&#xff0c;CTS允许类实现任何数目的接口抽象类不能直接被创建&#xff0c;但可以用来为派生类型定义公共的行为&#xff0c;具体…

HDFS的常用操作

1、HDFS文件的权限以及读写操作 HDFS文件的权限&#xff1a; •与Linux文件权限类似 •r: read; w:write; x:execute&#xff0c;权限x对于文件忽略&#xff0c;对于文件夹表示是否允许访问其内容 •如果Linux系统用户zhangsan使用hadoop命令创建一个文件&#xff0c;那么这个文…

并行计算总结

作者&#xff1a;ArimaMisaki 目录 1 并行计算概述. 2 1.1 基本概念. 2 1.2 存储器的层次结构. 3 1.3 并行计算. 3 1.4 动态互连网络. 4 1.5 并行计算机结构模型. 5 1.6 并行算法的基本设计策略. 6 1.7 并行编程风范. 6 1.8 单核多线程和并发执行. 7 1.9 拓展&#x…

HDMI转MIPI DSI芯片方案TC358779XBG

型号&#xff1a;TC358779XBG功能&#xff1a;HDMI1.4转MIPI DSI通信方式&#xff1a;IIC分辨率&#xff1a;1920*1080电源&#xff1a;3.3/1.8/1.2封装形式&#xff1a;BGA80深圳长期现货 &#xff0c;提供技术支持&#xff0c;样品申请及规格书请联系蔡生M18312533639 Q1520…

基础总结篇之中的一个:Activity生命周期

子曰&#xff1a;溫故而知新&#xff0c;能够為師矣。《論語》 学习技术也一样&#xff0c;对于技术文档或者经典的技术书籍来说&#xff0c;指望看一遍就全然掌握&#xff0c;那基本不大可能&#xff0c;所以我们须要常常回过头再细致研读几遍&#xff0c;以领悟到作者的思想精…

数据结构杂谈(九)——二叉树的遍历

9 二叉树的遍历 文章目录9 二叉树的遍历9.1 递归函数基础9.2 深度优先遍历的实现9.3 二叉树层次遍历9.1 递归函数基础 什么是递归&#xff1f;调用自身就是叫递归&#xff0c;如下所示&#xff1a; void r(){r(); }我们习惯借用阶梯图来帮助我们理解这些知识。如果是同一层函数…

洛谷 P3750 [六省联考2017]分手是祝愿

传送门 题解 //Achen #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<vector> #include<cstdio> #include<queue> #include<cmath> const int N100000,mod100003; #define For(i,a,b)…

新书《编写可测试的JavaScript代码 》出版,感谢支持

本书介绍 JavaScript专业开发人员必须具备的一个技能是能够编写可测试的代码。不管是创建新应用程序&#xff0c;还是重写遗留代码&#xff0c;本书都将向你展示如何为客户端和服务器编写和维护可测试的JavaScript代码。从减少代码复杂性的方法&#xff0c;到单元测试、代码覆盖…

解决 error: command 'swig' failed with exit status 1

2019独角兽企业重金招聘Python工程师标准>>> # pip install docker-registry 分析&#xff1a;观察出现的错误&#xff0c;发现最开始报错的地方提示不能找到openssl的.h头文件。一般.h头文件都是放到/usr/inclue目录下的&#xff0c;而且头文件所在的安装包一般叫…

Android安全-SO动态库注入

2019独角兽企业重金招聘Python工程师标准>>> 关于这方面技术&#xff0c;网上已经有大把的实现。在此&#xff0c;我只是记录下自己的学习过程。 0x1 原理 所谓的SO注入就是将代码拷贝到目标进程中&#xff0c;并结合函数重定向等其他技术&#xff0c;最终达到监控或…

添加远程链接MySQL的权限

mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名用户地址 identified by ‘连接口令’;权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。当权限1,权限2,…权限n被…

C# Java间进行RSA加密解密交互(二)

接着前面一篇文章C# Java间进行RSA加密解密交互&#xff0c;继续探讨这个问题。 在前面&#xff0c;虽然已经实现了C# Java间进行RSA加密解密交互&#xff0c;但是还是与项目中要求的有所出入。在项目中&#xff0c;客户端&#xff08;Java&#xff09;的加密是通过这么一个方法…