J - MUV LUV EXTRA
J - MUV LUV EXTRA
思路: k m p kmp kmp。
求小数点后面的翻转字符串的循环节和循环长度。
注意循环节长度为1时,答案是 a − b a-b a−b.
时间复杂度: O ( n ) O(n) O(n)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e7+5,M=2e4+5,inf=0x3f3f3f3f,mod=998244353;
#define mst(a,b) memset(a,b,sizeof a)
#define lx x<<1
#define rx x<<1|1
#define reg register
#define PII pair<int,int>
#define fi first
#define se second
#define pb push_back
int f[N];
ll a,b;
char s[N],t[N];
void kmp(char *s,int n){int j=0;for(int i=1;i<n;i++){while(j&&s[i]!=s[j]) j=f[j-1];if(s[i]==s[j]) j++;f[i]=j; }
}
int main(){scanf("%lld%lld%s",&a,&b,s);int k=0,n=strlen(s); for(int i=n-1;s[i]!='.';i--) t[k++]=s[i];kmp(t,k);ll ans=a-b;for(int i=0;i<k;i++){ans=max(ans,a*(i+1)-b*(i+1-f[i]));}printf("%lld\n",ans);return 0;
}
J - MUV LUV EXTRA相关推荐
- 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 ...
- J. MUV LUV EXTRA (KMP求最小循环节)
原题链接 枚举后缀,KMP求每种后缀的最小循环节,更新最优解. #include <bits/stdc++.h> #define int long long using namespace ...
- 2019ccpc秦皇岛J MUV LUV EXTRA(KMP扩展)
Problem Description 鉴纯夏是一名成绩不太好的高中生.一天她在数学考试中碰到了一道求某条线段长度的问题.因为她并不会做这道题,所以她准确地作图后用尺子量出了这条线段的长度.不幸的是, ...
- J - MUV LUV EXTRA(KMP)
感受 思 路 很 简 单 , 就 是 不 知 道 k m p 还 可 以 求 最 小 循 环 节 长 度 思路很简单,就是不知道kmp还可以求最小循环节长度 思路很简单,就是不知道kmp还可以求最小循 ...
- 2019秦皇岛CCPC J - MUV LUV EXTRA
题意:从一个小数的小数部分,计算下面式子的最大值 其中a和b是给定的参数,p是循环结已知的长度,l是循环结的长度 例如对于abab,p是4,l就是2 思路: 贪心的来说我们要让p更大,l尽可能小,所以 ...
- MUV LUV EXTRA 2019CCPC秦皇岛站J
MUV LUV EXTRA 2019CCPC秦皇岛站J (hdu重现赛) 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6740 思路 kmp求循环节 ...
- 2019 CCPC 秦皇岛: MUV LUV EXTRA
MUV LUV EXTRA (本篇主要内容,kmp求最短循环节) 题目传送门: MUV LUV EXTRA 题意: 给你一个字符串和两个整数a和b.在小数点后,找到一个循环节 l,循环长度为p.求 a ...
- 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(Kmp找最小循环节)
MUV LUV EXTRA [Link](Problem - J - Codeforces) 题意 给你a和b和一个小数,让你找 a × 循 环 节 出 现 到 结 尾 的 长 度 + b × 循 环 ...
最新文章
- 云计算机参考架构,云参考架构.PDF
- springboot+thymeleaf+pageHelper带条件分页查询
- 32位python和64位python区别_python32位和64位有什么区别
- 计划任务如何使用 java_java – 如何计划任务以定期间隔运行?
- nginx 反向代理之 proxy_redirect
- linux c获取内存和cpu使用率,linux c程序获取cpu使用率及内存使用情况
- ubuntu常用命令或设置
- 华为云用什么吸引 150 万开发者?
- 树莓派 4G模块 PPP 拨号 NDIS 拨号
- python中如何判断输入的是否是数字_python如何判断输入是不是数字
- select中常用的对象
- 51单片机波特率计算c语言,51单片机波特率怎么算?51单片机波特率计算公式
- 麦克斯韦电磁场理论基础
- 如何从Altium Designer官方网站下载元件库
- APP的原型制作流程
- 神经性脚臭案例整理(三)
- basler相机参数简要中文说明_basler设置相机参数
- vue实现列表的无缝滚动
- 短信平台系统搭建 后台功能管理 web源码架构 多线路由通道详解介绍
- 编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。