Oulipo

2023-11-16

点击打开链接

Problem 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:

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…

Perec would probably have scored high (or rather, low) in the following contest. People are asked to write a perhaps even meaningful text on some subject with as few occurrences of a given “word” as possible. Our task is to provide the jury with a program that counts these occurrences, in order to obtain a ranking of the competitors. These competitors often write very long texts with nonsense meaning; a sequence of 500,000 consecutive 'T's is not unusual. And they never use spaces.

So we want to quickly find out how often a word, i.e., a given string, occurs in a text. More formally: given the alphabet {'A', 'B', 'C', …, 'Z'} and two finite strings over that alphabet, a word W and a text T, count the number of occurrences of W in T. All the consecutive characters of W must exactly match consecutive characters of T. Occurrences may overlap.

 

Input
The first line of the input file contains a single number: the number of test cases to follow. Each test case has the following format:

One line with the word W, a string over {'A', 'B', 'C', …, 'Z'}, with 1 ≤ |W| ≤ 10,000 (here |W| denotes the length of the string W).
One line with the text T, a string over {'A', 'B', 'C', …, 'Z'}, with |W| ≤ |T| ≤ 1,000,000.
 

Output
For every test case in the input file, the output should contain a single number, on a single line: the number of occurrences of the word W in the text T.

 

Sample Input
  
  
3 BAPC BAPC AZA AZAZAZA VERDI AVERDXIVYERDIAN
 

