19-10-18-Y
ZJ一下:
感觉能拿到的分都拿到了,至于后来改题就缶了
其实是:太tui导致没改好
TJ:
T1:
正解是$\mathsf{KMP}$,但是广大群众都用了$\mathsf{hash}$……
发现了一个巨的素数,它太好看辣!
$$\underbrace{1111111111111111111}_{19个1}$$
#include <iostream>
#include <cstring>
#include <cstdio>
#define L 1111111
#define LL long long using namespace std; const int Mod=1e9+9,Upbit=4373;//1111111111111111111
int tim,len;
char st[L];
LL hsp[L],hsp2[L];
LL pubh,sths;
LL lva,rva;
LL ans=0; LL ppow(LL a,LL b){
LL res=1;
a%=Mod;
b%=Mod-1;
while(b){
if(b&1)res=res*a%Mod;
a=a*a%Mod;
b>>=1;
}
return res;
}
inline LL tur(const char ch){
return ch-'A'+1;
}
int main(){
// freopen("ccx.in" ,"r",stdin);\
// freopen("ccx.out","w",stdout);
hsp[0]=1;
for(int i=1;i<=1000000;i++)
hsp[i]=hsp[i-1]*Upbit%Mod;
int T;
cin>>T;
while(T--){
memset(hsp2,0,sizeof hsp2);
ans=sths=pubh=0;
scanf("%d%d%s",&tim,&len,st+1);
// puts("Inputend");
for(int i=1;i<=len;i++)
sths=(sths*Upbit%Mod+tur(st[i]))%Mod;
// puts("String hash end");
hsp2[0]=ppow(Upbit,1ll*len*(tim-1));
for(int i=1;i<=len;i++)
hsp2[i]=hsp2[i-1]*Upbit%Mod;
// puts("Hash tim*len end");
for(int i=1;i<tim;i++)
pubh=(pubh*hsp[len]%Mod+sths)%Mod;
// puts("One Hash end");
rva=lva=pubh;
ans=1ll*len*(tim-1);
// puts("Start Che!");
for(int r=1,l=len;r<len;r++,l--){
rva=(rva*Upbit%Mod+tur(st[r]))%Mod;//Add
lva=(lva+hsp2[r-1]*tur(st[l])%Mod)%Mod;
// cout<<r<<" "<<l<<" "<<rva<<" "<<lva<<endl;
if(rva==lva)
ans=max(ans,1ll*r+1ll*len*(tim-1));
// cout<<ans<<endl;
}
// puts("end Che!");
if(ans==0)ans=-1;
printf("%lld\n",ans);
}
}
T2
因为tui改T3而没看
T3
可以使用倍增或是树剖完成。
但是现在方法也没有人成功用树剖AC。
有人成功了嘛,可以在下面评论。
(咕!)
19-10-18-Y的更多相关文章
- 程序员的 Ubuntu 19.10 配置与优化指南
原文地址:程序员的 Ubuntu 19.10 配置与优化指南 0x00 环境 CPU: Intel Core i9-9900k GPU: GeForce RTX 2070 SUPER RAM: DDR ...
- Kubernetes部署通用手册 (支持版本1.19,1.18,1.17,1.16)
Kubernetes平台环境规划 操作环境 rbac 划分(HA高可用双master部署实例) 本文穿插了ha 高可用部署的实例,当前章节设计的是ha部署双master 部署 内网ip 角色 安装软件 ...
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
摘自: http://www.blogjava.net/BlueSUN/archive/2007/03/10/103014.html Groovy轻松入门--通过与Java的比较,迅速掌握Groovy ...
- [java面试]逻辑推理6 10 18 32 下一个数?编程实现输入任意一个N位置,该数是多少?java实现
题目: 6 10 18 32 下一个数?编程实现输入任意一个N位置,该数是多少? 10 = 6 + 4 4 18 = 10 + 8 4 + 4 32 = 18 + 14 ...
- First Scrum Meeting (2015/10/18)
会议是在昨晚进行的,本来早就应该写博了,可惜今天校园网炸个不停= =.刚修好就赶紧来发博客. 会议基本要素 会议主题:爬虫项目的核心技术讨论以及项目初期的工作分配 会议时间:2015.10.18 19 ...
- 对于最近的一些日常总结by520(17.10.18)
---天天考试,各种题型都有,学到了很多新的知识,也发现了自己的许多不足---1.首先,自己的搜索需要加强,特别是广搜,10.18的T1裸广搜没有做对.2.数学的思维和一些逻辑问题需要加强,然后就是要 ...
- Unix 网络编程卷一源码编译踩坑记录 ubtutu 19.10
在阅读unpv1时运行源代码的环境配置,这里简单记录一下 源代码里的README 写得挺详细的,但是在Linux 系统的下还没没办法直接编译通过的, 这里我使用的是ubuntu 19.10(在腾讯云1 ...
- 背水一战 Windows 10 (18) - 绑定: 与 Element 绑定, 与 Indexer 绑定, TargetNullValue, FallbackValue
[源码下载] 背水一战 Windows 10 (18) - 绑定: 与 Element 绑定, 与 Indexer 绑定, TargetNullValue, FallbackValue 作者:weba ...
- 九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <init> 严重: The ResourceConfig instance does not contain any root resource classes.
Tomcat启动错误:九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <i ...
- 下面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11 int x=10; int y=x++; printf("%d,%d",(x++,y),y++);
下面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11 int x=10; int y=x++; printf("%d,%d",(x++,y) ...
随机推荐
- Python 实现0-1背包
代码: import numpy as np c=10 #背包容量 w=[2,2,6,5,4] #物品重量 v=[5,3,5,4,6] #物品价值 flag =[0,0,0,0,0] m=np.zer ...
- Mysql配置innodb_flush_log_at_trx_commit
当innodb_flush_log_at_trx_commit被 设置为0,日志缓冲每秒一次地被写到日志文件,并且对日志文件做到磁盘操作的刷新,但是在一个事务提交不做任何操作.当这个值为1(默认值)之 ...
- 一个mdl相关的问题
感觉挺有意义的,细节问题 http://www.kernelmode.info/forum/viewtopic.php?f=14&t=4318这个人代码到底犯了什么错误 I want to p ...
- linux 2.6 内核的移植
内核移植过程 下载 linux 内核 从 http://www.kernel.org/pub/linux/kernel/v2.6/linux2.6.14.1.tar.bz2 下载 linux2 ...
- JS数组 二维数组 二维数组的表示 方法一: myarray[ ][ ];方法二:var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3, ]]
二维数组 一维数组,我们看成一组盒子,每个盒子只能放一个内容. 一维数组的表示: myarray[ ] 二维数组,我们看成一组盒子,不过每个盒子里还可以放多个盒子. 二维数组的表示: myarray[ ...
- thinkphp 表达式查询
上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式: $map['字段名'] = array('表达式','查 ...
- ThinkPHP 读取数据
在ThinkPHP中读取数据的方式很多,通常分为读取数据.读取数据集和读取字段值. 步进电机和伺服电机 数据查询方法支持的连贯操作方法有: 连贯操作 作用 支持的参数类型 where 用于查询或者更新 ...
- canvas石英钟
canvas石英钟:demo <!DOCTYPE html> <html> <head lang="en"> <meta charset= ...
- String方法之fromCharCode()和charCodeAt()
1.fromCharCode fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串. 语法 我们可以根据 Unicode 来输出 "HELLO" ...
- 牛人blog 头脑风暴 (持续添加与更新)
Http协议详解 http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html android 实现分享功能两种方法 http://w ...