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

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. Hdu1051 Wooden Sticks 2017-03-11 23:30 62人阅读 评论(0) 收藏

    Wooden Sticks Problem Description There is a pile of n wooden sticks. The length and weight of each ...

  2. 团队博客第三周(Running Duck队)

    代码链接:Tetris 码云链接 一.需求&原型改进 1.原型改进 汉字方块每次可生成一个并逐渐下落 可通过触摸左右下滑动实现方块的左右移动和快速下滑 左上角按钮可对汉字进行暂时保存和替换 右 ...

  3. [CentOS]CentOS下编译CPP文件时报错[undefined reference to `__gxx_personality_v0' collect2: ld]的解决办法

    在CentOS环境下编译CPP时报出 undefined reference to `__gxx_personality_v0' collect2: ld 以上错误,调查了一下,加上参数[-lstdc ...

  4. IDEA 配置SSH2

    系统换成了mac os,因为喜欢它的界面体验,同时受不了win下面系统对硬盘的疯狂访问.发现在mac下面,IDEA真的不错,速度上快,并且它的智能提示真的很厉害.但是导入一个myeclipse的ssh ...

  5. Hadoop 集群配置记录小结

    Hadoop集群配置往往按照网上教程就可以"配置成功",但是你自己在操作的时候会有很多奇奇怪怪的问题出现, 我在这里整理了一下常见的问题与处理方法: 1.配置/etc/hosts ...

  6. Hadoop HDFS HA启动出现两个StandBy NameNode

    可能是zkfc服务没有启动,正确的流程如下: 1.在nn001上格式化zkfc sudo -u hdfs hdfs zkfc -formatZK 2.在三个(或以上)节点上启动journalnode ...

  7. SQL字符串分割转列,Sql列转字符串

    declare @strVar varchar(2000)declare @ResultVar varchar(2000)set @ResultVar='[薄饼],[点心],[海鲜],[酒吧],[楼面 ...

  8. 学习css(一)

    font:12px/22px "\5B8B\4F53",Arial, Helvetica, sans-serif font:12px/22px 指 字体大小/字体行高 " ...

  9. (zxing.net)一维码EAN 13的简介、实现与解码

    一维码EAN 13:属于国际标准条码, 由13个数字组成,为EAN的标准编码型式(EAN标准码). 依结构的不同,EAN条码可区分为: EAN 13码: 由13个数字组成,为EAN的标准编码型式(EA ...

  10. Kafka与.net core(三)kafka操作

    1.Kafka相关知识 Broker:即Kafka的服务器,用户存储消息,Kafa集群中的一台或多台服务器统称为broker. Message消息:是通信的基本单位,每个 producer 可以向一个 ...