UVA 257 - Palinwords(弦HASH)
UVA 257 - Palinwords
题意:输出一个文本里面的palinword,palinword的定义为。包括两个不同的回文子串,而且要求回文子串不能互相包括
思路:对于每一个单词推断一次。因为不能互相包括。对于每一个位置。事实上就仅仅要找长度3和4的情况就可以,这样复杂度为O(n),至于推断反复的。就用hash就可以
代码:
#include <cstdio>
#include <cstring> char str[260];
int hash[555555], save[260], sn; bool check() {
sn = 0;
int n = strlen(str);
for (int i = 1; i < n - 1; i++) {
if (str[i - 1] == str[i + 1]) {
int num = (str[i - 1] - 'A' + 1) * 27 * 27 + (str[i] - 'A' + 1) * 27 + str[i + 1] - 'A' + 1;
if (!hash[num]) {
hash[num] = 1;
save[sn++] = num;
}
continue;
}
if (str[i] == str[i + 1] && str[i - 1] == str[i + 2]) {
int num = (str[i - 1] - 'A' + 1) * 27 * 27 * 27 + (str[i] - 'A' + 1) * 27 * 27 + (str[i + 1] - 'A' + 1) * 27 + str[i + 2] - 'A' + 1;
if (!hash[num]) {
hash[num] = 1;
save[sn++] = num;
}
}
}
for (int i = 0; i < sn; i++)
hash[save[i]] = 0;
return sn >= 2;
} int main() {
while (~scanf("%s", str))
if (check())
printf("%s\n", str);
return 0;
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
UVA 257 - Palinwords(弦HASH)的更多相关文章
- UVA 257 Palinwords(hash)题解
思路:给你字符串,如果他包含至少两个长度大于等于3的回文,并且这些回文不能嵌套(例如aaa嵌套在aaaa,waw嵌套在awawa),如果这个字符串这么牛逼的话,就输出他. 思路:拿到字符串先正序has ...
- UVa 11019 Matrix Matcher - Hash
题目传送门 快速的vjudge传送门 快速的UVa传送门 题目大意 给定两个矩阵S和T,问T在S中出现了多少次. 不会AC自动机做法. 考虑一维的字符串Hash怎么做. 对于一个长度为$l$的字符串$ ...
- poj 2774 最长公共子--弦hash或后缀数组或后缀自己主动机
http://poj.org/problem?id=2774 我想看看这里的后缀数组:http://blog.csdn.net/u011026968/article/details/22801015 ...
- HDOJ--4821--String【弦hash】
联系:http://acm.hdu.edu.cn/showproblem.php?pid=4821 题意:给一个字符串,选m个长度为l的子串组成新的串.要求这m个子串互不同样,问有多少种组合. 字符串 ...
- UVA - 11019 Matrix Matcher hash+KMP
题目链接:传送门 题解: 枚举每一行,每一行当中连续的y个我们hash 出来 那么一行就是 m - y + 1个hash值,形成的一个新 矩阵 大小是 n*(m - y + 1), 我们要找到x*y这 ...
- Acdreamoj1116(Gao the string!)弦hash+二分法+矩阵高速功率
Problem Description give you a string, please output the result of the following function mod 100000 ...
- UVA 10887 set或hash
题意: 给出n个A串和m个B串,将这A串与B串连接(B接在A后面)可以生成n*m个AB串,求不同的AB串的数量 分析: set直接水过 #include <bits/stdc++.h> u ...
- 学习Word2vec
有感于最近接触到的一些关于深度学习的知识,遂打算找个东西来加深理解.首选的就是以前有过接触,且火爆程度非同一般的word2vec.严格来说,word2vec的三层模型还不能算是完整意义上的深度学习,本 ...
- 机器学习算法实现解析——word2vec源代码解析
在阅读本文之前,建议首先阅读"简单易学的机器学习算法--word2vec的算法原理"(眼下还没公布).掌握例如以下的几个概念: 什么是统计语言模型 神经概率语言模型的网络结构 CB ...
随机推荐
- TP 控制器扩展_initialize方法实现原理
参考网址:http://gongwen.sinaapp.com/article-59.html 控制器扩展接口 系统Action类提供了一个初始化方法_initialize接口,可以用于扩展需要,_i ...
- Lua 与C 交换 第一篇
编译 windows上编译lua源代码 cl /MD /O2 /W3 /c /DLUA_BUILD_AS_DLL *.c del *.o ren lua.obj lua.o ren luac.obj ...
- TextBox自定义Mac输入框类
using System.Windows.Controls; namespace test { public class MacTextBox : TextBox { private string _ ...
- 要引入java吸管工具
Java调用颜色选择器robot方法getPixelColor让我们来看看下面的方法robot详细的实施类方法中,例如,下面的 getPixelColor public Color getPixelC ...
- 如何设置一个activity透明(转)
1.在AndroidManifest.xml文件中设置: ? 1 android:theme="@android:style/Theme.Translucent 此代码固定为全背景透明. 2 ...
- LVM逻辑卷管理@设备、格式、摩、引导自己主动安装一个完整的章节
离http://www.it165.net/admin/html/201307/1553.html LVM的重要性,在这里我也就不多说了,今天和大家分享一下.LVM设备,而且安装方式. 首先呢,先让我 ...
- add-apt-repository
也许你早已注意到,我们在介绍软件的时候,在安装这块一般都提供 PPA 源安装方式,这是一种快速方便的软件安装方法,但对于一些新手来说,对 PPA 并不是很熟悉,下面我们就详细介绍一下. # 我们先了解 ...
- [Windows Phone] 导览控制项(Navigation controls)
原文:[Windows Phone] 导览控制项(Navigation controls) [前言] 如果应用程式只有单一页面,在画面呈现上可能会让使用者容易没有新鲜感,这个范例是使用导览控制项(Na ...
- Maven导入eclipse缺少web-resources目录
导入其它机器的maven项目会出现缺少target/m2e/下的web-resources目录,眼下详细原因不知道, 解决方法是,直接将缺少的web-resources目录复制到项目中,错误解决
- strcpy_s与strcpy对照
strcpy_s和strcpy()函数功能几乎相同.strcpy函数.就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它仅仅能假定缓冲足够大来容纳要拷贝的字符串.在程序执行时,这将导致不可 ...