说明:按无序更新,只更(会)水题

4632

题意:求字符串的回文子[序列]个数

区间DP,设\(dp[i][j]\)为\([i,j]\)范围内的回文子序列个数,
由容斥定理可得\(dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]\)

如果\(i\)和\(j\)本身就可以构成回文,那就多增加\(dp[i+1][j-1]+1\)个回文子序列(1代表只含\(i,j\)的子序列)

https://paste.ubuntu.com/p/Sjh9c9K9H7/


6315

题意:给出a,b数组,区间上两种操作,给\(a[L,R]\)+1s,或者求\(\sum_{i=l}^{r}a_i/b_i\)

一看就知道是吉司机乱搞型线段树(低配版),暴力剪枝就好

维护区间a的最大值和b的最小值,如果存在相交的部分则证明可能产生新的贡献,

此时暴搜到叶子把可能的a置回0并加上贡献就好

然后疯狂TTTT

网上搜了一波题解好像说是会改变lazy的判断?(虽然觉得没有道理但是我认(怂)了

于是换一种策略,既然lazy依赖与a的最值,那我们尽量不碰它,改为b的值翻倍

然后过了(???)

https://paste.ubuntu.com/p/3YnKKvQf68/


4630

题意:给定\(a[1...n]\),多次询问\([L,R]\)中的任意一对数使得\(gcd(a_i,a_j)\)最大

对于gcd,区间内至少存在两个相同的因子才能作为合法的解,存在两个相同因子且最大就是最优的解

对区间右端点进行离线排序,用线段树维护\([L,R]\)内最大的gcd(存在两次以上的因子)

具体的更新策略:记录因子\(j\)的上一次出现的地方\(last_j\),当\(last_j\)已存在时再插入\(last_j\)就能维护两次以上的信息,离线处理保证了后面的因子不会插入到当前查询范围的某个\(last_j\)中,具体看代码

https://paste.ubuntu.com/p/SzGh3DCpt3/


6133

题意:给出一棵树共\(n\)个顶点,每个顶点有一个权值\(val_i\),你需要对每个节点统计一个最优解
每个节点的解按照一定规则产生:取出该节点的子树下所有的顶点,把顶点任意排序成一个序列,设为\(v_1,v_2...,v_k\)
此时解为\(\sum_{i=1}^{k}\sum_{j=1}^{i}val_{v_j}\),最小的解为最优解

对于每个解的处理来说,子树下值小的顶点肯定放前面,按这样来贪心无疑是正确的(前缀贡献尽量小)

那么对于无序的插入过程,当前节点\(u\)的贡献为\(val_u+cnt+num*val_u\)
其中\(cnt\)为当前小于\(val_u\)的数字和,\(num\)为当前大于等于\(val_u\)的个数和

因为是子树问题,用树状数组暴力合并答案,复杂度\(O(nlog^2n)\)

https://paste.ubuntu.com/p/YCYKwxjMjS/


6096

题意:给定n个字符串,m次询问,每次询问多少个字符串前缀是pre且后缀是suf,前后缀不可相交

字典树同时存储前后缀,假设字符串长为len则更新2*len个节点,依次按s[0],s[len-1],s[1],s[len-2],s[2]...更新

对于询问,按pre[0],suf[len2-1],pre[1],suf[len2-2],...pre[len1-1],suf[0]查询

如果前后缀不等长则用特殊字符填充,询问若碰到特殊字符就当前层暴搜(由于后一层前后缀肯定存在确定字符,所以不会被卡)

必须要确保的是询问时字典树中任一字符串必须长度大于等于当前查询的前后缀长度和(xxx xx xx非法)

因此需要离线处理

时间复杂度\(O(能过)\)

https://paste.ubuntu.com/p/rWTpqp2tyT/


5039

题意:给定一棵树,树上有边权0和1,两种操作,求树中路径异或和为1的数量,修改边权

边的异或可表示为\((u,v)=(1,u)xor(1,v)\)

所以用节点来表示根到当前节点的路径异或和

修改一条边就变为修改改节点及子树所有节点的01值

查询直接往根查询0和1的数量相乘再翻倍(方向)即可

https://paste.ubuntu.com/p/NHZMcmWgbB/


4336

题意:N个物品,每次得到第i个物品的概率为pi,而且有可能什么也得不到,问期望多少次能收集到全部N个物品

期望采取倒推,\(dp[S]\)表示由状态S到全部收集的期望步数

\(dp[S]=(1-\sum_jp_j)dp[S]+\sum_jp_j*dp[S|1<<j]+1\),其中S不包括j

https://paste.ubuntu.com/p/szmqCbK6Sx/


4339

题意:给定不等长字符串s1,s2,两种操作,1对某一字符串修改单一字符,2询问从下标k开始匹配的子串最长的长度

昨天用线段树合并左区间疯狂WA,模了一下别人家的树状数组+二分的做法

对于s1[i]!=s2[i],则在树状数组中+1

这样对于询问只需二分最大的sum[x]-sum[k-1]==0即可

也就是说本身无序的数换做前缀就可以进行有序的处理

https://paste.ubuntu.com/p/gmdWXtqDBZ/


6356

题意:已知数组\(a[1...n]\)为0,m次更新\([L,R]\)使得\(a_i=max(a_i,v),L≤i≤R\),\(n≤100000,m≤5000000\),数据随机

线段树beats,树内维护区间最大值和最小值

最小值大于等于v和最大值小于等于v作为剪枝的依据,若不符合剪枝则暴搜

还有一种做法是可以update的ST表,感觉不错,待补充

https://paste.ubuntu.com/p/DpMKMNQQk6/


牛客练习赛24 - 凤凰(乱入

题意:树边容量为1,每个节点有1的流量,问花多少时间能把所有流量流到节点1

只看根节点下的每一条邻边的话,可以观察得出每条贡献1只凤凰,那么最高时限肯定是是根以外的最大子树

虽然很水但还是记一下吧

https://paste.ubuntu.com/p/gyJJtf6d8M/

HDU - tag :: Multi-University 大合集的更多相关文章

  1. Codeforces - tag::data structures 大合集 [占坑 25 / 0x3f3f3f3f]

    371D 小盘子不断嵌套与大盘子,最后与地面相连,往里面灌水,溢出部分会往下面流,求每次操作时当前的盘子的容量 其实这道题是期末考前就做好了的.. 链式结构考虑并查集,然后没了(求大佬解释第一个T的点 ...

  2. 【Oracle教程资源大合集】Oracle数据库免费学习资源汇总

    Oracle的产品非常丰富,各类学习资源也五花八门,本文将介绍Oracle官方的免费教程与风哥整理的Oracle视频教程: 1.Oracle帮助中心 Oracle帮助中心也称为Oracle文档中心,这 ...

  3. Lucene搜索方式大合集

    package junit; import java.io.File; import java.io.IOException; import java.text.ParseException; imp ...

  4. 【收藏】Java多线程/并发编程大合集

    (一).[Java并发编程]并发编程大合集-兰亭风雨    [Java并发编程]实现多线程的两种方法    [Java并发编程]线程的中断    [Java并发编程]正确挂起.恢复.终止线程    [ ...

  5. [题解+总结]动态规划大合集II

    1.前言 大合集总共14道题,出自江哥之手(这就没什么好戏了),做得让人花枝乱颤.虽说大部分是NOIP难度,也有简单的几道题目,但是还是做的很辛苦,有几道题几乎没思路,下面一道道边看边分析一下. 2. ...

  6. [题解+总结]NOIP动态规划大合集

    1.前言 NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解. 2.NO ...

  7. 从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )

    从零开始学数据分析,什么程度可以找到工作?( 内附20G.5000分钟数据分析工具教程大合集 )   我现在在Coursera上面学data science 中的R programming,过去很少接 ...

  8. 直接拿来用!Facebook移动开源项目大合集

    直接拿来用!Facebook移动开源项目大合集 时间:2014-04-22 15:37 作者:唐小引 随着iOS依赖管理工具CocoaPods和大量第三方开源库成熟起来,业界积累了大量的优秀开源项目. ...

  9. python字符串操作实方法大合集

    python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下:   #1.去空格及特殊符号 s.st ...

  10. Android软件开发之盘点全部Dialog对话框大合集(一)

    对话框大合集 今天我用自己写的一个Demo和大家具体介绍一个Android中的对话框的使用技巧. 1.确定取消对话框 个button   通过调用setPositiveButton方法和 setNeg ...

随机推荐

  1. java关于split分割字符串,空的字符串不能得到的问题

    java关于split分割字符串,空的字符串不能得到的问题   class T { public static void main(String args[]) { String num[] = ne ...

  2. Django模板层

    一:模板简介 二:模板语法值变量 三: 模板之过滤器 四: 模板之标签 五:自定义标签和过滤器   一:模板简介 def current_datetime(request): now=datetime ...

  3. python的return

    关于python的return用法,在stackoverflow里的问题: Python — return, return None, and no return at all Consider th ...

  4. 移动lob类型索引到指定表空间

    WWWNEWSAD 为表名 USERS 为原表空间 CONTENT 为lob类型的字段 DATA_INDEX_WXZJ 指定的表空间 ALTER TABLE WWWNEWSAD MOVE TABLES ...

  5. 看图说说JVM GC收集算法

  6. ZOJ3767 Elevator 2017-04-13 23:32 37人阅读 评论(0) 收藏

    Elevator Time Limit: 2 Seconds      Memory Limit: 65536 KB How time flies! The graduation of this ye ...

  7. NideShop项目的安装部署教程

    本文档为微信小程序商城NideShop项目的安装部署教程,欢迎star NideShop商城api服务:https://github.com/tumobi/nideshop NideShop微信小程序 ...

  8. [label][PHP-Security]PHP Security Program

    本文是通过阅读http://www.nowamagic.net/中的PHP安全变成专题,同时结合个人的一点点开发经验组合而成的. 如果你需要看原文,可以直接访问http://www.nowamagic ...

  9. 开源WebGIS实施方案(三):Shapefile数据导入到PostGIS

    PostGIS新版中提供了一个可视化的工具,用于Shapefile数据的导入和导出,极大的方便了使用者的操作. 创建空间数据库 以具有创建用户权限的账号登录pgAdminIII,连接到数据库 创建一个 ...

  10. mysql导入数据load data infile用法(转)

    们常常导入数据!mysql有一个高效导入方法,那就是load data infile 下面来看案例说明 基本语法: load data  [low_priority] [local] infile ' ...