Codeforces Round #104 (Div. 1) E. Lucky Queries (线段树)

网络流题目合集 属实狠活 HDU 2883 kebab还是区间k重覆盖的变形,然而每想到 就这? HDU 3315 My Brute HDU 3947 River Problem 区间k重覆盖的变形 拉了 阅读详情

题意:

        长度为n的47串,两种操作,一种是区间变换,即4变7,7变4,一种是询问,问最长的非严格递增子序列长度

思路:

        线段树维护即可,47可以抽象成01串,变换就是异或,存储全0串最长长度,全1串最长长度,000..111串长度,111…000串长度,变换就让全0和全1交换,000…111和111…000交换,然后pushup的时候全1和全0可以根据左右儿子直接相加得到,000….111和111…000可以由儿子推出

错误及反思:

代码:

#include<bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
const int N = 1001000;
int segtree[N<<2][4],lazy[N<<2];//  0 for 0-0  1 for 0-1  2 for 1-0 3 for 1-1
char s[N];
int n,m;

void pushup(int rt){
    segtree[rt][0]=segtree[rt<<1][0]+segtree[rt<<1|1][0];
    segtree[rt][3]=segtree[rt<<1][3]+segtree[rt<<1|1][3];
    segtree[rt][1]=max(segtree[rt<<1][1]+segtree[rt<<1|1][3],segtree[rt<<1][0]+max(segtree[rt<<1|1][1],segtree[rt<<1|1][3]));
    segtree[rt][2]=max(segtree[rt<<1][2]+segtree[rt<<1|1][0],segtree[rt<<1][3]+max(segtree[rt<<1|1][2],segtree[rt<<1|1][0]));

}

void build(int l,int r,int rt){
    if(l==r){
        if(s[l]==1) segtree[rt][3]=1;
        else segtree[rt][0]=1;
        segtree[rt][2]=1;
        segtree[rt][1]=1;
        return ;
    }
    int m=(l+r)/2;
    build(lson);
    build(rson);
    pushup(rt);
}

void Swap(int rt){
    swap(segtree[rt][0],segtree[rt][3]);
    swap(segtree[rt][1],segtree[rt][2]);
}
void pushdown(int rt){
    if(lazy[rt]){
        Swap(rt<<1); Swap(rt<<1|1);
        lazy[rt<<1]++; lazy[rt<<1|1]++;
        lazy[rt<<1]%=2;lazy[rt<<1|1]%=2;
        lazy[rt]=0;
    }
}

void update(int L,int R,int l,int r,int rt){
    if(L<=l&&R>=r){
        Swap(rt);
        lazy[rt]++;
        lazy[rt]%=2;
        return ;
    }
    pushdown(rt);
    int m=(l+r)/2;
    if(L<=m) update(L,R,lson);
    if(R>m) update(L,R,rson);
    pushup(rt);
}

int main(){
    scanf("%d%d",&n,&m);
    scanf("%s",s+1);
    for(int i=1;i<=n;i++)
        if(s[i]=='4') s[i]=0;
        else s[i]=1;
    build(1,n,1);
    while(m--){
        char t[10]; scanf("%s",t);
        if(t[0]=='c') printf("%d\n",max(max(segtree[1][1],segtree[1][0]),segtree[1][3]));
        else{
            int l,r; scanf("%d%d",&l,&r);
            update(l,r,1,n,1);
        }
    }
}
HyperLynx(三十一)高速串行总线仿真(三) (5)选择 “File”→ “Open Touchstone”,打开路径 C:\Adv_HL_Tmg\SERDES_Interface\models,选中connector.s4p,单击打开,如图所示。接下来,找出将要分配模型的S参数连接。(12)单击“Assign”按钮,选择模型类型为“Touchstone models”,在库中选择“connector.s4p”,如图所示。(14)单击“OK”按钮,选中“connector.s4p”这一行,单击“Connection Editor”按钮,如图所示。 阅读详情

相关推荐

ThunderScope开源示波器

4CH,1GSa/S 开源示波器。前端很简洁,BUF802+LMH6518,ADC是HMCAD1511,用Xilinx A7 FPGA进行控制,数据通过PCIE总线传输到上位机处理。目前这个项目已经被挂到了Xilinx官网,强。设计日志:https://hackaday.io/project/180090-thunderscope开源地址:https://github.com/EEVengers/ThunderScope。

leida_wt的博客 8191

CodeForces - 145E - Lucky Queries(线段树[区间合并])

题意: 告诉你一个4和7 的序列 两种操作: 1. 讲区间的数反转(即4变7  7变4) 2。 输出总区间中   非递减子序列的长度。 思路: 注意:子序列是可以不连续的 很明显是线段树了。 统计4的长度。 统计7 的长度。 统计4开头 7结尾的长度。 然后就是简单的区间合并问题了。 因为涉及区间反转,所以 可以在开同样的变量 记录反转后 4 的长度, 反转

