http://acm.hdu.edu.cn/showproblem.php?pid=6740

kmp水题,由于是a*已出现长度-b*循环节长度,所以说循环节越小越好,那么联想到kmp求nxt数组的时候可以知道当前长度i的最小循环节是i-nxt[i],所以直接把小数点后面的数字反过来,然后求一遍nxt数组,边求边记录最大值。

由于kmp的nxt数组是从第二位开始向本身匹配的,所以ans的初值赋值为a-b,即最后一位,它自己本身是循环节的情况。

#include<bits/stdc++.h>
#define maxl 10000010
using namespace std;const long long inf=1ll<<61;long long a,b,ans;
int slen,tlen;
int nxt[maxl];
char s[maxl],t[maxl];inline void prework()
{scanf("%s",s+1);slen=strlen(s+1);tlen=0;for(int i=slen;i>=1;i--)if(s[i]=='.')break;elset[++tlen]=s[i];
}inline void mainwork()
{ans=a-b;int j=0;nxt[1]=0;for(int i=2;i<=tlen;i++){while((j && t[j+1]!=t[i]) || (j==tlen))j=nxt[j];if(t[j+1]==t[i] && j+1<=tlen)j++;nxt[i]=j;ans=max(ans,a*i-b*(i-nxt[i]));}
}inline void print()
{printf("%lld\n",ans);
}int main()
{while(~scanf("%lld%lld",&a,&b)){prework();mainwork();print();}return 0;
}

hdu6740 MUV LUV EXTRA相关推荐

  1. hdu6740 MUV LUV EXTRA KMP算法

    题解:反向用next数组求循环节(前i个字符的)即可. 题目:https://vjudge.net/problem/HDU-6740 #include<bits/stdc++.h> #de ...

  2. 2019 CCPC 秦皇岛: MUV LUV EXTRA

    MUV LUV EXTRA (本篇主要内容,kmp求最短循环节) 题目传送门: MUV LUV EXTRA 题意: 给你一个字符串和两个整数a和b.在小数点后,找到一个循环节 l,循环长度为p.求 a ...

  3. J - MUV LUV EXTRA

    J - MUV LUV EXTRA 思路: k m p kmp kmp. 求小数点后面的翻转字符串的循环节和循环长度. 注意循环节长度为1时,答案是 a − b a-b a−b. 时间复杂度: O ( ...

  4. HDU-6740-J. MUV LUV EXTRA

    HDU-6740-J. MUV LUV EXTRA 题目 MUV LUV EXTRA Time Limit: 2000/1500 MS (Java/Others) Memory Limit: 2621 ...

  5. MUV LUV EXTRA 2019CCPC秦皇岛站J

    MUV LUV EXTRA 2019CCPC秦皇岛站J (hdu重现赛) 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6740 思路 kmp求循环节 ...

  6. MUV LUV EXTRA(Kmp找最小循环节)

    MUV LUV EXTRA [Link](Problem - J - Codeforces) 题意 给你a和b和一个小数,让你找 a × 循 环 节 出 现 到 结 尾 的 长 度 + b × 循 环 ...

  7. 2019CCPC秦皇岛赛区 hdu 6740 MUV LUV EXTRA(KMP next数组)

    传送门 MUV LUV EXTRA Time Limit: 2000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Othe ...

  8. MUV LUV EXTRA 2019CCPC秦皇岛站J题 KMP

    题目链接 题意:意思给你俩数一个字符串,然后让你对字符串小数点后边的字符串进行处理,找个一个循环节以及对应出现的长度, 然后用a*p-b*l算得到一个最大值 那肯定循环节就想到了KMP了,然后循环长度 ...

  9. 39行代码AC_HDU-6740 2019CCPC秦皇岛 J MUV LUV EXTRA(KMP变形)

    励志用少的代码做高效表达 Problem description One day, Kagami Sumika is stuck in a math problem aiming at calcula ...

最新文章

  1. ColorMatrix 彩色矩阵
  2. 大数据之公开数据的价值
  3. R语言层次聚类(hierarchical clustering):数据缩放、PCA聚类结果可视化、fpc包的clusterboot函数通过bootstrap重采样的方法评估hclust层次聚类的稳定性
  4. android报错res\drawable-xhdpi\ic_Dianhua.png: Invalid file name: must contain only [a-z0-9_.]
  5. 转载:Linux查看设置系统时区
  6. Linux环境下手动配置sbt
  7. Session的底层实现原理
  8. 缓存初解(五)---SpringMVC基于注解的缓存配置--web应用实例
  9. 地面控制点的定义与作用_彩色透水混凝土路面在海绵城市建设中能起多大作用?...
  10. Pytorch下使用多GPU训练模型
  11. 西门子、三菱、台达PLC手机组态软件,支持modbus协议的ModbusTesla手机组态软件 只支持modbus tcp,只要下位机支持标准的modbus协议就可以
  12. discuz 登录代码
  13. bootstrap在线定制工具
  14. 云课堂 php代码,基于ThinkPHP二开高仿网易云课堂整站PHP源代码
  15. 蓝牙技术|传统手表品牌加入智能手表竞争,智能手表市场持续火热
  16. 2022年京东618店庆活动优惠力度怎么样?
  17. android中view手势滑动冲突的两种解决方法
  18. java中多态的作用,多态的好处,以及为什么要用多态?
  19. 浮点尾数特性详解(02325计算机系统结构)
  20. 图片转成Excel的一种方法

热门文章

  1. 解决Win10系统进行共享时候弹出0x80070035错误代码的方法
  2. 周迅 女明星卸妆后判若两人 (图)
  3. M1处理器安装 cocoapods
  4. 贝叶斯相关(概率论)论文
  5. 【政府调研】郑州市商务局领导一行莅临中创算力进行指导工作
  6. c 水仙花数(linux中寻找水仙花数)
  7. Xcode真机调试报错:The application could not be verified.
  8. DevExpress Blazor UI组件v20.2新版亮点:报表控件支持Blazor
  9. 约瑟夫问题——C语言实现
  10. installshield 安装mysql数据库_Installshield2010 实现web部署和数据库安装示例 - 邀月周记 - CS......