M - Sequence operation HDU - 3397 线段树,成段更新,区间合并)

六轴机器人正解 采用的是John H.Craig在【机器人学导论】中的改进DH模型 1.六轴坐标系 2.DH参数 i αi−1\alpha_{i-1}αi−1​ ai−1a_{i-1}ai−1​ did_idi​ θi\theta_iθi​初值 1 0 0 0 0 2 -90 a1a_1a1​ 0 -90 3 0 a2a_2a2​ 0 -90 4 -90 a3a_3a3​ d4d... 阅读详情

https://vjudge.net/contest/177550#problem/M

题意:

0 a b:将区间[a,b]全部置为0;

1 a b:将区间[a,b]全部置为1;

2 a b:对区间[a,b]进行异或操作;

3 a b:询问区间[a,b]内有多少个1;

4 a b:询问区间[a,b]内最长连续的1有多长。

参考别人的代码https://vjudge.net/solution/4424840,模仿下。。


#include<bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

#define sf scanf
#define pf printf
#define mem(a,b) memset(a,b,sizeof(a));
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define MP make_pair
#define LL   long long
#define inf 0x3f3f3f3f
#define ls (i<<1)
#define rs (ls|1)
#define md ((ll+rr)>>1)
#define lson ll,md,ls
#define rson md+1,rr,rs
#define eps 1e-5
#define N 100050
#define ree freopen("in.txt","r",stdin);
#define bug pf("----------------");

int mxL[2][N<<2],mxR[2][N<<2],mx[2][N<<2];
int sum[2][N<<2],cov[N<<2],Xor[N<<2];
void  init(int x,int i,int len){
    mxL[x][i]=mxR[x][i]=mx[x][i]=len;
    sum[x][i]=len;
}
void up(int x,int i,int ll,int rr){
    mxL[x][i]=mxL[x][ls],mxR[x][i]=mxR[x][rs];
    mx[x][i]=max(mx[x][ls],mx[x][rs]);
    mx[x][i]=max(mx[x][i],mxR[x][ls]+mxL[x][rs]);
    if(mxL[x][ls]==md-ll+1)
        mxL[x][i]+=mxL[x][rs];
    if(mxR[x][rs]==rr-md)
        mxR[x][i]+=mxR[x][ls];
    sum[x][i]=sum[x][ls]+sum[x][rs];
}
void build(int ll,int rr,int i){
    cov[i]=-1,Xor[i]=0;
    if(ll==rr){
        int v;
        sf("%d",&v);
        init(v,i,1);
        init(v^1,i,0);
        return;
    }
    build(lson),build(rson);
    up(0,i,ll,rr);
    up(1,i,ll,rr);
}
void change(int i){
    Xor[i]^=1;
    swap(mxL[0][i],mxL[1][i]);
    swap(mxR[0][i],mxR[1][i]);
    swap(mx[0][i],mx[1][i]);
    swap(sum[0][i],sum[1][i]);
}
void down(int i,int ll,int rr){
    if(cov[i]!=-1){
        int x=cov[i];
        cov[ls]=cov[rs]=x;
        Xor[ls]=Xor[rs]=0;
        init(x,ls,md-ll+1);
        init(x,rs,rr-md);
        init(x^1,ls,0);
        init(x^1,rs,0);
        cov[i]=-1;
    }
    if(Xor[i]){
        change(ls),change(rs);
        Xor[i]=0;
    }
}
void update(int l,int r,int op,int ll,int rr,int i){
    if(l==ll&&r==rr){
        if(op==0||op==1){
            init(op,i,rr-ll+1);
            init(op^1,i,0);
            cov[i]=op,Xor[i]=0;
        }
        else{
            change(i);
        }
        return;
    }
    down(i,ll,rr);
    if(r<=md)update(l,r,op,lson);
    else if(l>md)update(l,r,op,rson);
    else
        update(l,md,op,lson),update(md+1,r,op,rson);
    up(0,i,ll,rr);
    up(1,i,ll,rr);
}
int query(int l,int r,int op,int ll,int rr,int i){
    if(l==ll&&r==rr){
        if(op==4)
            return mx[1][i];
        else return sum[1][i];
    }
    down(i,ll,rr);
    int ret;
    if(r<=md)ret=query(l,r,op,lson);
    else if(l>md)ret=query(l,r,op,rson);
    else{
        int ret1=query(l,md,op,lson);
        int ret2=query(md+1,r,op,rson);
        if(op==4){
            ret=max(ret1,ret2);
            ret=max(ret,min(mxR[1][ls],md-l+1)+min(mxL[1][rs],r-md));
        }
        else ret=ret1+ret2;
    }
    up(0,i,ll,rr);
    up(1,i,ll,rr);
    return ret;
}
int main(){
    //ree
    int cas;
    sf("%d",&cas);
    while(cas--){
        int n,m;
        sf("%d%d",&n,&m);
        build(1,n,1);
        while(m--){
            int op,L,R;
            sf("%d%d%d",&op,&L,&R);
            ++L,++R;
            if(op<=2)
                update(L,R,op,1,n,1);
            else pf("%d\n",query(L,R,op,1,n,1));
        }
    }
}
【深度学习基础】Temporal Fusion Transformer 从下向上看:全连接(Dense) → ELU(指数线性激活函数(比relu好点,有利于模型收敛)) → 全连接(Dense) → 门控线性单元(Gate)(Gated Linear Units (GLUs)) → Layernorm。:一方面,它可以进行静态上下文变量和动态变量的融合,另一方面,通过门控进行了特征选择操作,门控体现在GLU(门控线性单元)中,用了sigmoid控制信息的通过程度,具有良好的适应性,能够自动选择有效信息,自适应地调整网络复杂性。输入:主输入,可选的上下文向量c。 阅读详情

