洛谷 P4503 [CTSC2014]企鹅QQ
暴力枚举不同的一位即可。。
主要是常数问题
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的更多相关文章
- 洛谷 P4503 [CTSC2014]企鹅QQ 解题报告
P4503 [CTSC2014]企鹅QQ 题目背景 PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志.群.即 ...
- [洛谷P4503][CTSC2014]企鹅QQ
题目大意:给你$n(n\leqslant3\times10^4)$个长度为$l(l\leqslant200)$的字符串,要你求出有多少对字符串是相似的,相似的定义是两个字符串只在一位上不同. 题解:可 ...
- 洛谷$P4503\ [CTSC2014]$企鹅$QQ$ 哈希
正解:哈希 解题报告: 传送门$QwQ$ 直接$O(len)$枚举哪一位,然后把这一位删了重新拼接起来,存桶里查下就成 $over$? 主要的难点大概在卡哈希+卡常$QAQ$ #include< ...
- Luogu P4503 [CTSC2014]企鹅QQ(字符串哈希)
P4503 [CTSC2014]企鹅QQ 题面 题目背景 \(PenguinQQ\) 是中国最大.最具影响力的 \(SNS(Social Networking Services)\) 网站,以实名制为 ...
- 【题解】P4503 [CTSC2014]企鹅QQ(哈希)
[题解]P4503 [CTSC2014]企鹅QQ(哈希) 考虑这样一种做法,将每个字符串的删去某个字符的新字符串的哈希值存下来,然后最后\(sort\)一遍双指针统计每个值相同的数的个数\(x\),这 ...
- 字符串Hash || BZOJ 3555: [Ctsc2014]企鹅QQ || P4503 [CTSC2014]企鹅QQ
题面:[CTSC2014]企鹅QQ 题解:无 代码: #include<iostream> #include<cstring> #include<cstdio> # ...
- Luogu P4503 [CTSC2014]企鹅QQ
思路 如果直接暴力的比较的话,不用想也知道会超时 所以考虑另一种方法,将前缀和的思想运用到hash中.用两个hash,一个从前往后记录,一个从后往前记录,然后枚举哪一位是不相同的,然后删掉这一位,将这 ...
- BZOJ 3555: [Ctsc2014]企鹅QQ [字符串哈希]【学习笔记】
3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 2046 Solved: 749[Submit][Statu ...
- bzoj3555: [Ctsc2014]企鹅QQ
将字符串hash.不难写.然而1.注意用longlong2.数组大小注意...3.似乎别人都用的unsigned long long ?. #include<cstdio> #includ ...
随机推荐
- require实现单页应用程序(SPA)
写了一个测试代码,用require.js配合它的一个插件text.js实现了最简单的单页应用程序,简单的记录一下,方便以后复习, git地址:https://github.com/lily1010/r ...
- hdu1078 FatMouse and Cheese —— 记忆化搜索
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078 代码1: #include<stdio.h>//hdu 1078 记忆化搜索 #in ...
- CodeChef Forest Gathering —— 二分
题目链接:https://vjudge.net/problem/CodeChef-FORESTGA 题解: 现场赛.拿到这题很快就知道是二分,但是一直wa,怎么修改也wa,后来又换了种错误的思路,最后 ...
- python 实用pickle序列化
存储数据结构到一个文件中称为序列化.相json这样的格式需要定制的序列化数据的转换器.python提供了pickle模块以特殊的二进制格式保存和恢复数据对象. 还记得json解析datetime对象时 ...
- 未公开函数MessageBoxTimeOut 实现定时消息(ZT) MFC实现MessageBox自动消失
http://www.blogjava.net/baicker/archive/2007/07/13/130072.html #include <windows.h> #include & ...
- android中获取包名,类名
LogUtil.i("getPackageName()=" + getPackageName()); //Context类 LogUtil.i("getClass().g ...
- BZOJ 1621 [Usaco2008 Open]Roads Around The Farm分岔路口:分治 递归
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1621 题意: 约翰的N(1≤N≤1,000,000,000)只奶牛要出发去探索牧场四周的土 ...
- Linux下抓包工具tcpdump应用详解
TCPDUMP简介 在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一.sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的.对于网络管理人员来说 ...
- Ubuntu16.04 安装cuda9.0 cudnn 7.0.5
参考网址:https://blog.csdn.net/zhuangwu116/article/details/81063234 (1)下载安装文件: 下载cuda9.0 runfile 文件 下载地址 ...
- 【旧文章搬运】NtGlobalFlags
原文发表于百度空间,2010-08-06========================================================================== - NtG ...