[二分 ST表 杂题] Codeforces875D. High Cry

Score Matching(得分匹配) Score Matching(得分匹配)是一种统计学习方法,用于估计概率密度函数的梯度(即得分函数),而无需知道密度函数的归一化常数。这种方法由Hyvärinen在2005年提出,主要用于无监督学习,特别是在密度估计和生成模型中。 阅读详情

早知道先看D题就不会掉这么惨了

枚举左端点,那么区间或值最多变化log次

二分变化的区间,再二分区间或值大于区间最大值的区间

用ST表记一下区间最大值、或值

#include <cstdio> 
#include <algorithm>
#include <iostream>

using namespace std;

typedef long long ll;

const int N=200010;

int n,a[N],lg2[N];
int ior[N][20],imax[N][20];

inline void Pre(){
    for(int i=1;i<=n;i++) lg2[i]=lg2[i-1]+((1<<lg2[i-1]+1)==i);
    int t=lg2[n];
    for(int i=1;i<=n;i++) ior[i][0]=imax[i][0]=a[i];
    for(int k=1;k<=t;k++)
        for(int i=1;i+(1<<k)-1<=n;i++)
            ior[i][k]=ior[i][k-1]|ior[i+(1<<k-1)][k-1],imax[i][k]=max(imax[i][k-1],imax[i+(1<<k-1)][k-1]);
}

inline int Qor(int l,int r){
    int t=lg2[r-l+1];
    return ior[l][t]|ior[r+1-(1<<t)][t];
}

inline int Qmax(int l,int r){
    int t=lg2[r-l+1];
    return max(imax[l][t],imax[r-(1<<t)+1][t]);
}

int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    Pre(); ll ans=0;
    for(int i=1;i<=n;i++){
        int cur=a[i],j=i;
        while(j<=n){
            int l=j,r=n,mid,nxt;
            while(l<=r) Qor(i,mid=l+r>>1)==cur?l=(nxt=mid)+1:r=mid-1;
            l=j; r=nxt; int pos=-1;
            while(l<=r) Qmax(i,mid=l+r>>1)<cur?l=(pos=mid)+1:r=mid-1;
            if(~pos) ans+=pos-j+1;
            j=nxt+1; cur=Qor(i,j);
        }
    }
    cout<<ans<<endl;
    return 0;
}
时间序列—显著相关性和滞后性分析_python 本文讲述了两个时间序列(信号)的相关性分析,可以利用相关性分析进行特征筛选。此外本文还讲了怎么判断时间序列的滞后性的方法。 阅读详情

相关推荐

Cube生成定时器2触发双ADC同步采集并用DMA传输

前言 用cube生成一个用定时器触发ADC1,ADC2同步采集的程序,单片机选择的是STM32L476RGT6,用定时器2进行ADC采集触发,更改定时器2的定时周期便可以更改ADC的采样周期,ADC1和ADC2使用同步规则模式,并用DMA进行数据的传输。 STM32的ADC采样完成总共需要的时间是 ADC完成采样时间=采样周期+12个转换周期 举个例子,假如ADC的时钟是15MHz,采样周期是3个周期,3个采样周期加上12个转换周期,一共是15个周期,因为时钟是15MHz,所以完成一次ADC转换总共需要的时

一行代码的博客 4513

Codeforces1696D. Permutation Graph,静态区间最大最小值,ST表

从 1 到 n 的路径一定要经过两个极值点,以此递归即可获得最优解。需要支持的操作是求静态区间的最大/最小值,可以用 ST 表,现场把我四年前的博客翻译成 rust… https://blog.csdn.net/m0_37809890/article/details/82585410......

秋叶红于二月花 543

VSCode玩转ESP-ADF音频开发:从环境搭建到成功播放MP3的避坑全流程

本文详细介绍了如何在VSCode环境下使用ESP-ADF框架进行ESP32音频开发,从环境搭建到成功播放MP3的全流程。重点解析了`IDF_PATH`和`ADF_PATH`的配置问题,以及如何解决`xTaskCreateRestrictedPinnedToCore`等常见编译错误,帮助开发者快速上手ESP-ADF音频开发。

weixin_42520909的博客 339

Codeforces Round 914 (Div. 2)(D1/D2)--ST表

题意:给出长度为n的数组a和b,可以对a进行任意次数操作,操作方式为选择任意区间将区间内值全部变成该区间的最大值,是否有可能使得数组a等于数组b。

