poj 1200 (hash)

POJ 1200 Crazy Search(哈希算法)【模板】 Many people like to solve hard puzzles some of which may lead them to madness. One such puzzle could be finding a hidden prime number in a given text. Such number could be the number of different substrings of a given size that exist in the text. As you so 阅读详情

Crazy Search
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 23168 Accepted: 6513

Description

Many people like to solve hard puzzles some of which may lead them to madness. One such puzzle could be finding a hidden prime number in a given text. Such number could be the number of different substrings of a given size that exist in the text. As you soon will discover, you really need the help of a computer and a good algorithm to solve such a puzzle. 
Your task is to write a program that given the size, N, of the substring, the number of different characters that may occur in the text, NC, and the text itself, determines the number of different substrings of size N that appear in the text. 

As an example, consider N=3, NC=4 and the text "daababac". The different substrings of size 3 that can be found in this text are: "daa"; "aab"; "aba"; "bab"; "bac". Therefore, the answer should be 5. 

Input

The first line of input consists of two numbers, N and NC, separated by exactly one space. This is followed by the text where the search takes place. You may assume that the maximum number of substrings formed by the possible set of characters does not exceed 16 Millions.

Output

The program should output just an integer corresponding to the number of different substrings of size N found in the given text.

Sample Input

3 4
daababac

Sample Output

5

Hint

Huge input,scanf is recommended.

Source




题意:输入n,m,和字符窜,给你字符串出现字母的种数(m),问你长度为n的字符串有多少种?


hash,看代码吧


#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
#define N 16000005

char a[N];
int n,m;
int ha[N];

int main()
{
    int i,j;
    while(~scanf("%d%d",&n,&m))
    {
        scanf("%s",a);

        i=0;
        memset(ha,0,sizeof(ha));

        int len=strlen(a);

        for(j=0;j<len;j++)
        {
            if(!ha[a[j]])
            {
                ha[a[j]]=++i;
                if(i==m)
                    break;
            }
        }

        int ans=0;

        for(i=0;i+n<=len;i++)
        {
            int temp=0;
            for(j=i;j<i+n;j++)
            {
                temp=temp*m+ha[a[j]];
            }
            if(!ha[temp])
            {
                ans++;
                ha[temp]=1;
            }
        }

        printf("%d\n",ans);
        return 0;
    }
    return 0;
}





从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战 本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。 阅读详情

相关推荐

【QGIS】PyCharm集成pyqgis的processing工具箱:环境配置与初始化实战

本文详细介绍了如何在PyCharm中配置QGIS的Python环境并成功集成其强大的Processing工具箱。文章核心解决了独立环境下导入processing模块失败、算法无法调用等常见难题,通过手动添加插件路径和执行关键初始化步骤,实现了在PyCharm中丝滑调用QGIS地理处理算法,从而将复杂的空间分析流程自动化。

weixin_28831399的博客 391

Crazy Search(hash算法)

Many people like to solve hard puzzles some of which may lead them to madness. One such puzzle could be finding a hidden prime number in a given text. Such number could be the number of different subs...

aaHua_ 434

PyQt5 使用QSqlDatabase连接Mysql数据库时Driver not loaded Driver not loaded

PyQt5 使用QSqlDatabase连接Mysql数据库时Driver not loaded Driver not loaded

睡觉不打呼噜的博客 1562

Crazy Search POJ - 1200 字符串哈希 细节优化

题意:给定一个字符串,其中含有不同的字母数量为m,现在求这个字符串中有多少个长度为n且长的互不相同的字符子串 思路: 一开始以为给个m没啥用,我还是固定的把P弄成131,但是一直T 数组需要开到1.6e7 但是只能开两三个这么大的,多了就MLE,我也不知道为啥 我就 将所有不同的字母从1~m编号,把字符串转化为一个m进制数,作为hash的对应关系 一开始我是把每个前缀的hash[i]求一边,然后根...

青春苦瓜 253

Django 前后端分离实战:网络设备运维系统 - 从登录认证到业务模块

这篇文章分享了Django+Vue前后端分离开发网络设备运维系统的实战经验,重点介绍了登录认证、全局布局和设备管理三大模块的实现。文章包含以下核心内容: 登录模块实现:包括表单验证、Token认证、记住密码功能,以及美观的UI设计(渐变背景、毛玻璃效果) 全局布局架构:采用侧边栏+顶部导航的响应式设计,支持菜单权限控制和多设备适配 业务功能开发:详细展示了设备分类和部门管理的CRUD功能实现,包括列表展示、搜索过滤、分页等功能 常见问题解决:提供了5个开发中常见问题的解决方案,如Vue Router警告、C