Sample Output
  
  
1 3 0
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
KMP模板;
#include<string.h>
#include<stdio.h>
int next1[10005],next2[1000005];
char s1[10005],s2[1000006];
int main()
{
	int i,j,k,m,n,ncase;
	int len1,len2;
	scanf("%d",&ncase);
	getchar();
	while(ncase--)
	{
		gets(s1);
		gets(s2);
		len1=strlen(s1);
		len2=strlen(s2);
		i=0;j=-1;next1[0]=-1;
		while(i<len1)
		{
			if(j==-1||s1[i]==s1[j])
			{
				i++;j++;
				next1[i]=j;
			}
			else
			j=next1[j];
		}
		int w=0;
                i=0;j=0;
		while(i<len2)
		{
			if(j==-1||s2[i]==s1[j])
			{
				i++;
				j++;
			}
			else
			   j=next2[j];
            if(j==len1)
            {
            	w++;
            	//j=0;
            }
		}
		printf("%d\n",w);
	}
	return 0;
}



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oulipo 的相关文章

  • TensorFlow:在训练时更改变量

    如果我将输入管道从 feed dict 更改为 tf data dataset 如何在每次迭代后的训练期间更改网络内参数的值 澄清一下 旧代码看起来像这样 Define Training Step model is some class t
  • 访问或解析 R 中的 summary() 中的元素

    我运行以下 R 命令来进行 Dunnett 测试并获取摘要 如何访问下面线性假设的每一行 这是摘要输出的一部分 基本上我不知道摘要的结构 我尝试使用名称 但它似乎不起作用 因为我没有看到任何命名属性来提供这一点 library multco
  • 清洁琴弦的更好方法?

    我正在使用这种方法来清理字符串 public static string CleanString string dirtyString string removeChars lt gt string result dirtyString f
  • 执行 Boyer-Moore 模式匹配时是否必须考虑编码?

    我即将实现 Boyer Moore 模式匹配算法的变体 具体来说是星期日算法 我问自己 我的字母表大小是多少 它是否取决于编码 可能的字符数 或者我可以假设我的字母表由 256 个符号组成 一个字节可以表示的符号数 在许多其他情况下 将字符
  • 如何从 JavaScript 中的字符串中删除空白字符?

    如何从 JavaScript 中的字符串中删除空白字符 修剪很容易 但我不知道如何将它们从inside字符串 例如 222 334 gt 222334 您可以使用正则表达式 如下所示来替换所有空格 var oldString 222 334
  • 类型错误:“datetime.datetime”和“str”的实例之间不支持“>”

    我是 python 日期和时间类型的新手 我有一个日期值 date 2018 11 10 10 55 31 00 00 我需要检查该日期值是否超过 90 天 我试过 from datetime import datetime from da
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 如何从 C++ 中的文件中读取双精度值

    如何从 C 中的文件中读取 double 值 对于整数 我知道您可以使用 getline 然后使用 atoi 但我没有找到双倍函数的数组 什么可用于读取双精度数或将 char 数组转换为双精度数 您可以使用流提取 std ifstream
  • 如何检测字符串中的非 ASCII 字符?

    如果我有一个 PHP 字符串 如何以有效的方式确定它是否至少包含一个非 ASCII 字符 我所说的非 ASCII 字符是指不属于该表的任何字符 http www asciitable com http www asciitable com
  • 来自 file_descriptor_source (boost::iostreams) 或文件的 istream

    我需要为我的程序输入做这样的事情 stream input if decompressed input open filepath else file descriptor popen decompressor filepath r inp
  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • html 中的输入字段可以有多少个字符?

    html 输入字段中允许的 自然 字符数是多少 多谢 根据评论添加 我不需要通过邮寄或获取将其发送到服务器 我将通过 JS 解析字符串 因此 如果输入是无限的 就像 sAc 所说 这会给我带来两个进一步的问题 JS 最长的 String 可
  • C# 中将字符串 (yyyyMMddhhmm) 转换为 DateTime 的函数

    在我的数据库中 我有一个日期类型的字段varchar其中日期以以下格式存储yyyyMMddhhmm 没有空格或其他字符分隔它们 现在我需要将此日期与 C 进行比较DateTime 因此我需要将字符串转换为DateTime 我能想到的最合乎逻
  • 如何使用JavaScript估算字符串的磁盘大小?

    我需要尝试估计DISKJavaScript 中文本字符串 可以是原始文本或图像 音频 等的 Base64 编码字符串 的大小 我不知道如何估计这个 当谷歌搜索时我唯一能找到的是 length所以我想 StackOverflow 上也许有人知
  • 是否有 java.lang.String 的内存高效替代品?

    看完之后这篇旧文章 http www javaworld com javaworld javatips jw javatip130 html page 2测量几种对象类型的内存消耗 我惊讶地发现有多少内存String在Java中的使用 le
  • 替换C#字符串中的数字

    我正在尝试使用正则表达式对字符串进行一些工作 但遇到了一些困难 我的目标是用字符替换字符串中的数字 特别是如果字符串中有一组数字 我想用一个字符替换整个数字组 如果只有一个数字 我想将其替换为 例如 如果我有字符串 test12345 tx
  • 保留完整姓氏,在 pandas 列中获取名字的首字母(如果有的话,还有中间名)

    我有一个 pandas 数据框 其中有一列表示几位网球运动员的姓氏和姓名 如下所示 Player 0 Roddick Andy 1 Federer Roger 2 Tsonga Jo Wilfred 我想保留完整的姓氏并获取姓名的首字母和中
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • 根据列中的部分字符串匹配选择数据框行

    我想根据列中字符串的部分匹配从数据框中选择行 例如列 x 包含字符串 hsa 使用sqldf if它有一个like语法 我会做类似的事情 select from lt gt where x like hsa 很遗憾 sqldf不支持该语法

