栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

蓝桥杯

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

蓝桥杯

//
Q: 长度为 n 的数组 q 次询问 区间最大值

1<=n,q<=5e5;
1<=l<=r<=n;
-1e9<=k,ai<=1e9;

样例输入
5 5
1 2 3 4 5
1 1 
1 2 
1 3
3 4
2 5

样例输出
1
2
3
4
5

//
A:
#include
using namespace std;

// 1<=n,q<=5e5
const int MAXN=1e6+7;

// printf("%lfn",log2(1e6)); == 19.931569 
int a[MAXN],dp_max[MAXN][30];  
int n,q;

// int group=(int)log2(n);
// int group=(int) ( log( (double)n ) / log( (double)2 ) );

// i: 以 i 为起始点的数组区间 j: 2^j 数组区间长度

// 1+2^k<=n+1 == 2^k<=n 消去干扰源

void st_init()
{
    int i,j,group=(int)log2(n);
    memset( dp_max,0,sizeof( dp_max ) );    //

    for( i=1;i<=n;i++ ) dp_max[i][0]=a[i];

    for( j=1;j<=group;j++ )
    {
        for( i=1; i+(1< 

//
find: 
01 memset()初始化数组 (多组数据)
02 能不能从下标为0开始呢?
03 得学哈希

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/723217.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号