qq_16766705的博客 525

Stata森林图进阶:个性化定制与高级技巧

本文详细介绍了Stata森林图的进阶技巧,包括个性化定制与高级应用。通过meta分析工具如metan命令,用户可以优化字体、颜色、坐标轴等视觉元素,提升森林图的专业性和可读性。文章还提供了黑白印刷设置、高分辨率导出等实用技巧,帮助科研人员制作符合学术出版要求的森林图。

ios99的博客 254

Crazy Search (哈希算法)

Crazy Search 给定一个字符串,其中含有不同的字母数量为m,现在求这个字符串中有多少个长度为n且长的互不相同的字符子串 举个例子, n=3, m=4 ,字符串 “daababac”. 长度为3的不同的子串分别是: “daa”; “aab”; “aba”; “bab”; “bac”. 因此, 答案是5. Input 第一行是两个整数n,m,,一个空格隔开。 接下来一行是...

厄尔尼诺的博客 1248

YOLOv8改进策略【卷积层】| CVPR-2023 部分卷积 PConv 轻量化卷积,降低内存占用

本文记录的是利用优化的目标检测方法研究。深度可分离卷积可以减少FLOPs,但会导致更高的内存访问,引起延迟并减慢整体计算。部分卷积利用逐点卷积处理通道冗余,减少模型计算量和内存访问量。Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks及其改进的实现代码如下: 四、创新模块 4.1 改进点⭐ 模块改进方法:直接加入(第五节讲解添加步骤)。模块加入如下:模块改进方法:基于的(第五节讲解添加步骤)。第二种改进方法是对中的进行改进,并将

Limiiiing的博客 1015

Crazy Search(hash使用)

求字符串所有前缀hash值,查询所有长度为N的子字符串的hash值,去重求个数。输入一字符串,求其中长度为N的子字符串(去重后)有几个。

m0_73674034的博客 165

【PyTorch】CNN(一维卷积Conv1D)实现时间序列预测

本文介绍了一维卷积神经网络(Conv1D)在时间序列预测中的应用,展示了其基本原理及实现方式。通过合适的数据预处理和模型调参,Conv1D可以有效地捕捉时间序列数据中的模式,从而进行精准预测。

走向CTO的路上... 1172

YOLOv12涨点改进 | 全网独家首发Conv改进篇 | Arxiv 2025 | 引入一种新的WConv加权卷积改进YOLOv12,显著提升其特征提取能力和目标检测精度

本文提出了一种新型加权卷积(WConv)模块,通过引入最优密度函数动态调整邻域像素权重,显著提升了YOLOv12目标检测性能。WConv在保持参数数量不变的情况下,提高了模型精度(VGG准确率提升10%)、增强了小目标检测能力,并改善了多尺度特征提取。文中详细介绍了模块原理、网络结构改进方法,并提供了核心代码实现和yaml配置文件。实验表明,该方法在图像任务中最高可降低53%的损失,虽然会带来11%的时间开销,但具有优异的鲁棒性。该技术可广泛应用于2D/3D图像处理领域。

Ai缝合怪、助力小伙伴高效发论文 215

POJ 1200:Crazy Search(哈希)

Crazy Search Time Limit:1000MS Memory Limit:65536K Total Submissions:32483 Accepted:8947 Description Many people li...

weixin_33701294的博客 201

从 SEGW 到 SADL 的那根线,彻底理解 OData Data Source Mapping

本文摘要(150字): 在SAP Gateway的SADL型OData服务开发中,"Map to Data Source"是关键配置环节。与传统RFC映射不同,SADL映射不是针对单个CRUDQ操作,而是建立OData模型与SADL业务实体间的完整语义对应关系。通过属性映射和关联映射,系统能自动处理数据获取和导航请求。映射编辑器支持三种模式:属性映射处理字段对应,关联映射处理模型间关系,动作映射处理业务操作。映射的本质是建立语义翻译表,决定了后续OData请求如何转化为后端业务实体访问,而非简单的字段重命名

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 61

poj 1200 Crazy Search HASH 哈希表

Crazy SearchTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13667 Accepted: 3753<br />DescriptionMany people like to solve hard puzzles some of which may lead them to madness. One such puzzle could be finding a hidden prime number in a given text

kongming_acm的专栏 765

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ 1200 Hash

题意 传送门 POJ 1200 题解 先将字符串出现的字符按照ASCⅡ表映射为 [0,nc][0,nc][0,nc];哈希函数即将字符串映射为 ncncnc 进制的数字,各字符即为各数位上的数字,在不需要模运算的情况下,无需冲突检测。 #include <algorithm> #include <cmath> #include <cstdio> #include <cstring> using namespace std; #define inf 0x3f3f