aozil_yang的博客 451

某音播放量查询,播放量接口研究,最新版本抓包,修改SO文件绕过SSL

本教程适用于某音27.8,64位版本,32为版本及某音旁侧版本修改方法大同小异,部分旁侧版本修改之后模拟器可能无法抓包,真机测试均可正常抓包,此方法修改后绝大部分包可以正常抓取,但部分包无法抓取,例如验证码,内置浏览器功能,如需抓取此类包可通过 Postern + Charles 实现。

byalipus的博客 1万+

[CF145E]Lucky Queries

Codeforces 数据结构

YveH 678

用Multisim和74192芯片复刻经典:手把手教你搭建篮球24秒违例计时器(附仿真文件)

本文详细介绍了如何使用Multisim仿真平台和74192芯片构建篮球24秒违例计时器,涵盖时序逻辑电路设计、核心器件选型、仿真环境搭建及调试技巧。通过分步指导,帮助读者掌握数字电路设计的关键技术,并附赠仿真文件供实践参考。

weixin_27014595的博客 279

VASP+机器学习快速收敛AIMD

本文介绍了如何利用VASP结合机器学习技术快速收敛AIMD(从头算分子动力学)模拟。首先,通过训练机器学习力场,生成关键文件如ML_ABN(包含结构数据集)、ML_FFN(存储回归结果)和ML_LOGFILE(记录训练日志)。接着,配置INCAR文件以设置计算参数,包括并行化、分子动力学和机器学习相关参数。KPOINTS文件用于定义K点网格。计算完成后,备份CONTCAR文件作为后续模拟的初始结构。最后,利用训练好的力场文件进行纯机器学习力场分子动力学模拟,并提交任务执行。

qq_44812865的博客 1406

Cf Round #104 (Div. 1) E Lucky Queries 线段树

题意:给出‘4’和‘7’组成的序列,进行两种操作,switch l r表示l~r之间的序列‘4’变成‘7’,‘7’变成‘4’,count询问整个序列的最长不下降子序列的长度。

@you! 1075

复现HumanMAC(HumanMAC: Masked Motion Completion for Human Motion Prediction)

Human3.6M和HumanEva-I都放到data目录下(记得将data_multi_modal-20250320T022408Z-001.zip和humaneva_multi_modal-20250320T022412Z-001.zip解压缩并且分别重命名为data_multi_modal和humaneva_multi_modal)。生成的gif存放在inference目录下zero_shot_<INDEX>下的out目录下。新建一个data目录,将

qq_52643100的博客 831

线段数练习一: CF145E E. Lucky Queries

E. Lucky Queries time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Petya loves lucky numbers very much. Every

NOI2015的专栏 674

【Labview与SQL Server互联(labview可以引用数据库)】

Labview与SQL Server互联

Magize的博客 3585

注意力机制与经典 CV 网络:PyTorch 实现与实战

注意力机制(SE/空间/CBAM/Non-Local)通过权重重标定让模型聚焦关键特征,经典 CNN(ResNet/DenseNet/FPN)提供了深层网络、特征复用和多尺度融合的基础骨架。建议先在 ResNet 上插入 SE 模块(通道注意力)做基线实验,再根据任务类型引入空间注意力(分割任务)或非局部注意力(视频任务)。CIFAR-10 数据集适合快速验证注意力模块的有效性,迁移到更大数据集时保持相同的结构设计思路即可。

FJN110的博客 62

codeforces 145E Lucky Queries

codeforces 145E Lucky Queries

klc的博客 937

从入门到精通|Yalmip+Cplex在电力系统中的应用(Matlab代码实现)

​ 火电成本包括运行成本、碳捕集成本,其中火电运行成本由运行维护成 本和发电煤耗成本构成,发电煤耗与其出力关系: ,F 为机组煤耗量(kg/h),P 为机组出力/MW;运行维护成本按照 0.5 倍煤耗成本考虑,碳捕集成本取决于碳排放量及碳捕集单价,火电机组相关参数如附表 1 所示,电煤价格为 700 元/t ​

weixin_46039719的博客 1553

Codeforces Round #104 (Div. 1) E. Lucky Queries 线段树

链接: http://codeforces.com/contest/145/problem/E 题意: 维护一个只有数字4和7的数列,以下有两种操作:  1.将[l,r]区间4变为7,7变为4。  2.询问全局最长不下降子序列的长度。  输出所有2操作的答案 题解: 线段树维护。  维护四个信息:  1.区间4的个数。  2.区间7的个数。  3.区间不降子序列的...

花海 138

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

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

