首页 > 其他分享 >Palindrome-less Arrays

Palindrome-less Arrays

时间:2023-11-14 15:57:31浏览次数:34  
标签:方案 Palindrome less Arrays times 相等 回文 dp neq

here

哥们不会组合数学。

首先类似这题,得出没有回文串的充要条件是没有长度为 3 的回文串。

长度为 3 的回文串,\(a_i,a_{i+1},a_{i+2}\),只要满足 \(a_i \neq a_{i+2}\) 即可,也就是说奇数位、偶数位抠出来,新数组中相邻的数不相同。

考虑 dp,一种显然的 dp 是设 \(f_{i,j}\) 为 \([1,i]\) 中,\(a_i = j\) 的方案数。

这个时候我们发现值域有保证 \(1 \le a_i \le k\),也就是给定的数也在 \([1,k]\) 范围内,和未确定的数的范围是一样的。

这种同值域就可以让我们进行组合数学。

从整体上看,方案数的贡献是来自于一段连续的 -1(只有它们产生了变量),所以考虑只看连续的 -1 段,然后组合起来。

-1 段可能有些限制,也可能没有限制。

没有限制(两边都没有数字),长度为 \(n\) 的 -1 段的方案数就是 \(k \times (k-1)^{n-1}\)。

有一端有数 \(x\),说明这一端开始的一位不能和数 \(x\) 一样,而数 \(x\) 一定在 \([1,k]\) 中,所以方案数是 \((k-1)^n\)。

两端都有数 \(x, y\),这个时候难以直接推式子,考虑dp。

这种较为复杂的组合数学的 dp,一般采用记忆化搜索,可以让分讨变得比较简洁。

首先看一下边界,如果 \(x = y\),那么为 \(k - 1\),否则为 \(k - 2\)。

看 \(n \ge 2\) 的情况,比如 \(n = 2\),发现如果最后一位是 \(x\),那么转移是 \(k - 1\),对应 \(n = 1, x' = y'\) 的情况,而且此时要满足 \(x \neq y\);如果最后一位不是 \(x\),那么对应 \(n = 1, x' \neq y'\) 的情况。我们发现 \(x\) 和 \(y\) 相不相等影响了我们的转移,而且难以讨论,所以加到状态里面。

设 \(dp_{i, 0/1}\) 分别表示 \([1,i]\) 中 \(x=y\) 和 \(x \neq y\) 的方案数。

考虑 \(dp_i\) 怎么转成 \(dp_{i-1}\) 的方案,我们发现此时 \(a_i\) 才是与 \(a_{i-1}\) 相邻的数,而非 \(y\)。

如果 \(x = y\),那么 \(y\) 和 \(a_i\) 必然不相等(相邻),\(x\) 和 \(a_i\) 必然不相等,可以从 \(dp_{i-1,1} \times (k - 1)\) 转移过来。

如果 \(x \neq y\),那么 \(x\) 和 \(a_i\) 可以相等,此时 \(a_i\) 固定,方案是 \(dp_{i-1,0}\),也可以不相等,当然 \(a_i\) 也不能等于 \(y\),所以 \(a_i\) 有 \(k-2\) 种取值,方案是 \(dp_{i-1,1}\times (k - 2)\)。

有点恶心……

标签:方案,Palindrome,less,Arrays,times,相等,回文,dp,neq
From: https://www.cnblogs.com/zhangchenxin/p/17831789.html

相关文章

  • [USACO23FEB] Equal Sum Subarrays G 题解
    [USACO23FEB]EqualSumSubarraysG题解题目链接\(O(n^5)\)暴力显然,如果修改\(a_i\)的值,只会影响包含\(a_i\)的区间的区间和。于是对于每个\(a_i\),可以将所有区间分成两类,即包含\(a_i\)的区间和不包含\(a_i\)的区间。这两种区间的区间和中最小的差值即为答案。......
  • [CF1895F] Fancy Arrays
    先把存在性容斥一下。变成\([0,\infty]\)减去\([0,x-1]\)和\([x+k,\infty]\)。\([0,x-1]\)的答案显然可以矩阵快速幂\(\mathcalO(x^3\logn)\)求。考虑剩下两个。注意到两个单拎出来都不好求,所以直接求这两个的差。注意到限制在于相邻项的差,于是我们去枚举差分数组,共有......
  • [V8] Holey Arrays
    Whatisholeyarray:anarraywithhole(s)constarray=[1,2,,3]Whythisisaproblem?Shouldarray[2]tobeundefined?Yesandno..normallyitis undefined,butbeforethat,VMhasbeencheck Array.prototypetosee Array.prototype["2"]whethe......
  • Util应用框架基础(六) - 日志记录(四) - 写入 Exceptionless
    本文是Util应用框架日志记录的第四篇,介绍安装和写入Exceptionless日志系统的配置方法.Exceptionless是一个日志管理系统,使用Asp.NetCore开发,比Seq的模糊搜索能力弱,使用它可能需要一些技巧.Util应用框架目前主要使用Seq和Exceptionless管理日志.你可以从中选择......
  • C. Serval and Toxel's Arrays 组合数学
    题目链接......
  • 线程安全集合(JDK1.5之前和之后)、CopyOnWriteArrayList、CopyOnWriteArraySet
    JDK1.5之前JDK1.5之前:Collections.synchronizedList JDK1.5之后CopyOnWriteArrayList   CopyOnWriteArraySet    ......
  • 关于Java使用Arrays类的equals()函数比较两个数组是否相等功能的实战
    关键词:文件流问题:二进制流文件丢失解决方法:java.util.Arrays.equals(byte1[],byte2[])分析:Arrays.equals()函数比较的是数组的内容而不是引用。也就是说,只有数组的元素内容相同,并且顺序也相同,才会返回true。      如果数组的元素内容相同但顺序不同,或者数组的引用......
  • Linkless Link Prediction via Relational Distillation
    目录概符号说明LLP代码GuoZ.,ShiaoW.,ZhangS.,LiuY.,ChawlaN.V.,ShahN.andZhaoT.Linklesslinkpredictionviarelationaldistillation.ICML,2023.概从GNN教师模型蒸馏到MLP学生模型.符号说明\(G=(\mathcal{V,E})\),无向图;\(\mathbf{A}\in......
  • 云原生微服务的下一站:Proxyless Service Mesh
    本文分享自华为云社区《DTSETechTalk|第46期:云原生微服务的下一站:ProxylessServiceMesh》,作者:华为云社区精选。本期直播主题是《云原生微服务的下一站:ProxylessServiceMesh》,华为云云原生DTSE技术布道师、华为云技术规划专家,Sermant开源社区创始人杨奕以及华为云云原生DT......
  • 循环神经网络 —— LSTM 有状态模型(stateful LSTM)和无状态模型(stateless LSTM)
    相关参考:训练后的LSTM模型在进行预测时的初始h_n和c_n是什么或应该怎么设置?   Keras中对RNN网络的statefull和stateless设置:链接:https://keras.io/zh/getting-started/faq/#how-can-i-use-stateful-rnns   =============================================== ......