随机推荐

  • Vue项目中使用el-form校验用户输入字段是否符合条件验证-demo

    实现效果 实现 div class registerWarp div
  • [分割一切!] SegmentAnything真的太强了

    相信大家最近都听说了Meta开源了一个图像分割模型 SegmentAnything Model 简称SAM模型 号称分割一切 在短短开源的一周内 截止今天Github已经24k的star了 看了很多推文各种炸裂的词都出来了 最近也是体验了一
  • python 安装 并运行 uwsgi

    安装 pip install uwsgi 虚拟环境下执行uwsgi uwsgi socket tmp test sock w var pyproject ci env test py 运行成功 则安装成功 创建ini文件 var pypro
  • mac升级catalina后CoreFoundation.h not found的问题处理

    mac升级catalina之后问题贼多 原来跑的顺利的项目出了一堆问题 把这个问题的解决过程转发一下 供大家参考吧 https cloud tencent com developer article 1629899
  • (Ext基础篇) Ext表格控件

    Ext中的表格功能非常强大 包括排序 缓存 拖动 隐藏某一行 自动显示行号 列汇总 单元格编辑等实用功能 表格由类Ext grid GridPanel定义 继承自Panel 其xtype为Grid 在Ext中 表格控件Grid必须包含列定义
  • win10 docker部署tomcat、mysql、drlog

    一 安装Docker服务 1 1 下载安装docker desktop 我是win10系统 选择windows版本 1 2 启动docker desktop 1 3 安装Java 二 通过Docker部署Tomcat服务器 2 1 搜索to
  • C语言system函数使用

    函数原型 包含在头文件 stdlib h 中 int system const char command 函数功能 执行 dos windows系统 或 shell Linux Unix系统 命令 参数字符串command为命令名 另 在w
  • 牛顿迭代法原理讲解

    牛顿迭代法原理讲解 牛顿迭代法是用于求解等式方程的一种方法 类似于求解F x 0的根 牛顿迭代法求解的是近似根 这个想法准确来说来源于泰勒展开式 我们知道 有些时候 我们需要求解的表达式可能非常复杂 通过一般的方法 我们很难求出它的解 所以
  • linux 虚拟机不能启动不了系统,群晖VMM虚拟机安装Linux系统无法启动桌面的解决办法...

    去年群晖科技为DSM系统推出虚拟化套件 Virtual Machine Manager 可在NAS上直接安装各种虚拟机等 而Linux 虚拟机在蓝点网测试过程中则是发现存在远程桌面无响应问题 点击画面任何位置都无法进行操作 关于这个问题从网
  • 数据库中表数据备份

    目的 在所有的数据仓库类项目中几乎都会涉及到数据库中表数据备份的操作 主要是为了对一些结果数据进行备份 防止误操作 过程 一 背景 本次我们用的方法是通过在数据库中建立一个备份用户进行数据备份的操作 原因是现在的数据库一般是基于HDFS开发
  • 【html】【一个简单的用户登录页面代码】

    结果 代码
  • OpenCV python 轮廓(连通域)最小外接圆形

    OpenCV python 轮廓 连通域 最小外接圆形 原图 cc jpg import cv2 import numpy as np def main 1 导入图片 img src cv2 imread cc jpg 2 灰度化 二值化
  • ndk编译

    使用方法 直接到jni目录下 和androd mk文件放在一起 ndk build j8 B cp rf libs videolibtest libs 默认编译的是 armeabi 架构的 如果有或创建Application mk文件 则在
  • 微信小程序阻止用户返回上一页,并弹窗给用户确定是否要返回上一页

    在onload中调用微信的enableAlertBeforeUnload方法 在首次进入会自动监听当前的页面 在返回的时候会自动弹出弹窗阻止用户返回上一页 点击确定则返回上一页 取消则停留在当前页 onLoad function wx en
  • 3、Linux权限管理

    3 Linux权限管理 文章目录 3 Linux权限管理 3 1 Linux chgrp命令 修改文件和目录的所属组 3 2 Linux chown命令 修改文件和目录的所有者和所属组 3 3 Linux 权限位 3 4 Linux chm
  • 删除数据库的sql语句

    删除数据库的sql语句如何写 drop database 数据库名 删除数据库的 drop table 表名 删除表的 delete from 表名 where 条件 删除数据的 truncate table 表名 也是删除数据库的 但是他
  • Qt—事件的处理

    事件的处理 一个事件由一个特定的QEvent子 类来表示 但是有时一个事件又包含多个事件类型 比如鼠标事件又可以分为鼠标按下 双击和移动等多种操作 这些事件类型都由QEvent类的枚举型QEvent Type来表示 其中包含了一百多种事件类
  • librdkafka的使用和介绍

    librdkafka的使用介绍 librdkafka是kafka的c语言接口 下面简单的介绍一下其接口 1 rd kafka conf set设置全局配置 2 rd kafka topic conf set设置topic配置 3 rd ka
  • MySQL IP地址存储和转换

    存储 保存IP地址到数据库 建议使用整型 首先可以节省存储空间 例如保存IP地址 255 255 255 255 如果使用字符串形式的IP 那么需要VARCHAR 15 来存放 而使用整型的话 用二进制是111111111111111111
  • Oulipo

    点击打开链接 Problem Description The French author Georges Perec 1936 1982 once wrote a book La disparition without the letter