hdu6740 MUV LUV EXTRA
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相关推荐
- hdu6740 MUV LUV EXTRA KMP算法
题解:反向用next数组求循环节(前i个字符的)即可. 题目:https://vjudge.net/problem/HDU-6740 #include<bits/stdc++.h> #de ...
- 2019 CCPC 秦皇岛: MUV LUV EXTRA
MUV LUV EXTRA (本篇主要内容,kmp求最短循环节) 题目传送门: MUV LUV EXTRA 题意: 给你一个字符串和两个整数a和b.在小数点后,找到一个循环节 l,循环长度为p.求 a ...
- J - MUV LUV EXTRA
J - MUV LUV EXTRA 思路: k m p kmp kmp. 求小数点后面的翻转字符串的循环节和循环长度. 注意循环节长度为1时,答案是 a − b a-b a−b. 时间复杂度: O ( ...
- 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 ...
- MUV LUV EXTRA 2019CCPC秦皇岛站J
MUV LUV EXTRA 2019CCPC秦皇岛站J (hdu重现赛) 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6740 思路 kmp求循环节 ...
- MUV LUV EXTRA(Kmp找最小循环节)
MUV LUV EXTRA [Link](Problem - J - Codeforces) 题意 给你a和b和一个小数,让你找 a × 循 环 节 出 现 到 结 尾 的 长 度 + b × 循 环 ...
- 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 ...
- MUV LUV EXTRA 2019CCPC秦皇岛站J题 KMP
题目链接 题意:意思给你俩数一个字符串,然后让你对字符串小数点后边的字符串进行处理,找个一个循环节以及对应出现的长度, 然后用a*p-b*l算得到一个最大值 那肯定循环节就想到了KMP了,然后循环长度 ...
- 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 ...
最新文章
- ColorMatrix 彩色矩阵
- 大数据之公开数据的价值
- R语言层次聚类(hierarchical clustering):数据缩放、PCA聚类结果可视化、fpc包的clusterboot函数通过bootstrap重采样的方法评估hclust层次聚类的稳定性
- android报错res\drawable-xhdpi\ic_Dianhua.png: Invalid file name: must contain only [a-z0-9_.]
- 转载:Linux查看设置系统时区
- Linux环境下手动配置sbt
- Session的底层实现原理
- 缓存初解(五)---SpringMVC基于注解的缓存配置--web应用实例
- 地面控制点的定义与作用_彩色透水混凝土路面在海绵城市建设中能起多大作用?...
- Pytorch下使用多GPU训练模型
- 西门子、三菱、台达PLC手机组态软件,支持modbus协议的ModbusTesla手机组态软件 只支持modbus tcp,只要下位机支持标准的modbus协议就可以
- discuz 登录代码
- bootstrap在线定制工具
- 云课堂 php代码,基于ThinkPHP二开高仿网易云课堂整站PHP源代码
- 蓝牙技术|传统手表品牌加入智能手表竞争,智能手表市场持续火热
- 2022年京东618店庆活动优惠力度怎么样?
- android中view手势滑动冲突的两种解决方法
- java中多态的作用,多态的好处,以及为什么要用多态?
- 浮点尾数特性详解(02325计算机系统结构)
- 图片转成Excel的一种方法
热门文章
- 解决Win10系统进行共享时候弹出0x80070035错误代码的方法
- 周迅 女明星卸妆后判若两人 (图)
- M1处理器安装 cocoapods
- 贝叶斯相关(概率论)论文
- 【政府调研】郑州市商务局领导一行莅临中创算力进行指导工作
- c 水仙花数(linux中寻找水仙花数)
- Xcode真机调试报错:The application could not be verified.
- DevExpress Blazor UI组件v20.2新版亮点:报表控件支持Blazor
- 约瑟夫问题——C语言实现
- installshield 安装mysql数据库_Installshield2010 实现web部署和数据库安装示例 - 邀月周记 - CS......