1570. [POJ3461]乌力波

★☆   输入文件:oulipo.in   输出文件:oulipo.out   简单对比
时间限制:1 s   内存限制:256 MB

【题目描述】

法国作家乔治·佩雷克(Georges Perec,1936-1982)曾经写过一本书,《敏感字母》(La disparition),全篇没有一个字母‘e’。他是乌力波小组(Oulipo Group)的一员。下面是他书中的一段话:

Tout avait Pair normal, mais tout s’affirmait faux. Tout avait Fair normal, d’abord, puis surgissait l’inhumain, l’affolant. Il aurait voulu savoir où s’articulait l’association qui l’unissait au roman : stir son tapis, assaillant à tout instant son imagination, l’intuition d’un tabou, la vision d’un mal obscur, d’un quoi vacant, d’un non-dit : la vision, l’avision d’un oubli commandant tout, où s’abolissait la raison : tout avait l’air normal mais…

佩雷克很可能在下面的比赛中得到高分(当然,也有可能是低分)。在这个比赛中,人们被要求针对一个主题写出甚至是意味深长的文章,并且让一个给定的“单词”出现次数尽量少。我们的任务是给评委会编写一个程序来数单词出现了几次,用以得出参赛者最终的排名。参赛者经常会写一长串废话,例如500000个连续的‘T’。并且他们不用空格。

因此我们想要尽快找到一个单词出现的频数,即一个给定的字符串在文章中出现了几次。更加正式地,给出字母表{‘A‘,‘B‘,‘C‘,...,‘Z‘}和两个仅有字母表中字母组成的有限字符串:单词W和文章T,找到W在T中出现的次数。这里“出现”意味着W中所有的连续字符都必须对应T中的连续字符。T中出现的两个W可能会部分重叠。

【输入格式】

输入包含多组数据。

输入文件的第一行有一个整数,代表数据组数。接下来是这些数据,以如下格式给出:

第一行是单词W,一个由{‘A‘,‘B‘,‘C‘,...,‘Z‘}中字母组成的字符串,保证1<=|W|<=10000(|W|代表字符串W的长度)

第二行是文章T,一个由{‘A‘,‘B‘,‘C‘,...,‘Z‘}中字母组成的字符串,保证|W|<=|T|<=1000000。

【输出格式】

对每组数据输出一行一个整数,即W在T中出现的次数。

【样例输入】

3

BAPC

BAPC

AZA

AZAZAZA

VERDI

AVERDXIVYERDIAN

【样例输出】

1

3

0

【来源】

BAPC 2006 Qualification

POJ 3461

KMP的裸题,

但是可以用字符串hash搞,

对于单词a,文章b

我们先求出单词a的hash值,再求出文章b的每一位的hash值,

然后枚举文章b的每一位,判断一下区间是否合法就好

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #include<cstring>
 6 #include<algorithm>
 7 #include<map>
 8 #define lli long long int
 9 #define ull unsigned long long
10 using namespace std;
11 const ull MAXN=1000001;
12 ull base=27;
13 void read(ull &n)
14 {
15     char c=‘+‘;ull x=0;bool flag=0;
16     while(c<‘0‘||c>‘9‘){c=getchar();if(c==‘-‘)flag=1;}
17     while(c>=‘0‘&&c<=‘9‘)x=x*10+c-48,c=getchar();
18     n=flag==1?-x:x;
19 }
20 ull Pow[MAXN];
21 ull ha[MAXN];
22 ull pd(ull l,ull r){return (ull)ha[r]-Pow[r-l+1]*ha[l-1];}
23 char a[MAXN];
24 char b[MAXN];
25 int main()
26 {
27     freopen("oulipo.in","r",stdin);
28     freopen("oulipo.out","w",stdout);
29     ull n;read(n);
30     Pow[0]=1;
31     for(ull i=1;i<=MAXN;i++)
32         Pow[i]=Pow[i-1]*base;
33     while(n--)
34     {
35         int ans=0;
36         scanf("%s%s",a+1,b+1);
37         int la=strlen(a+1);ull lb=strlen(b+1);
38         ull hasha=0;
39         for(ull i=1;i<=la;i++)
40             hasha=hasha*base+a[i];
41         for(ull i=1;i<=lb;i++)
42             ha[i]=ha[i-1]*base+b[i];
43         for(ull i=1;i<=lb-la+1;i++)
44         {
45             ull k=pd(i,i+la-1);
46             if(k==hasha)
47                 ans++;
48         }
49
50         printf("%d\n",ans);
51     }
52     return 0;
53 }
时间: 2024-10-21 21:12:55

1570. [POJ3461]乌力波的相关文章

kmp——cogs 1570 乌力波

1570. [POJ3461]乌力波 ★☆   输入文件:oulipo.in   输出文件:oulipo.out   简单对比 时间限制:1 s   内存限制:256 MB [题目描述] 法国作家乔治·佩雷克(Georges Perec,1936-1982)曾经写过一本书,<敏感字母>(La disparition),全篇没有一个字母‘e’.他是乌力波小组(Oulipo Group)的一员.下面是他书中的一段话: Tout avait Pair normal, mais tout s’affi