maisui12138的博客 1092

CMap数据库实战:从基因表达谱到药物重定位的可视化分析

本文详细介绍了如何利用CMap数据库进行药物重定位的可视化分析。通过实战演示,从差异基因列表准备、CMap查询参数设置,到结果筛选与高级可视化(如热图与OncoPrint风格图),系统讲解了从数据到洞察的全流程,并提供了关键的解读与验证指南,帮助研究者高效挖掘老药新用的潜力。

mango的博客 587

MIT-BEVFusion系列六--bevfusion网络部分流程理解

简述bevfusion网络部分

duanmushuangquan的博客 4892

Codeforces 1706E 并查集 + 启发式合并 + ST 表

区间 $[l,r]$ 连通的充要条件是 $[i,i+1], i\in [l,r)$ 连通。问题转化为求解使 $i,i+1,i\in [0,n - 1)$ 连通的最小的最大边编号;最后 RMQ 查询即可,实现上使用 ST 表。

neweryyy的博客 1542

Pycharm环境配置完整教程

本文主要介绍python解释器安装、Pycharm环境配置以及运行第一个程序的零基础的教程,即使是python小白也能正确配置相应的python学习环境哦!

悠眠小虫的博客 2万+

Codeforces 515E Drazil and Park (ST表)

题目链接 Drazil and Park 中文题面 传送门 如果他选择了x和y,那么他消耗的能量为dx + dx + 1 + ... + dy - 1 + 2 * (hx + hy). 把这个式子写成这个形式 (d1 + d2 + ... + dy - 1 + 2 * hy) + (2 * hx - (d1 + d2 + ... + dx - 1)) 令(2 * hk - (d1 + d...

weixin_30244681的博客 199

PX4/ArduPilot源码克隆提速秘籍:国内镜像与子模块优化全攻略

本文详细介绍了PX4/ArduPilot源码克隆的提速秘籍,包括使用国内镜像源和子模块优化技巧。通过阿木实验室、华为云等国内镜像,克隆速度可提升20倍,同时提供子模块替换和并行编译等实用方法,大幅提升开发效率。

weixin_29251567的博客 523

海康威视摄像机SDK二次开发--提取音频保存至文件

由于最近在开发海康威视摄像头,特此记录一下如何提取音频数据,这里主要依靠语音对讲返回的音频数据,通过回调函数写入文件中,加个WAV头即可播放,编码格式可以自己设置在代码中有注释 文件结构 其中CameraInfo内容可以参看海康威视摄像机SDK二次开发–实时预览视频流保存到指定文件中 HIKSDKSaveRealData中的内容 package ClientDemo; import ClientDemo.CameraInfo; import com.sun.jna.NativeLong; import

RichardoMu的博客 3172

Codeforces1454 F. Array Partition(st表+二分)

题意: 给定长度为n的序列a, 现在要求将a切割为三个部分p1,p2,p3, 满足max{p1}=min{p2}=max{p3}. 如果找不到满足条件的切割点,那么输出NO, 否则输出YES以及三个部分的长度. 数据范围:n<=2e5,a(i)<=1e9 ...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 321

【雷达信号处理实战】从原理到代码:脉冲多普勒(PD)处理全流程解析与MATLAB仿真

本文深入解析了脉冲多普勒(PD)雷达信号处理的核心原理与全流程。通过剖析多普勒效应、脉冲压缩与慢时间FFT等关键技术,并结合详细的MATLAB仿真代码,手把手指导如何从信号建模、回波模拟到最终生成距离-多普勒谱,实现运动目标的精确测距与测速,直观展示了相参积累带来的显著性能增益。

pca5navigator的博客 951

[ ST表 ] Codeforces875D High Cry

枚举左端点,注意到区间或值只会变化 O(logn)O(\log n) 次,于是可以二分出每个或值相等的区间,再二分出最大值小于或值的区间。#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define N 200010 inline char nc(){

gjghfd 328

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CGCDSSQ CodeForces - 475D(ST表&数论)

CGCDSSQ CodeForces - 475D(ST表&amp;数论) 题目大意 给出一段序列与q个询问v,问存在多少的二元组(l,r)(l,r)(l,r),满足gcd(al,al+1,...ar)=vgcd(a_l,a_{l+1},...a_{r})=vgcd(al​,al+1​,...ar​)=v 解题思路 首先需要维护出一个ST表,其用于快速查询一段区间的gcd,然后对每个序列中的每个数...

FLY_WHITE的博客 463

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

codeforces 713 D(二维st表)

题目链接 题解 题意:给你一个01矩阵,询问一个矩形区域内最大的全1正方形。 考虑到硬做很麻烦,所以先二分出一个值就可以了。 st表时间复杂度:n^2*log^2    代码: #include&lt;bits/stdc++.h&gt; using namespace std; int Q,n,m,ans,XX,YY,XXX,YYY,LLL[1010],a[1010][1010],...

qq_41510496的博客 380

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Codeforces 1549D - Integers Have Friends 讲解 (稀疏表(ST表)、滑动窗口、gcd)

【代码】Codeforces 1549D - Integers Have Friends 讲解。

Xyrsis的博客 424

Codeforces 359D Pair of Numbers | 二分+ST表+gcd

题面: 给一个序列,求最长的合法区间,合法被定义为这个序列的gcd=区间最小值 输出最长合法区间个数,r-l长度 接下来输出每个合法区间的左端点 题解: 由于区间gcd满足单调性,所以我们可以二分区间长度,用st表维护区间最小值和gcd即可 1 #include<cstdio> 2 #include<algorithm> 3 #incl...

weixin_30602505的博客 149

Codeforces Round 875 (Div. 2)(A~D)

qwq

qq_62224565的博客 1150

codeforces 875D - High Cry

http://codeforces.com/contest/875/problem/D 题意:给你 n 个长度的数组,求一共有多少区间 [ l , r ] ,使区间 [ l , r ] 所有数字的或 运算大于所有区间 [ l , r ] 的数。 题解:RMQ+分治。    找到区间 [ l , r ] 内最大值 a,和最接近 a 的数 b 且(b|a>a),左边的...

233

Codeforces475 D.CGCDSSQ(st表+二分)

题意: 给定长度为n的序列,q次询问, 每次询问给定x,问有多少个子区间的gcd=x。 数据范围:n<=1e5,q<=3e5

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 269

Codeforces 875D High Cry [枚举+二进制]

Codeforces 875D High Cry [枚举+二进制]

ACTerminate的博客 589

ST表+二分

题目:https://codeforces.ml/contest/1549/problem/D ST表: 1.不支持在线修改 预处理事件复杂度0(nlogn),查询事件o(1) 2.例如求某一段最大值 st[i][j] 表示从i到i+2^j 那么它的最值则是由前一半和后一半决定 前一半:为i+2^(j-1),后一半则为(i+2^(j-1)+1)+2^(j-1) 那么st[i][j]=max(st[i][j-1],st[i][i+2^(j-1)+1][j-1]) for(int j=1;(1&

热爱编程 热爱生活 309

D. Training Session「st表 + 二分 」

D. Training Session 题目描述: n个数,问最大能选多长的连续子区间,使得这个区间内每个数余一个大于等于2的数字后相等 思路: 做差分后用st表处理区间gcd,枚举区间的左端点,用二分去找右端点 不要用线段树来维护区间gcd + 枚举二分,会TLE 可以用线段树来维护区间gcd + 双指针 /* Work by: Chelsea Problem: 不知名屑题 Knowledge: 垃圾算法 Time: O(能过) */ #include<map> #include&lt

Suryxin's blogs 259

Codeforces 875D High Cry st表+分治

Disclaimer: there are lots of untranslateable puns in the Russian version of the statement, so there is one more reason for you to learn Russian :) Rick and Morty like to go to the ridge High Cry f

I'm Growing 1336

Codeforces 875D High Cry rmq+分治

题意给出一个长度为n的序列a[],问你有多少个区间[l,r]满足a[l] or a[l+1] or … or a[r]>max(a[l],a[l+1],…,a[r])。 n<=200000,a[i]<=10^9分析假设我们要处理一个区间[l,r]内有多少满足题目条件的区间,我们可以先找到这个区间的最大值,设为mid。只要我们找到mid左边的第一个数,使得这个数or上a[mid]>a[mid],设其

beginend 715
上一篇: [FWT] Codeforces663E .Binary Table
下一篇: [最小基环生成树] Codeforces875F .Royal Questions
LowestJN
博客等级 码龄10年 76粉丝 422原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值