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) ...
随机推荐
- Windbg Step 2 分析程序堆栈实战
#include "stdafx.h" #include <tchar.h> #ifdef _UNICODE #define _ttol _wtol #else #de ...
- SGLTE/SVLTE、CSFB、SRVCC概念
SGLTE:Simultaneous GSM and LTE,手机可以同时驻留在GSM和LTE网络中,打电话通过GSM网络进行,数据业务通过LTE网络进行. SVLTE:Simultaneous V ...
- Linux 实用指令(8)--网络配置
目录 网络配置 1 Linux网络配置原理图(含虚拟机) 2 查看网络IP和网关 2.1 查询虚拟网络编辑器 2.2 修改IP地址(修改虚拟网络的IP) 2.3 查看网关 2.4 查看windows环 ...
- winform 旋转图片
//img.RotateFlip(RotateFlipType.Rotate90FlipNone); //顺时针旋转90度 RotateFlipType.Rotate90FlipNone //逆时针旋 ...
- 洛谷P2325 [SCOI2005]王室联邦
P2325 [SCOI2005]王室联邦 题目描述 "余"人国的国王想重新编制他的国家.他想把他的国家划分成若干个省,每个省都由他们王室联邦的一个成员来管理. 他的国家有n个城市, ...
- 二.ES6新的声明方式
前言: 以前我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种声明方式了. 字面理解ES6的三种声明方式: var:它是variable的简写,可以理解成变量 ...
- 关于join的一些补充
1, 为什么join是string的method而不是list的method http://effbot.org/pyfaq/why-is-join-a-string-method-instead-o ...
- SpringCloud搭建分布式配置中心(基于git)
1.简介 Spring Cloud Config.它用来为分布式系统中的基础设施和微服务提供集中化的外部配置支持,分为服务端和客户端两个部分. 其中服务端也称为分布式配置中心,他是独立的微服务应用,用 ...
- Cordova 常用命令及插件
安装 cordova: npm install -g cordova 创建应用程序 cordova create hello com.example.hello HelloWorld 添加平台 co ...
- 深入浅出 Java Concurrency (28): 线程池 part 1 简介[转]
从这一节开始正式进入线程池的部分.其实整个体系已经拖了很长的时间,因此后面的章节会加快速度,甚至只是一个半成品或者简单化,以后有时间的慢慢补充.完善. 其实线程池是并发包里面很重要的一部分,在实际情况 ...