首页 > 其他分享 >AT_abc_264_g

AT_abc_264_g

时间:2023-05-17 15:00:30浏览次数:40  
标签:26 le 可以 times abc 264 ford 复杂度

题目:AT_abc264_g

链接:洛谷ATvjudge

题意

  • 有 \(n\) 个小写字母字符串 \(T_i(1 \le i \le n)\) 和数组 \(P\),一个非空且只包含小写字母的字符串 \(S\) 的优美度为 \(\sum\limits_{i = 1}^{n}T_i \ 在 \ S \ 中的出现字数 \times P_i\)。问优美度最大值,可以无穷大输出 Infinity

  • 数据范围:\(1 \le n \le 18278, T_i 长度不大于 3 且两两不同,-10^9 \le P_i \le 10^9\)

思路

  • 首先 \(n\) 给了一个奇怪的数值,我们经过一些尝试发现 \(18278 = 26 + 26^2 + 26^3\),说明每个满足要求的 \(T\) 都可能在里面。

  • 闲言少叙,下面进入正题。可以发现有状态 \((i, j, k, w)\) 表示当前后三个字符为 \(i,j,k\) 那么 \((len, i, j, k, w)\) 可以转移到 \((len + 1, j, k, l, w + W(k) + W(jk) + W(ijk))\),\(W(s)(s 为字符串)\) 表示 \(s\) 在 \(n\) 个字符中是否出现过,出现就返回对应 \(P_i\),否则返回 \(0\)。那么我们明显可以做 \(DP\)。

  • 但是其实发现如果把 \(W(k) + W(jk) + W(ijk)\) 看做边权,我就是在做 bellman-ford,而我们发现如果答案为无穷大,就是出现了正环,而 bellman-ford 既然可以用最短路判负环,那当然可以用最长路判正环。

  • 但是这个算法的时间复杂度是不被接受的,bellman-ford 的时间复杂度为 \(O(点数 \times 边数)\),在这里就是 \(26^3 \times 26^4\)(\(w\) 是最优化属性),是会炸掉的。

  • 那该怎么办呢。事实上我们发现 \(26^5\) 是可以过掉的,我们可以考虑一个新的状态:\(f_{i,j}\) 表示后两位为 \(ij\) 的最大答案。那么 \(f_{i,j}\) 可以转移到到 \(f_{j,k}\),正好也可以把后三位得到,时间复杂度过掉了。

  • 注意要把只有一个字符的字符串的答案处理好,\(W()\) 可以用进制得到。

  • 时间复杂度:\((26^5)\)。

标签:26,le,可以,times,abc,264,ford,复杂度
From: https://www.cnblogs.com/xhr0817-blog/p/17408761.html

相关文章

  • 2023.5.16 总结 AT_abc260_g
    atcoderAT_abc260_g题意一个点O可以影响到其它点,能影响到的点的坐标满足:(\((u,v)\)为当前点的坐标,\((x,y)为能影响到的点的坐标\))\(u\lex\)\(v\ley\)\((x-u)+\dfrac{(y-v)}{2}<M\)给\(q\)个询问,问每个点会被几个O给影响。思路题解算法标签差分,很恶......
  • abc260_g Scalene Triangle Area 题解
    题目传送门题意给定一个大小为\(n\timesn\)的字符矩阵,每个字符为X或者O。对于一个位于\((x,y)\)的字符o和一个格子\((u,v)\),如果满足以下条件,那么\((u,v)\)就可以被\((x,y)\)控制。\(x\leqslantu\leqslantn\),\(y\leqslantv\leqslantn\)。\((u-x)+\fr......
  • 基于人工蜂群(ABC)算法和粒子群优化算法的组合求解路径优化问题附Matlab代码
    基于人工蜂群(ABC)算法和粒子群优化算法的组合求解路径优化问题附Matlab代码针对经典人工蜂群算法在机器人路径规划中易于陷入局部极值,且寻优过程收敛速度较慢等问题,提出了一种基于粒子群改进人工蜂群算法.通过设计变异算子来增大极值在陷入局部最优时的跳出概率,提高机器人路径......
  • C#中TabControl相关用法
    https://blog.csdn.net/fenglearning/article/details/118330487https://blog.csdn.net/u011555996/article/details/53199362?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-53199362-blog-118330487.23......
  • ABC 301 Solution
    ABC301SolutionA-OverallWinner首先这个题非常煎蛋,但是我在做题的时候翻译器炸了,然后我就猜了个题意,直接过了B-FilltheGaps这个题的话非常煎蛋,我们在相邻的数补一些数使得所有相邻的数的绝对值是$1$,看这个样例:24642可以变成234565432是不是很好......
  • 【ABC 301】D 思维
    D这道题被卡了很久。。。惭愧。。。题意给你一个由\([0,1,?]\)组成的字符串\(S\)和一个数\(N\)(\(N\leq10^{18}\)),你可以把一个\(?\)变成0或者1,问\(S\)最大能表示的不超过\(N\)的数是多少。正解先判断-1的情况:S能表示的最小的数是所有❓都填0所表示的数字,如果这个数......
  • 正余弦优化算法(SCA)文章复现(非线权重改进位置更新+Levy飞行扰动策略+ABC算法思想)—
    正余弦优化算法(SCA)文章复现(非线权重改进位置更新+Levy飞行扰动策略+ABC算法思想)——SCASL复现内容包括:文章改进SCA算法实现、23个基准测试函数、文中相关因子分析、与SCA对比等。代码基本上每一步都有注释,非常易懂,代码质量极高,便于新手学习和理解。ID:23596702235796......
  • ABC254F 题解
    前言题目传送门!更好的阅读体验?这题trick就是更相减损术:\(\gcd\{a_1,a_2,a_3,\cdots,a_n\}=\gcd\{a_1,a_2-a_1,a_3-a_2,\cdots,a_n-a_{n-1}\}\)。思路有了这个trick之后这题就好做了。并不需要其他题解一样画表格,化简式子就行,过程并没有难点。\[\begin{a......
  • STATA 字母 ABCDEF 转 123456
    clearinputstr10var1ABCDEFendcap:sscinstallsencodesavecishi1,replaceencodevar1,generate(var2)tostringvar2,replacegenvar4=tobytes(var1)genvar6=substr(tobytes(var1),3,.)genvar8=char(real(substr(tobytes(var1),3,.))-16) ......
  • cf 870div2 abcd题解
    A题,先假设一个res从0开始,判断说谎人的个数用ans表示,如果res==ans则假设成立#include<iostream>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefdoubledb;typedefpair<int,int>PII;constllINF=0x3f3f3f3f;constintN=1e4+10;in......