hdu1880 魔咒词典 (hash)

ROS 2 Humble + Gazebo Fortress 搭建AGV小车仿真环境(保姆级避坑指南) 本文详细介绍了如何使用ROS 2 Humble和Gazebo Fortress搭建AGV小车仿真环境,包括环境准备、URDF模型构建、ROS 2控制集成、传感器配置等关键步骤。特别针对Gazebo Fortress版本差异提供了保姆级避坑指南,帮助开发者快速解决常见问题并优化性能。 阅读详情

魔咒词典

Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 12845    Accepted Submission(s): 3099


Problem Description
哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。

给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?”
 

Input
首先列出词典中不超过100000条不同的魔咒词条,每条格式为:

[魔咒] 对应功能

其中“魔咒”和“对应功能”分别为长度不超过20和80的字符串,字符串中保证不包含字符“[”和“]”,且“]”和后面的字符串之间有且仅有一个空格。词典最后一行以“@END@”结束,这一行不属于词典中的词条。
词典之后的一行包含正整数N(<=1000),随后是N个测试用例。每个测试用例占一行,或者给出“[魔咒]”,或者给出“对应功能”。
 

Output
每个测试用例的输出占一行,输出魔咒对应的功能,或者功能对应的魔咒。如果魔咒不在词典中,就输出“what?”
 

Sample Input
  
[expelliarmus] the disarming charm [rictusempra] send a jet of silver light to hit the enemy [tarantallegra] control the movement of one's legs [serpensortia] shoot a snake out of the end of one's wand [lumos] light the wand [obliviate] the memory charm [expecto patronum] send a Patronus to the dementors [accio] the summoning charm @END@ 4 [lumos] the summoning charm [arha] take me to the sky
 

Sample Output
  
light the wand accio what? what?
 

Author
ZJU
 

Source
 

Recommend
We have carefully selected several similar problems for you:   1878  1877  1879  1881  1075 

思路:裸BKDhash + 邻接表模拟链表。

代码如下:
#include<cstdio> 
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int MOD=1e5+10;
const int maxn=1e5+10;
struct Node
{
	char x[25],y[85];
	int next;
}Ledge[maxn],Redge[maxn];
bool flag;
int Lpre[maxn],Rpre[maxn],Ltot,Rtot;
void addedge(int Lhash,int Rhash,char* L,char *R)
{
	strcpy(Ledge[Ltot].x,L);
	strcpy(Ledge[Ltot].y,R);
	Ledge[Ltot].next=Lpre[Lhash];
	Lpre[Lhash]=Ltot;
	Ltot++;
	strcpy(Redge[Rtot].x,L);
	strcpy(Redge[Rtot].y,R);
	Redge[Rtot].next=Rpre[Rhash];
	Rpre[Rhash]=Rtot;
	Rtot++;
}
int getHash(char* str)  
{  
    unsigned int seed = 131;  
    unsigned int hash = 0;  
    while (*str)  
    {  
        hash = hash * seed + *str++;  
    }  
    return (hash & 0x7fffffff) % MOD;  
} 
int query(char* str)
{
	int strhash=getHash(str);
	for(int i=Lpre[strhash];i!=-1;i=Ledge[i].next)
	{
		if(strcmp(str,Ledge[i].x)==0)
		{
			flag=false;
			return i;
		}
	}
	for(int i=Rpre[strhash];i!=-1;i=Redge[i].next)
	{
		if(strcmp(str,Redge[i].y)==0)
		{
			flag=true;
			return i;
		}
	}
	return -1;
}
void init()
{
	for(int i=0;i<maxn;i++)
	{
		Lpre[i]=Rpre[i]=-1;
	}
	Ltot=Rtot=0;
}
int main()
{
	init();
	char s[120],L[25],R[85],que[85];
	while(gets(s)!=NULL)
	{
		if(strcmp(s,"@END@")==0) break;
		int len=strlen(s);
		int Llen=0,Rlen=0;
		bool flag=false;
		for(int i=0;i<len;i++)
		{
			if(s[i]=='[') flag=true,i++;
			else if(s[i]==']') flag=false,i+=2;
			if(flag) L[Llen++]=s[i];
			else R[Rlen++]=s[i];
		}
		L[Llen]=R[Rlen]='\0';
		int Lhash=getHash(L),Rhash=getHash(R);
		addedge(Lhash,Rhash,L,R);
	}
	int q;
	scanf("%d",&q);
	getchar();
	while(q--)
	{
		gets(que);
		if(que[0]=='[') strcpy(que,que+1),que[strlen(que)-1]='\0';
		int ans=query(que);
		if(ans==-1) printf("what?\n");
		else if (flag) printf("%s\n",Redge[ans].x);
		else printf("%s\n",Ledge[ans].y);
	}	
}


 


