20180818模拟赛

本文探讨了三道算法竞赛题目,包括区间划分价值最大化、反对称字符串计数及矩阵染色方案数量的问题。通过深入分析,提出了使用线段树、状态压缩动态规划以及容斥原理等方法解决这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

T1:
有一个区间,将一个区间[l,r]分裂为若干个区间(可有间隙)(允许区间与下一个区间相交1长度),使得价值若干个区间的ar−ala_r-a_laral的和最大
操作:
1.询问分裂[l,r]区间的价值
2.将[l,r]变为等差数列

n,m<=200000

一开始想到将大区间划分为一堆递增区间,然后用类似于分块的处理方法处理,后来觉得不一定对,而且处理下降序列比较复杂,还比较慢……

根本就没写完

由于ar−al=−al+al+1−al+1+……+ara_r-a_l=-a_l+a_{l+1}-a_{l+1}+……+a_raral=al+al+1al+1++ar
就可以将分裂的区间长度固定在2

bi=max(ai−ai−1,0)b_i=max(a_i-a_{i-1},0)bi=max(aiai1,0),即如果价值为负,则可记为0,即不选
则操作1为∑i=l+1rbi\sum_{i=l+1}^{r}b_ii=l+1rbi 区间加法
操作2为区间修改,因为bib_ibi就是两数的差,而等差数列就是“等差”,所以可以直接区间覆盖修改,额外单独处理两端点处就可以了

用一个线段树维护即可

T2:
求长度为2m2m2m的包含n个字符串为子串的反对称的字符串个数

本来写了个暴力dfs+暴力字符串匹配,本来以为稳拿10分,结果。。
没了

正解是一个在AC自动机上跑状压DP的
告辞

T3:
对一个矩阵染色,有黑白,至少a行b列是黑色,求方案数

一眼容斥。。但是我不会容斥

觉得暴力很有难度
告辞

10min爆0离场

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值