Codeforces Round #104 (Div. 1) E Lucky Queries

坑爹的360!劳资好不容易把div1的E搞出来了一编译居然被360怀疑哥的代码是病毒,擦!!坑爹么!!!尼玛敲个代码容易么!!!伤不起啊!反正劳资用这段病毒AC了!! 线段树延迟更新,只是要在比赛那么短的时间内敲出来并且没有错误很难,看到那么多红名的一个小时不到就把这题a了,这就是红名和蓝名的差距么!!!什么时候哥才能红名呢。。。。 #include #include #include #

量子流逝 893

android 蓝牙通讯demo

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

Codeforces145 E. Lucky Queries(线段树)

题意: 给定长度为n的字符串S,只包含字符4和7, 现在要进行m次操作,操作有两种: (switch l,r):将[l,r]内的4变成7,7变成4 (count):计算串中的最长非递增子序列,输出长度 数据范围:n<=1e6,m<=3e5 ...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 204

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Codeforces - Lucky Queries

题目链接:Codeforces - Lucky Queries 显然区间反转可以用线段树维护。 每次反转的时候,对答案的影响就是非严格LIS和LDS的交换。 AC代码: #pragma GCC optimize("-Ofast","-funroll-all-loops") #include<bits/stdc++.h> //#define int long long using namespace std; const int N=1e6+10; int n,m,lazy[N<<

青烟绕指柔的博客 373

Codeforce E. Lucky Queries 线段树实践

E. Lucky Queries Petya loves lucky numbers very much. Everybody knows that lucky numbers are positive integers whose decimal record contains only the lucky digits 4 and 7. For example, numb

靖空间 1277

codeforces 145E - Lucky Queries

题目大意:给一个长度为n的47序列(就是只有4和7),两种操作: 操作1:count 要求输出当前数列的最长非下降子序列(注意是子序列,不是子串。。。一开始没看清题WA半天)。 操作2 : switch l r 将区间[l,r]之间的数反转(这里的反转指的是4变成7 7变成4) 然后就是给你一堆操作,对每一个操作1输出相应的值。。。 PS:这竟然是div1 的 E,我觉得就是一道很中规中矩

ddyyxx的程序员之路 1240

NEERC 17 I Interactive Sort (交互题)

题意: &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;给出1到n这n个数的任意一个排列,然后奇数按顺序分到o数组,偶数按顺序分到e数组,你每次可以询问e数组中第i个和o数组中第j个的大小情况,查询结束后输出结果,查询次数最多30 000次,n≥1000n≥1000n\ge1000 思路: &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;我...

Roll_Keyboard的博客 706

NEERC 17 G The Great Wall (treap)

题意: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 给你一个数列,每个点有abc三个值,现在让你画两个区间x,y,区间大小为r,区间不可以完全重合,当一个点没有被区间覆盖时值为a,被一个区间覆盖时值为b,两个区间为c,问第k小的数列数值总和为多少 思路: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp

Roll_Keyboard的博客 694

Codeforces 85D. Sum of Medians (线段树)

题意: &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 三种操作,1.加入一个数,2,删除一个数,3,询问经过排序以后,所有下标mod5mod5mod5余3的数的和 思路: &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 注意到,当我们加入一个数以后,会让所有后面的数后移一位,删除会使得后面全部前移一位,每次移动都使得下标变化1,所以我...

Roll_Keyboard的博客 652

Codeforces Round #437 (Div. 2) B. Save the problem!

题意:给你一个数字A,要你给出一个价格和一堆硬币种类,要让这些硬币组成这个价格的方案数为A思路:想了很久没想出来,答案是除了A是1的时候,价格都是2*(A-1),硬币只有1和2,因为,你用(A-1)个2元0个1元,然后是(A-2)个2个1元,这样方案数就相当于A-1减到0,共A种,真的有点巧妙。。。错误及反思:其实自己写个完全背包打表也许能看出规律吧,可惜完全没往这个方向想代码:#include<b

Roll_Keyboard的博客 634

NEERC 17 L Laminar Family (树链剖分)

题意: &nbsp;&nbsp;&nbsp;&nbsp; 给你一颗树,每次选取一个路径,把路径上的所有点加入到一个集合里面,问最后的集合是否两两之间满足 A∈BA∈B A\in B 或者B∈AB∈AB\in A或者A∪B=∅A∪B=∅A\cup B = \emptyset 思路: &nbsp;&nbsp;&nbsp;&nbsp;我们发现,如果最后是符合条件的,那么必定是一个集合被另一个集合...

Roll_Keyboard的博客 549
上一篇: treap入门题目集合(附模板)
下一篇: bzoj 1103 大都市meg (dfs序+线段树)
Roll_Keyboard
博客等级 码龄9年 10粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值