Python《打砖块》小游戏 Python《打砖块》小游戏! 阅读详情

相关推荐

黑马程序员Pink的javaScript课程APIday4

本文摘要:介绍了JavaScript中日期对象的实例化方法(有参/无参)及三种获取时间戳的方式。讲解了DOM节点操作,包括节点查找(父、子、兄弟节点)、增加/克隆/删除节点的方法。详细说明了移动端touch事件和Swiper插件的使用,包括自动播放和小圆点配置。最后提及学成在线案例中表单验证和取消默认跳转的实现。

JLY19970726的博客 825

hdu 1880 魔咒词典(多种方法)

题目描述:     哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。     给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出

Rachel Zhang的专栏 5703

国产大模型编程能力深度分析报告(2026年5月更新版)

2026年5月国产大模型编程能力报告显示,主流模型迎来重大升级。DeepSeek V4以1.6T参数创性能新高,Qwen3.6-Plus支持原生多模态编程,MiniMax M2.7转向闭源并优化Agent编码,Kimi K2.6成为商业化成熟的主力模型,GLM-5开源并涨价30%。阿里云百炼推出双轨订阅体系,区分团队和个人开发者需求。各模型在参数规模、上下文长度、性能表现和适用场景上各具优势,国产AI编程服务正加速向订阅制转型,成本效益显著提升。

Willin Wang 的全栈升级指南 1652

HDU1880 (2020.3.12训练D题)

Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。 给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就...

rainbowower的博客 577

TMP112/TMP102温度传感器驱动开发与嵌入式实战

数字温度传感器是嵌入式系统环境感知的核心器件,其通过I²C等标准总线实现高精度、低功耗测温。原理上依赖ΔΣ模数转换与二进制补码数据格式,结合寄存器配置实现模式控制、阈值报警与功耗管理。技术价值体现在±0.5°C级精度、1μA级静态电流及SOT-563超小封装带来的系统集成优势。广泛应用于工业MCU热监控、电池物联网终端、医疗电子温度补偿及汽车ECU板级测温等场景。本文围绕TMP112/TMP102展开,深入解析寄存器协议、硬件接口约束、HAL驱动分层设计、FreeRTOS任务调度及生产级校准方法,覆盖从芯片

weixin_35756690的博客 674

避坑指南:SAP成本中心分割结构配置常见错误及解决(含KA06/KL01前置步骤)

本文深入解析了SAP成本中心会计中分割结构配置的关键步骤与常见错误。重点强调了配置前必须通过KA06创建次级成本要素(类别42)和通过KL01创建活动类型这两个核心前置步骤,并详细剖析了在OKES中定义分割规则及版本时的高频报错原因与解决方案,帮助顾问和运维人员有效规避配置陷阱,确保成本分摊的准确性。

pear55的博客 865

魔咒词典(简单的map的使用--STL)

魔咒词典 Time Limit: 8000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 346 Accepted Submission(s): 95Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒

Lancer 1135

STM32智能头盔DIY全攻略:从心率监测到跌倒报警的完整实现

本文提供了基于STM32的智能头盔完整DIY实现方案,涵盖从心率监测到跌倒报警的核心功能。详细解析了系统设计、硬件搭建、软件算法及系统联调,重点介绍了STM32主控、MAX30102心率传感器和MPU6050姿态传感器的应用,并分享了跌倒检测算法与功耗优化等实战经验,为嵌入式开发与物联网创新项目提供全面指导。

sony5的博客 500

Hdu 1880 魔咒词典(hash链表)

题目1029:魔咒词典 时间限制:1000ms 内存限制:32 m 题目描述: 哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。 给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该

但行好事,莫问前程. 491

基于C#的工业机器人上位机控制程序开发(搭配松下PLC+MC协议)

基于C#的工业机器人上位机控制程序开发,核心是上位机与松下PLC的MC协议通信和机器人控制的安全逻辑,而不是单纯的界面编写。在工控现场,程序的稳定性和安全性永远是第一位的——比如解耦通信逻辑、处理跨线程问题、添加安全互锁、记录操作日志,这些都是保证产线稳定运行的关键。新手在学习时,建议先跟着步骤搭建好环境,跑通基础的PLC通信和机器人控制功能,再逐步尝试进阶优化。数据模型化、通信封装化、逻辑模块化、UI解耦化。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1240

【论文汇总】Diffusion Models视频生成/视频编辑/可控视频生成/跨模态视频生成

本文总结了Diffusion Models视频生成领域相关的工作,目前共收录142篇,持续更新中。

沉迷单车的追风少年 1672