POJ 3461 Oulipo(乌力波)

POJ 3461 Oulipo(乌力波) Time Limit: 1000MS   Memory Limit: 65536K [Description] [题目描述] The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e'. He was a member of the Oulipo group. A quote from the book: Tou

KMP --关于cogs1570 乌力波

题目链接:http://cogs.pro:8081/cogs/problem/problem.php?pid=vQzXJkgWa [题目描述] 法国作家乔治·佩雷克(Georges Perec,1936-1982)曾经写过一本书,<敏感字母>(La disparition),全篇没有一个字母‘e’.他是乌力波小组(Oulipo Group)的一员.下面是他书中的一段话: Tout avait Pair normal, mais tout s’affirmait faux. Tout avait

清北学堂学习总结 day2 字符串 练习

1.hash表(哈希表) codevs 2147 数星星--简单哈希 时间限制: 3 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题目描述 Description 小明是一名天文爱好者,他喜欢晚上看星星.这天,他从淘宝上买下来了一个高级望远镜.他十分开心,于是他晚上去操场上看星星. 不同的星星发出不同的光,他的望远镜可以计算出观测到的星星发出的光的数值W.小明当然想尽可能地多看到星星,于是他每看到一颗星星,就要看看他之前有没有看过这颗星星.但是他看的星星太多了,他根本数

,49.0%的群众选择教育医疗卫d7

"发现有力量的思想,聚集有思想的力量,讲述发生过的故事,打造企业实力品牌形象".李疯说,目前已集聚了一批极富发展潜力的中小微企业,将帮助更多的中小微企业寻求跨界融合共同发展的机遇,帮助更多的创业者打造成超级IP,通过影力波的互联网创新商业模式为湖南经济发展打造强势的商业生态群合作体. 据该公司统计,中国大陆地区共涉及4.948万辆汽车.召回范围内的部分车辆,由于安装制动助力器的噪音过滤器过程中出现偏差,可能导致用户在长时间使用定速巡航功能后出现制动警示灯亮.制动踏板变硬的情况,影响车辆

总理春节前考察,这些话值得回味t

"党内政治生活状况决定政治生态,全面从严治党必须抓住严肃党内政治生活这个根本,强化党内监督.六中全会通过的两部重要党内法规,是全面从严治党从治标向治本转变的一个标志,推动全面从严治党向纵深发展,必须抓住治本之策."汪玉凯说. 这样的对白来自长沙岳麓区一对平凡而伟大的农村夫妇.躺在病床上的谢芳总结着自己的人生,声音虚弱却充满幸福.丈夫谢海华小心翼翼地帮全身瘫痪.刚做完手术的妻子翻身,生怕弄疼她. 在古埃及艺术作品中,孟图神被描绘成鹰首人身,或是牛首人身,在头部的羽毛或两角之间是一个太阳的

【分享】近4000份数学学习资源免费分享给大家

一直以来喜欢收集数学类的教程资源,于是费了好大劲从万千合集站上扒拉了下来,总结归类了一下,一共有将近4000本电子书.经测试,均可免费下载,可能会弹出小广告,可不必理会之.[仅供学术学习和交流,请无用于商业用途.]另外,如有可能,还请尽量支持正版纸质书.   数学史(54)     数学史.rar 55.6 MB   数学的起源与发展.rar 4.3 MB   费马大定理—一个困惑了世间智者358年的谜.pdf 9.5 MB   通俗数学名著译丛14-无穷之旅:关于无穷大的文化史.pdf 14.

OSChina 周五乱弹 —— 第一眼看到就爱上的句子

都起床都起床啦~今天是鬼节,小小编要不要祝各位节日快乐呢?估计想揍我的人会很多吧.好吧,说正经事,你们觉得对于一个人来讲,什么是最重要的呢?小小编觉得,是颜值... @斯雷波:从男厕所出来,对面一群女生从女厕所走出来,其中一个女生看着我撇过头走了,我也走了,没有发生什么!这不是重点!重点是听到了,我听到了"很丑的---" 上厕所都能被黑,人生实在残酷 残酷是对单身狗而言 @梦朝思夕:世界上最浪漫的事:就是两个人牵手一起刷完吉米多维奇<数学分析习题集>.巴赫瓦洛夫<解析

俄罗斯的数学为什么这么强

世界第一数学强校的背后纵观整个20世纪的数学史,苏俄数学无疑是一支令人瞩目的力量.百年来,苏俄涌现了上百位世界一流的数学家,其中如鲁金 (Н. Н. Лузин),亚历山德罗夫(П. С. Александров),柯尔莫戈罗夫(А. Н.Колмогоров),盖尔范德(И. М. Гельфанд),沙法列维奇(И. Р. Шафаревич),阿洛尔德(В. И.Арнольд)等都是响当当的数学大师.而这些优秀数学家则大多毕业于莫斯科大学(Московский государственн