相关推荐

物料主数据管理难在哪?基于AI算法的数据清洗工具了解一下

企企通打造的一套以AI模型和算法为核心的产品及服务,可针对各类企业的不同主数据痛点难点,提供多种解决方案,能够快速完成物料主数据清洗、识别、匹配、梳理,满足一物一码、分类梳理、一品多商、多维度比价、精准寻源选品、建立标准物料库、供应商及客户主数据清洗等业务场景需求。随着AI技术的快速发展,智能算法在数据清洗领域的应用越来越广泛,越来越多的数据清洗工作已经开始交由智能算法完成,通过自动化的方式处理大量数据,识别和纠正错误,填补缺失值,检测异常值,以及执行其他数据预处理任务,并提高效率并减少人为错误。

QQT_qqt的博客 1364

HDU 3397 Sequence operation (线段树,成段更新,区间合并)

http://acm.hdu.edu.cn/showproblem.php?pid=3397 Sequence operation Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5801    Accepted Subm

fcbruce 1404

lammps建模(电解液)opls-aa力场的基本流程

lammps建模(电解液)opls-aa力场的基本流程

syj0922的博客 2133

hdu3397Sequence operation--线段树

hdu3397Sequence operation:http://acm.hdu.edu.cn/showproblem.php?pid=3397 Sequence operation Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Desc

hahaAll的博客 577

深入解析 TDA4VM/VH R5F 核中断机制:VIC 与非 VIC 模式下的实战对比与优化

本文深入解析了TI TDA4VM/VH平台中ARMv7-R架构R5F核的两种中断处理机制:VIC模式与非VIC模式。通过对比硬件自动跳转与软件向量表分发的核心流程、实战代码示例及性能差异,为开发者提供了基于实时性、灵活性与调试需求的选择指南和优化建议,帮助构建更稳定的嵌入式系统。

weixin_29159441的博客 97

WEB浏览器视频流播放方案

基于Media Source Extensions播放视频流 浏览器播放视频的几种方法 一、H5 video标签 在浏览器播放视频,可以使用HTML5原生的video标签。但其播放的格式使用一定限制的,目前video只支持三种格式WebM、Ogg、MP4。 WebM:WebM 文件使用 VP8 视频编解码器和 Vorbis 音频编解码器 Ogg :Ogg 文件使用 Theora 视频编解码器和 Vorbis音频编解码器 MP4: MPEG 4文件使用 H264 视频编解码器和AAC音频编解码器 上面三种

