暴力枚举不同的一位即可。。

主要是常数问题

1.统计答案时用sort速度快于用tr1/unordered_map,后者又快于map

(tr1/unordered_map完全达不到理论复杂度上的O(1)一次操作)(虽然复杂度一样,sort后统计比map要快得多)

2.幸好没卡自然溢出...双模hash直接T飞

 #pragma GCC optimize(3)
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
#define fi first
#define se second
#define mp make_pair
#define pb push_back
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
namespace Hash
{
typedef ull Hdata;
#define N 1000000
const int X=;
Hdata pwx[N+];
void init()
{
pwx[]=;
for(int i=;i<=N;i++) pwx[i]=pwx[i-]*X;
}
struct H
{
Hdata h;int sz;
H():h(),sz(){}
H(const Hdata &a,int b):h(a),sz(b){}
};
H operator+(const H &a,const H &b)
{
H ans;ans.sz=a.sz+b.sz;
ans.h=a.h+b.h*pwx[a.sz];
return ans;
}
bool operator==(const H &a,const H &b)
{
return a.sz==b.sz&&a.h==b.h;
}
}
using Hash::Hdata;
using Hash::H;
using Hash::X;
using Hash::pwx; int n,l,s;ll ans;
struct S
{
Hdata hs[];
S& operator=(const char *s)
{
for(int i=;i<=l;i++)
{
hs[i]=hs[i-]*X+s[i];
}
return *this;
}
H gett(int l,int r)
{
if(l>r) return H();
return H(hs[r]-hs[l-]*pwx[r-l+],r-l+);
}
}ss[];
char tmp[];
Hdata tta[];
int main()
{
int i,j,ttt,tt2;
Hash::init();
scanf("%d%d%d",&n,&l,&s);
for(i=;i<=n;i++)
{
scanf("%s",tmp+);
ss[i]=tmp;
}
for(j=;j<=l;j++)
{
ttt=;
for(i=;i<=n;i++)
tta[++ttt]=(ss[i].gett(,j-)+ss[i].gett(j+,l)).h;
sort(tta+,tta+ttt+);tt2=;
for(i=;i<=ttt;i++)
{
tt2++;
if(i==ttt||tta[i+]!=tta[i])
{
//printf("%d %d\n",j,tt2);
ans+=tt2*(tt2-)/;
tt2=;
}
}
}
printf("%lld",ans);
return ;
}

洛谷 P4503 [CTSC2014]企鹅QQ的更多相关文章

  1. 洛谷 P4503 [CTSC2014]企鹅QQ 解题报告

    P4503 [CTSC2014]企鹅QQ 题目背景 PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志.群.即 ...

  2. [洛谷P4503][CTSC2014]企鹅QQ

    题目大意:给你$n(n\leqslant3\times10^4)$个长度为$l(l\leqslant200)$的字符串,要你求出有多少对字符串是相似的,相似的定义是两个字符串只在一位上不同. 题解:可 ...

  3. 洛谷$P4503\ [CTSC2014]$企鹅$QQ$ 哈希

    正解:哈希 解题报告: 传送门$QwQ$ 直接$O(len)$枚举哪一位,然后把这一位删了重新拼接起来,存桶里查下就成 $over$? 主要的难点大概在卡哈希+卡常$QAQ$ #include< ...

  4. Luogu P4503 [CTSC2014]企鹅QQ(字符串哈希)

    P4503 [CTSC2014]企鹅QQ 题面 题目背景 \(PenguinQQ\) 是中国最大.最具影响力的 \(SNS(Social Networking Services)\) 网站,以实名制为 ...

  5. 【题解】P4503 [CTSC2014]企鹅QQ(哈希)

    [题解]P4503 [CTSC2014]企鹅QQ(哈希) 考虑这样一种做法,将每个字符串的删去某个字符的新字符串的哈希值存下来,然后最后\(sort\)一遍双指针统计每个值相同的数的个数\(x\),这 ...

  6. 字符串Hash || BZOJ 3555: [Ctsc2014]企鹅QQ || P4503 [CTSC2014]企鹅QQ

    题面:[CTSC2014]企鹅QQ 题解:无 代码: #include<iostream> #include<cstring> #include<cstdio> # ...

  7. Luogu P4503 [CTSC2014]企鹅QQ

    思路 如果直接暴力的比较的话,不用想也知道会超时 所以考虑另一种方法,将前缀和的思想运用到hash中.用两个hash,一个从前往后记录,一个从后往前记录,然后枚举哪一位是不相同的,然后删掉这一位,将这 ...

  8. BZOJ 3555: [Ctsc2014]企鹅QQ [字符串哈希]【学习笔记】

    3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 2046  Solved: 749[Submit][Statu ...

  9. bzoj3555: [Ctsc2014]企鹅QQ

    将字符串hash.不难写.然而1.注意用longlong2.数组大小注意...3.似乎别人都用的unsigned long long ?. #include<cstdio> #includ ...

随机推荐

  1. 在ubuntu 64位的机器上执行arm-linux-gcc提示 no such file or directory【转】

    本文转载自:http://blog.csdn.net/sno_guo/article/details/17059381 解压好了arm-linuxg-gcc 放到了$PATH路径下, 无论怎么执行都提 ...

  2. 数据结构之 线性表---单链表操作A (删除链表中的指定元素)

    数据结构上机测试2-1:单链表操作A Time Limit: 1000MS Memory limit: 4096K 题目描述 输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据 ...

  3. Codeforces Round #394 (Div. 2) B. Dasha and friends —— 暴力 or 最小表示法

    题目链接:http://codeforces.com/contest/761/problem/B B. Dasha and friends time limit per test 2 seconds ...

  4. spring 从jsp到jsp

    小例子 1.jar信息 2.web.xml文件配置 <?xml version="1.0" encoding="UTF-8"?> <web-a ...

  5. SSL协议、HTTP和HTTPS和区别

    SSL协议 SLL协议的握手过程 开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(handshake). 第一步,客户端给出协议版本号.一个客户端生成的随机数(Clien ...

  6. html5--3.14 lable元素和label属性

    html5--3.14 lable元素和label属性 学习要点 掌握label元素的使用 掌握label属性的使用 lable元素 用来为 input 元素定义标注(标记),建立一个与之相关联的标签 ...

  7. 关于RHEL5中yum挂载iso源引起的问题(转)

    今天在虚机上通过yum挂载iso源来安装rpm包,但提示错误,内容见下面.之前也有过这样的操作, mount后,修改repo文件,然后就可以yum install  rpm包了:过程很简单啊.不知道这 ...

  8. linux应用之php开发环境lamp搭建(centos)

    搭建linux+apache+mysql+php环境   1.安装apache: yum install httpd httpd-devel  启动apache: /etc/init.d/httpd ...

  9. npm 引入第三方过滤器

    根据项目具体情况使用过滤器,如果不满足业务需求可以在vue的全局或者局部自定义fiter(过滤器) 一下是github提供的第三方过滤器: https://github.com/freearhey/v ...

  10. MTCNN人脸检测识别笔记

    论文:Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks 论文链接:https:// ...