neweryyy的博客 110

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【哈希】POJ 1200 Crazy Search

大噶除夕快乐,新年快乐啦啦啦~【博文有些自己对这道自认为很坑的题的理解,嘻嘻嘻嘻】

L_X_ 353

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

poj1200 hash

hash 其实一直想学的,但是一个是一直在刷 dp ,一个是各种要掌握的算法也很多,(别找理由了就是你懒……),总之在又一次 bc 出现hash但是我却茫然的时候,即使这道题不是简单 hash 就能做出来的,我也觉得真的一定要补一下这个算法了。 从鹏神的博客分类里面找了一道 hash 表的题目学习了一下然后做了一下 poj 1200: 题意:给定一个字符串,以及该字符串里字符的种类数 ...

weixin_34247032的博客 94

#疯狂搜索( POJ-1200) #哈希

许多人喜欢解决难题,其中一些难题可能会使他们疯狂。一个这样的难题可能是在给定的文本中找到隐藏的素数。该数字可以是文本中存在的给定大小的不同子字符串的数量。您很快就会发现,您确实需要计算机的帮助和良好的算法来解决这一难题。 您的任务是编写一个程序,该程序给定子字符串的大小N,文本NC中可能出现的不同字符的数目以及文本本身,确定出现在字符串中的大小为N的不同子字符串的数目。文本。 例如,考虑N = 3...

仅仅是笔记。 659

字符串哈希 - POJ - 1200 字符串哈希-进制的选取

题目链接:http://poj.org/problem?id=1200 题目大意: 给你一个n和nc,以及一个字符串s,保证字符串里出现的字符种类等于nc。 让你求长度为n的字符串种类。 题目保证可能的字符集出现的子串最大数量不超过160万。 思路:直接暴力把哈希值加入set,输出st.size(),复杂度O(n*logn),T了。 发现这个如果把nc作为进制,子串最大数量不超过160万,那么这个...

H_ang的博客 301

poj1200 哈希

http://poj.org/problem?id=1200 Description Many people like to solve hard puzzles some of which may lead them to madness. One such puzzle could be finding a hidden prime number in a given text.

ACM,再见! 2953

Poj 1200 Crazy Search(字符串Hash)

Poj 1200 题意:给你一个n和m以及一个有m个不同字母组成的字符串,问有多少个长度为n的不同字符子串; 题解:以m为进制进行Hash。虽然是看了解题报告才会的但必须要理解并且学会运用:https://www.cnblogs.com/gj-Acit/archive/2013/05/15/3080734.html。 #include<cstring>//别用set,set的...

weixin_34247032的博客 150

poj1200 Crazy Search 哈希hash

Crazy Search   Time Limit: 1000MS        Memory Limit: 65536K Total Submissions: 33005        Accepted: 9063 Description Many people like to solve hard puzzles some of which may lead them to madne...

cloudy_happy的博客 217

POJ 1200 - 字符串hash基础

在做POJ1200 遇到最大的问题是,不知道怎么把不定的字符转换成对应的进制数,用于计算哈希值,以及误以为会有需要处理哈希冲突,使用了链表处理,结果超时。。简单暴力使用一个哈希数组就可以了,题目已经说明不同的字符串不会超过16000000,而char[16000000] 也就15M左右,、不会超内存。自己总结三点:1) 256个字符映射成对应的无符号整数 (也可以看成是哈希。。)2)有M个不同字符...

whjk20的专栏 472

poj-1200 Crazy Search

题目来源:http://poj.org/problem?id=1200 遍历一遍  主要是判重  用到hash 不是很难  水~ #include #include #include #include #define NUM 257 #define N 16000005 using namespace std; bool hash[N]; int m[NUM]; char s

嘻嘻哈哈 1227

POJ 1200 hash

显然,用hash,但TLE了好几次,最后是我把strlen提出来变量,才AC。教训。。。 #include #include #include #include #include #include #include #include // isalpha, isdigit, isprint, toupper, tolower #include #include #in

203

poj 1200 Crazy Search(hash)

题目链接:http://poj.org/problem?id=1200 思路分析:从数据来看,该题目使用线性时间算法,可见子串的比较是不可能的;使用hash可以在常数时间内查找,可以常数时间内判重, 可以再线性时间内解决问题;问题关键在与Hash函数的选择,使得子串之间的Hash值不同;由于NC的提示,使用NC作为基数,其他字符 分配不同的数码,从1-NC,再求取Hash值,保证函...

aqjh9999的博客 121
上一篇: POJ 1011 Sticks(经典dfs)
下一篇: poj 3268 (最短路 spfa)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值