machh的专栏 2381

HDU 3397 Sequence operation (线段树+区间合并+成段更新+多种操作)

题意:有N个为0或为1的数,有M个操作,操作有5种类型。(1)“0 a b”,表示将区间[a,b]范围内的数全部置0。(2)“1 a b”,表示将区间[a,b]内的数全部置1。(3)“2 a b”,表示将区间[a,b]内的数0变成1,1变成0。(4)“3 a b”,表示查询[a,b]范围内1的数。(5)“4 a b”,表示查询[a,b]范围内最长的连续的1。 题解:线段树+区间合并+成段更新 从昨天晚上wa到今天中午,终于a了。 说明一下变量。 sumsumsum:记录连续数字1。lsumlsumlsum:

gongyuandaye的博客 243

数据分析案例-对某宝用户评论做情感分析

目录 原始数据 绘制词云图 情感分析 原始数据 原始数据为某宝一商品的用户评论数据 绘制词云图 # coding=utf-8 import jieba import re import wordcloud import imageio # 打开需要分析词频的文本 with open('淘宝评论3.0.txt', encoding='utf-8') as f: data = f.read() # 文本预处理 :去除一些无用的字符只提取出中文出来 new_data

m0_64336780的博客 1万+

HDU 3397 Sequence operation(线段树·成段更新·区间合并·混合操作)

题意  给你一个只有0, 1的数组  有这些操作   0. 将[a, b]区间的所有数都改为0   1. 将[a, b]区间的所有数都改为1   2. 将[a, b]区间的所有数都取反 即与1异或   3. 输出区间[a, b]中1的个数  即所有数的和   4. 输出区间[a, b]中最大连续1的长度 对于所有的3, 4操作输出对应的答案 单个的操作都很简单  但搞在一起就

Deng's site \# 970

【ComfyUI】FluxKontext 身形调优与体态增强

AI身形调优与体态增强解决方案 该工作流通过Flux系列模型实现人物体态的智能化增强,主要特点包括: 采用UNet主体模型+双文本编码器+身形增强LoRA的架构组合 通过ReferenceLatent保持原始姿态的同时强化胸腰臀比例 完整工作流包含图像加载、文本编码、潜空间映射等8个核心节点 支持自动化的前后效果对比展示 应用优势: 保持人物自然姿态的前提下实现局部强化 支持通过Prompt精确控制增强方向 适用于摄影后期、角色美化等创作场景 输出效果稳定且风格统一 使用方

Mr数据杨 1294

Openclaw错误分析与解决方案之:Agent couldn’t generate a response.

Openclaw错误分析与解决方案之:Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 1315

HDU3397 Sequence operation(线段树的区间合并)

Sequence operation Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7547    Accepted Submission(s): 2254 Problem Description lxhgww g

KeyboardPianist的博客 605

.Net如何使用Web API实现数据交互?

数据模型代表了要交互的数据结构。例如,假设我们要创建一个简单的图书管理系统,我们可以定义一个Book类作为数据模型。set;set;set;

Code365 257

HDU3397(Sequence operation)线段树解法

                                       Sequence operation                        Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)                                  ...

snayf的博客 356

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

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

HDU - 3397 Sequence operation(线段树+区间合并)

题目链接:点击查看 题目大意:给定一个初始的数列,然后依次进行m次操作: 0 a b:将闭区间[a,b]内的点都变为0 1 a b:将闭区间[a,b]内的点都变为1 2 a b:将闭区间[a,b]内的点1变为0,0变为1(相当于取异或) 3 a b:查询闭区间[a,b]内有多少个1 4 a b:查询闭区间[a,b]内的最大连续的1的长度 题目分析:操作1、2、4是最简单的线段树操作,区...

Falcon的博客 441

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

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

HDU-3397 Sequence operation

Sequence operation Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description lxhgww got a sequence contains n characters which are all '0's or '

JSure的代码库 903

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU3397 Sequence operation 区间修改,区间异或,区间合并,线段树经典题