[保研/考研机试] KY146 魔咒词典 浙江大学复试上机题 C++实现

[保研/考研机试] KY146 魔咒词典 浙江大学复试上机题 C++实现

weixin_56319483的博客 266

【华为OD机试】真题E卷-一种字符串压缩表示的解压(C++)

有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串aaabbccccd 经过压缩变成字符串 3abb4cd请您编写解压函数,根据输入的字符串, 判断其是否为合法压缩过的字符串若输入合法则输出解压缩后的字符串 否则输出字符串!error来报告错误。

u014481728的博客 894

HDU-1880-魔咒词典【哈希(Hash)+二分】

魔咒词典Time Limit: 8000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 13648 Accepted Submission(s): 3305Problem Description哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000

进击的ACMer!!! 1574

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

hdu 1880 魔咒词典(字符串hash)

题目链接:hdu 1880 魔咒词典 题意: 给你一个10w的词典,让你输出对应的字段。 题解: map暴力存字符串肯定会卡内存,这里用BKDR字符串hash一下,用map映射一下。 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 using namespace ...

weixin_30699955的博客 147

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【字符串匹配_哈希】HDU 1880 魔咒词典(太难了,我上辈子是个南瓜,TAT,改了一下午,竟然是读错题)

写在前:Curse: 诅咒 Function: 功能【今天这两个我认识,让我骄傲一波23333333】 HDU 1880 魔咒词典 题意:Harry Potter有一本词典,内容是[魔咒]<-->功能。然后我们有T次询问,问输入的内容词典中有没有对应内容(魔咒对应功能,功能对应魔咒)。如果有,输出对应内容;如果没有,输出"what?" 思路:分别算出魔咒的哈希、功能的哈...

L_X_ 321

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

魔咒词典 - HDU 1880 hash表

OJ:http://acm.hdu.edu.cn/showproblem.php?pid=1880 题意还是非常的清楚,给你一个键值对,需求是给出k的时候,查出v,给你v的时候,查出k。还要注意的是,输出结果的时候,k中的[]是不会被输出的,但是查询的时候给出的k是包含[]的,且题中说明了魔咒个和字符串中都不会包含[]这两个字符。 解析: 其实这个题,使用有标准库的语言非常好实现...

P19777的博客 267

HDU1880魔咒词典 字符串哈希

魔咒词典 Time Limit: 8000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 18839 Accepted Submission(s): 4398 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100...

DouglasConnor的博客 403

hdu 1880 魔咒词典(双hash)

魔咒词典Time Limit: 8000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 16775 Accepted Submission(s): 3963 Problem Description哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有...

dggnqzt6462的博客 146

魔咒词典 HDU1880 哈希+二分

哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。  给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?” Input ...

Top_Spirit的博客 231

hdu1880魔咒词典 字符串哈希

魔咒词典 Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 13274    Accepted Submission(s): 3236 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔

kyoma的博客 398

HDU 1880 魔咒词典(Hash+二分)

题目链接 哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。 给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?” In...

不二君 729

字符串哈希(魔咒词典hdu1880)

魔咒词典(字符串哈希) 哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。 给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?” Input 首先列出词典中不超过100000条不同的魔咒词条,每条格式为: [魔咒] 对应功能 其中“魔咒”

濡苏的博客 281

HDU 1880 魔咒词典 (字符串hash)

<题目链接> 题目大意: 就是每个字符串有一个配套的对应字符串,询问的时候,无论输出其中的哪一个字符串,输出另一个,如果不存在这个字符串,直接输出"what?"。 解题分析: 转载于>>>本题很明显要用字符串hash,数据量比较大,如果直接用map,会Mle。所以我们用hash表来处理,下面采用了一个比较优秀的hash算法-BKDR进行处理。 ...

weixin_30306905的博客 166

魔咒词典 HDU1880 字符串哈希

哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。 给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?” Input ...

CURRYWANG97的博客 256

HDU1880——哈希表(BKDR算法)——魔咒词典

哈希表:建表复杂度:O(n) k为字符串品均长度,n为字符串数目 查询 O(1) !!! 实现主要操作 1.把字符串进行实数化 2.把这个串存进去如果发现该位置为空,直接存,如果已经有了值,拉出一个链表 3.查询 该算法好像是不会产生冲突,因为一旦产生冲突,那么strcmp字符串函数就会对他们进行比较,虽然复杂度会高一些 转载出处——http://blog.youkuaiyun.com...

dgjm4087的博客 240
上一篇: Codeforces Round #382 (Div. 1) B. Taxes
下一篇: 2016 ICPC青岛赛 hdu5988 G.Coding Contest
overload1997
博客等级 码龄11年 328粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值