【BZOJ3555】企鹅QQ
蛤希。
用map会T。
只需要枚举删掉哪个字符,然后算出每个的hash值,sort一遍就行了。
用map会T!!!
// It is made by XZZ
#include<cstdio>
#include<algorithm>
#include<map>
#define il inline
#define rg register
#define vd void
#define sta static
typedef long long ll;
il int gi(){
rg int x=0,f=1;rg char ch=getchar();
while(ch<'0'||ch>'9')f=ch=='-'?-1:f,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*f;
}
#define mod 998244353
#define Mod 10000000009
char s[210];
ll base[210],f[210],F[30010][210],Base[210],g[210],G[30010][210];
ll S[30010];
int main(){
#ifdef xzz
freopen("3555.in","r",stdin);
freopen("3555.out","w",stdout);
#endif
int n=gi(),L=gi();gi();
ll ans=0;
base[0]=1;for(rg int i=1;i<=L;++i)base[i]=base[i-1]*8237%mod;
Base[0]=1;for(rg int i=1;i<=L;++i)Base[i]=Base[i-1]*19260817%mod;
for(rg int yyb=1;yyb<=n;++yyb){
scanf("%s",s+1);
for(rg int i=1;i<=L;++i)f[i]=(s[i]*233%2333)*base[i]%mod;
F[yyb][1]=0;
for(rg int i=1;i<=L;++i)F[yyb][1]+=f[i];
F[yyb][1]%=mod;for(rg int i=1;i<=L;++i)F[yyb][i]=F[yyb][1];
for(rg int i=1;i<=L;++i)F[yyb][i]=(F[yyb][i]-f[i]+mod)%mod;
for(rg int i=1;i<=L;++i)g[i]=(s[i]*233%2333)*Base[i]%Mod;
G[yyb][1]=0;
for(rg int i=1;i<=L;++i)G[yyb][1]+=g[i];
G[yyb][1]%=Mod;for(rg int i=1;i<=L;++i)G[yyb][i]=G[yyb][1];
for(rg int i=1;i<=L;++i)G[yyb][i]=(G[yyb][i]-g[i]+Mod)%Mod;
}
for(rg int i=1;i<=L;++i){
for(rg int j=1;j<=n;++j)S[j]=F[j][i]*mod+G[j][i];
std::sort(S+1,S+n+1);
int t=0;
for(rg int j=1;j<=n;++j)
if(S[j]==S[j-1])ans+=t++;
else t=1;
}
printf("%lld\n",ans);
return 0;
}
【BZOJ3555】企鹅QQ的更多相关文章
- [bzoj3555]企鹅QQ(hash)
3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1645 Solved: 616[Submit][Statu ...
- bzoj3555 企鹅QQ
3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1640 Solved: 613 Description P ...
- p4503&bzoj3555 企鹅QQ
传送门(洛谷) 传送门(bzoj) 题目 PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志.群.即时通讯.相 ...
- 【BZOJ3555】 [Ctsc2014]企鹅QQ
BZOJ3555 [Ctsc2014]企鹅QQ Solution 只需要前缀Hash,然后考虑每一段的贡献就好了!!! 代码实现 #include<stdio.h> #include< ...
- 【BZOJ3555】企鹅QQ(字符串哈希)
[BZOJ3555]企鹅QQ(字符串哈希) 题面 BZOJ 题解 把前缀哈希一下,后缀哈希一下 枚举哪个位置不选,然后检查一下相同就行了.. 为什么我的\(Hash\)老是\(WA\), 为什么\(Z ...
- 【BZOJ3555】[Ctsc2014]企鹅QQ hash
[BZOJ3555][Ctsc2014]企鹅QQ Description PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础, ...
- 【BZOJ-3555】企鹅QQ 字符串Hash
3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1545 Solved: 593[Submit][Statu ...
- bzoj3555: [Ctsc2014]企鹅QQ
将字符串hash.不难写.然而1.注意用longlong2.数组大小注意...3.似乎别人都用的unsigned long long ?. #include<cstdio> #includ ...
- BZOJ 3555: [Ctsc2014]企鹅QQ [字符串哈希]【学习笔记】
3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 2046 Solved: 749[Submit][Statu ...
- BZOJ 3555: [Ctsc2014]企鹅QQ hash
3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
随机推荐
- 数据库对比:选择MariaDB还是MySQL?
作者 | EverSQL 译者 | 无明 这篇文章的目的主要是比较 MySQL 和 MariaDB 之间的主要相似点和不同点.我们将从性能.安全性和主要功能方面对这两个数据库展开对比,并列出在选择数据 ...
- linux下指定源下载
我们默认使用yun 安装的时候 使用的 是外国的网站进行下载的 那么下载肯定是慢的 我们可以更改为国内的站点进行下载的 比如临时更改为国内的站点进行下载 pip install -i +你的源 p ...
- [控件] 创建出条形间隔效果的背景LineBackgroundView
创建出条形间隔效果的背景LineBackgroundView 效果: 使用: // // ViewController.m // LineBackgroundView // // Created by ...
- CSS一个属性,让图片后的文字垂直居中,效果看得见
困扰我多年的疑难,终于解决了.哈哈哈,太爽了 背景 页面经常遇到,图片后面的文字显示在图片的中间部位,也就是说文字图片垂直居中. <div class="banner"> ...
- IntelliJ IDEA2017/2018 激活方法 破解补丁激活(亲测可用)(注册码方法以和谐)
IntelliJ IDEA2017 激活方法(注册码方法以和谐): 搭建自己的授权服务器,对大佬来说也很简单,我作为菜鸟就不说了,网上有教程. 我主要说第二种,现在,直接写入注册码,是不能成功激活的( ...
- spring4声明式事务--01注解方式
1.在spring配置文件中引入 tx 命名空间 xmlns:tx="http://www.springframework.org/schema/tx" 2.配置事务管理器 < ...
- (1)Object类 (2)包装类和数学处理类 (3)String类
1.Object类1.1 基本概念 java.lang.Object类是Java类层次结构的根类,任何类都是Object类的直接/间接子类. 1.2 常用的方法(重点) Object() - 无参构造 ...
- 原生 JS 的 Base64 转码
JavaScript 原生提供两个 Base64 相关的方法: btoa():任意值转为 Base64 编码 atob():Base64 编码转为原来的值 注意:这两个方法不适合非 ASCII 码的字 ...
- Mina使用总结(二)Handler
Handler的基本作用,处理接收到的客户端信息 一个简单的Handler实现如下: package com.bypay.mina.handler; import java.util.Date; im ...
- 20145203盖泽双 《Java程序设计》第十周学习总结
20145203盖泽双 <Java程序设计>第十周学习总结 教材学习内容总结 一.网络概述 1.网络编程就是两个或多个设备(程序)之间的数据交换. 2.识别网络上的每个设备:①IP地址②域 ...