区间修改,区间异或,区间合并,线段树经典题 #include #include #include using namespace std; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define ls (rt<<1) #define rs (rt<<1|1) const int M = 100001; int n

= = 1562

HDU 3397 Sequence operation(线段树的区间合并)

lxhgww got a sequence contains n characters which are all '0's or '1's. We have five operations here: Change operations: 0 a b change all characters into '0's in [a , b] 1 a b change all characters into '1's in [a , b] 2 a b change all '0's into '1's

HJY 453

HDU 3397 Sequence operation (区间合并 )

刚开始学习线段树,没想到就碰到这样的题,由于太弱,搞了整整一天和一早上,真是充满了血与泪,但起码是自己一点点写出来的,值得。另外,由此题注意到写数据结构的题,代码的风格重要,这方面也要下点功夫。因为一个细节DEBUG花了好久,数据有些繁琐,细节比较多。下面是代码。结点需要保存的变量有lmax1,rmax1,sum1,mx1.分别代表从左数最大连续1的个数,从右数最大连续1的个数,1的总个数,期中最

u012781117的专栏 758

Sequence operation HDU - 3397 (线段树,区间更新, 区间合并)

Sequence operation  题目链接:HDU - 3397  题意: HDU - 3911 的升级版; 给出一个01串,5种操作: 0 L R:区间[L ,R]全置为0; 1 L R:区间[L, R]全置为1; 2 L R :区间[L, R]中0变1,1变0; 3 L R:求区间[L, R]中1的总个数; 4 L R:求区间[L, R]中连续1的最长长度; 可以先看H...

Sirius_han的博客 394

hdu3397Sequence operation(线段树区间合并)

题目链接:hdu3397 线段树区间合并,和poj3667类似,都是老套路。。。 #include #include #include #include #include using namespace std; #define lson l, m, rt<<1 #define rson m+1, r, rt<<1|1 const int N = 200005; struct nod

no pains,no gains 1042

HDU 3397 Sequence operation(线段树区间染色加区间合并)

妈的调了两天终于过了。。。我好菜啊。 题意 对长度为n的序列执行q种操作, 0:把区间内的值都置为0; 1:把区间内的值都置为1; 2:把区间内的0都置为1,区间内的1都置为0; 3:查询区间里1的个数; 4:查询区间里最长的连续为1的区间的长度; 题解 显然,线段树区间更新区间查询可解此题,具体是: 维护懒标标记set,区间里1的个数sum1,区间左端点l,区间右端点r,区间...

weixin_34176694的博客 141

hdu 3397 Sequence operation(线段树)

题目链接:hdu 3397 Sequence operation 题目大意:给定一个01序列,5种操作: 0 a b:将区间a,b上的数置为01 a b:将区间a,b上的数置为12 a b:将区间a,b上的元素0变1,1变03 a b:查询a,b中1的个数4 a b:查询a,b中最大连续1的个数 解题思路:区间合并+成段更新。 #include #include #incl

不慌不忙、不急不躁 729

hdu 3397 Sequence operation(线段树区间覆盖,区间合并)

Problem Description lxhgww got a sequence contains n characters which are all '0's or '1's. We have five operations here: Change operations: 0 a b change all characters into '0's in [a , b] 1 a

捡起回忆碎片 386

HDU 3397 Sequence operation (线段树区间合并入门)

维护8个数组,区间和,区间连续1和0的最多的范围,左区间最多连续1和0的范围,右区间最多连续1和0的范围, 和一个懒标记数组c[],-2为全0,-1为全1,1为互换(就是^1)。 代码: #include #include #include #include #define lson l, m , rt<<1 #define rson m+1,r, rt<<1|1 using na

Neutralzz的博客 293

【线段树】HDU 3397 Sequence operation 区间合并

操作 Change operations: 0 a b change all characters into '0's in [a , b] 1 a b change all characters into '1's in [a , b] 2 a b change all '0's into '1's and change all '1's into '0's in [a, b] Out

Kewowlo 1094
上一篇: hdu 3308(线段树区间合并)
下一篇: Codeforces Round #388 (Div. 2) C。
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值