《ACM书中题目》 B

红书《题目与解读》第一章 数学 题解《ACM国际大学生程序设计竞赛题目与解读》 阅读详情
  • 原题

    Description
    We all know that FatMouse doesn’t speak English. But now he has to be prepared since our nation will join WTO soon. Thanks to Turing we have computers to help him.

    Input Specification

    Input consists of up to 100,005 dictionary entries, followed by a blank line, followed by a message of up to 100,005 words. Each dictionary entry is a line containing an English word, followed by a space and a FatMouse word. No FatMouse word appears more than once in the dictionary. The message is a sequence of words in the language of FatMouse, one word on each line. Each word in the input is a sequence of at most 10 lowercase letters.

    Output Specification

    Output is the message translated to English, one word per line. FatMouse words not in the dictionary should be translated as “eh”.

    Sample Input

    dog ogday
    cat atcay
    pig igpay
    froot ootfray
    loops oopslay

    atcay
    ittenkay
    oopslay

  • 理解&思路
    词典类程序,给定单词与释义并查询,但要注意词条量多达100005,直接查找一定会超时。
    刚开始的想法:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i,n,m,z=0;
    struct dic
    {
        string x;
        string y;
    }dic[100005];
    dic[0].x="123";
    for(i=1;;i++)
    {
        cin>>dic[i].y;
        for(n=i;n>0;n--)
        {
            if(dic[i].y==dic[n].x)
            {
                cout<<dic[n].y;
                z=1;
                break;
            }
        }
        if(z==1) break;
        cin>>dic[i].x;
    }
    m=i-1;
    for(;;i++)
    {
        z=0;
        cin>>dic[i].x;
        for(n=m;n>0;n--)
        {
            if(dic[i].x==dic[n].x)
            {
                cout<<dic[n].y;
                z=1;
            }
        }
        if(z==0) cout<<"eh";
    }
}

很明显会超时,对空行的判断部分也有问题。后来看到map函数,尝试模仿使用。

  • AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    char ss[100],s1[100],s2[100];
    int x,y;
    map<string,string>::iterator p;
    map<string,string>m;
    while(gets(ss))
    {
        s=ss;
        if(s=="")break;
        else
        {
            sscanf(s.c_str(),"%s %s",s1,s2);
            m[s2]=s1;
        }
    }
    while(gets(ss))
    {
        s=ss;
        p=m.find(s);
        if(p!=m.end())
            cout<<m[s]<<endl;
        else
            cout<<"eh"<<endl;
    }
}
  • 总结
    看解析做出来的一道题。。。之前对map函数的用法及优点不了解。
【ACM】入门训练之A+B 前言 问:说说你印象最深刻的程序 A答:Hello World B答:A+B A+B for Input-Output Practice (I) 注:后续的A+B将只有原题链接,没有题目详情哈。建议和我一样的acm小白点击下题目链接,AC 原题链接 Problem Description Your task is to Calculate a + b. Too easy?! Of... 阅读详情

相关推荐

浅谈ACM ICPC的题目风格和近几年题目的发展

浅谈ACM ICPC的题目风格和近几年题目的发展斯坦福大学 王颖 ACM ICPC的比赛形式一般是五个小时八个题目,综合考察选手的数学能力、算法能力、coding能力和debug能力,还有团队配合能力。数学方面主要强调组合数学、图论和数论这三个方面的能力;而算法的覆盖范围很广,涉及了大部分经典的算法,和少量较前沿的算法。由于每道题目都需要通过所有的测试数据才能得分,并且需要精确

ACM ICPC 30th World Final Special 1万+

acm书中题目 b-2

题目大概: 要求输入一对对数据,如果再输入是能用其中一组数据调出另一组数据。 思路: 两组数据之间的关系用map来实现比较简单,因为要判断空行,所以我用了getline()来输入,用空来判断空行。 感想: 用空来判断空行确实难以想到,这是我查资料知道的。 代码: #include #include #include #include using namespace st

a1046765624的博客 305

我的ACM脚印

2020年12月20日,南京区域赛结束,同时结束的,还有我的两年多的ACM生涯 接下来的寒假重心会向着找实习的方向努力,当然明年还有线下的区域赛、EC-finial以及明年的省赛等等,我都会去认真准备。 这篇文章会写什么 关于我 我的ACM简单的回顾 我的ACM成绩 写给新人 ACM到底和数学建模、挑战杯等等的其他竞赛有什么区别 ACM到底带给我什么了 为什么要打ACM 什么样的人适合去打ACM,什么样的人不适合去打ACM 写给已经进入了ACM的人 我在ACM的训练计划 除了ACM之外的计划

AC不动机的博客 6399

ACM程序设计 书中题目 B

Description We all know that FatMouse doesn't speak English. But now he has to be prepared since our nation will join WTO soon. Thanks to Turing we have computers to help him. Input Specification

qq_37747988的博客 643

ACM大赛编程题目及解答集

ACM国际大学生程序设计竞赛(ACM/ICPC)是一项全球性的计算机程序设计竞赛,其历史可以追溯到1970年。最初由美国计算机协会(ACM)主办,至今已发展成为世界上最具权威的计算机竞赛之一,吸引来自全球各知名大学的计算机科学及相关专业的学生参与。竞赛旨在提升学生们的算法分析、编程能力,以及团队协作能力。本章将探讨ACM/ICPC的由来、赛事发展的历程、以及其独特的竞赛规则。

weixin_30299319的博客 886

python 解析bag文件(不用安装ros系统)

在网上找了很多教程都是安装ros系统之后再通过ros自带的包来解析bag文件,但我并不想安装ros系统,之前我也是通过安装ros系统在来解析bag文件,我觉得不是很方便,主要有两点原因,(1)安装ros需要root用户权限(2)ros系统只支持Python2的接口,一般我都是Python3的conda环境,这样每次调用rosbag时都需要先把当前的conda环境注释掉,不然会报错,然后使用完毕在回到conda环境 ros本身是提供了C++和Python的接口,因为我目前的诉求就只是解析bag文件,我想肯定有

sabrinalx的博客 1万+

ACM程序设计书中题目B

    这道题大致的意思就是输入翻译表,每行的左边单词是英语单词,每行右边的单词是一个fat mouse 语言,所以只要用map就可以解决这个翻译问题可以把fat mouse 语作为键值,对应的英语翻译作为元素值,主要问题是如何将输入翻译表和输出翻译分隔开,我用了两个getchar实现了这个操作,又因为防止每一行的首字母被吞做了一个make_ pair(b,e+a)的语句。 下面是我的AC代码:...

z846666407 268

# 芯片良率是怎么算出来的?——从泊松到负二项分布,一个芯片测试工程师的视角

- 良率=好Die/总Die,但选错模型可能差17个百分点 - Poisson模型过于悲观,Murphy居中,**Negative Binomial才是业界标配** - 关键不是良率数字,是**跟踪聚类因子α的变化**——它能早几周预警工艺漂移 - Chiplet时代,10颗90%良率的Die封在一起,整体良率只有35%

Freezeblur的博客 651

《ACM程序设计》书中题目 B

题目简要:    一道字典的题,先输入定义字典,然后按照输入查找相应的单词。 输入包括最多100,005个字典条目,后面是空行,后面是最多100,005个字的消息。 每个字典条目是包含英语单词的行,后面是空格和FatMouse单词。 没有FatMouse字在字典中出现不止一次。 消息是FatMouse语言中的一系列单词,每行一个单词。 输入中的每个字是最多10个小写字母的序列。 输出是

alexlioooo的博客 354

Vivado IP核综合失败别慌:除了打补丁,这个TCL命令也能救急(以Video Frame Buffer为例)

本文详细解析了Vivado IP核综合失败的排查方法,特别是针对Video Frame Buffer Read IP的常见问题。从补丁安装到深入分析DCP文件生成机制,再到使用强大的TCL命令`foreach ip_in_proj [get_ips] {compile_c [get_ips $ip_in_proj]}`强制重编译,提供了一套完整的解决方案。帮助开发者快速定位并解决IP核综合失败问题,确保项目顺利进行。

weixin_30892889的博客 423

ZYNQ双核通信实战:手把手教你用OpenAMP搭建Linux+FreeRTOS开发环境(2018.3版)

本文详细介绍了如何在ZYNQ平台上使用OpenAMP框架实现双核通信,构建Linux与FreeRTOS协同开发环境。从开发环境配置、系统组件编译到OpenAMP框架应用,手把手指导开发者完成ZYNQ双核通信系统的搭建与调试,为异构计算开发提供实用解决方案。

weixin_33737134的博客 476

《ACM程序设计》书中题目B

Description We all know that FatMouse doesn’t speak English. But now he has to be prepared since our nation will join WTO soon. Thanks to Turing we have computers to help him.Input SpecificationInput

TimEckel的博客 548

Google Earth Engine(GEE)——MOD09A1/MOD11A2/MOD13A1不同的QA波段去云进行分析

​​​​​​​大多数光学卫星图像产品都带有一个或多个 QA 波段,允许用户评估每个像素的质量并提取满足其要求的像素。QA 波段最常见的应用是提取有关多云像素的信息并对其进行屏蔽。但是 QA 波段包含大量其他信息,可以帮助您从分析中删除低质量数据。通常,QA 频带中包含的信息存储为按位标志。在这篇文章中,我将介绍与位运算相关的基本概念,以及如何使用位掩码提取和屏蔽特定的质量指标。

此星光明博客 4575

《ACM程序设计》书中题目―B

Description We all know that FatMouse doesn't speak English. But now he has to be prepared since our nation will join WTO soon. Thanks to Turing we have computers to help him. Input Specification

的博客 299

SAP_MM/CO模块-超详细的CK11N/CK40N取值逻辑梳理(十几种业务场景,1.76W字)

本文主要讲述的是三个大的知识点,超详细,涉及到知识点比较多,并且串起来讲解,这也是我在网上搜不到相关资料才自己慢慢研究测试出来的,断断续续耗费了我一周多时间,相信只要你们认真看完,肯定会有所收获; 1、CK11N/CK40N成本发布功能中,系统前台的取数逻辑,涉及到多个采购信息记录、生产版本、货源清单、配额协议等对成本价发布的影响~~!! 2、CK11N与CK40N发布的成本价不一致的问题~~!! 3、如何处理外协加工物料的外协价与BOM组件成本取值不匹配的问题~~!!

风沙的博客 4078

使用 MediaPipe 身体跟踪构建不良身体姿势检测和警报系统

详细介绍如何使用 MediaPipe 身体跟踪构建不良身体姿势检测和警报系统,并附实现的源码下载链接

DT程序员的博客 1815

《ACM程序设计》书中题目 B-02 FatMouse word

Description We all know that FatMouse doesn't speak English. But now he has to be prepared since our nation will join WTO soon. Thanks to Turing we have computers to help him. Input Specification

G_Meteor的博客 500

Devexpress16.2.6破解工具

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

《ACM程序设计》书中题目B 第二题 fatmouse的语言

1.问题描述 输入不超过十个字母的字典词条,每个词条包括一个英文单词、一个空格和fatmouse语言,将输入翻译为英文。 2.思路 看完题后,想的是用两个string数组把输入内容和输出的翻译结果分别写入两个数组,在两数组间用map建立联系,map中的键值和实值分别对应两个string数组,用键值完成对实值的查找。但是,具体如何操作,不会做。只有一个模糊的大体框架,找不出程序

jinghui_7的博客 257

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ACM程序设计书中题目--B(字典问题)

题目简述:先输入定义字典,然后按照输入查找相应的单词。 解题思路: 1、首先想到的是用map做,即使用find进行寻找。 2、但是在实际的操作中遇到了输入结束不了的问题。主要是由于定义字典之后的空行无法处理。 3、解决空行问题的方法如下:    while(gets(c))     {         if(strcmp(c,"")==0)break;         int i,

sdau164185的博客 315

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

《ACM程序设计》书中题目 T - 20 A的N次方近似于B

Description Given positive integers B and N, find an integer A such that AN is as close as possible to B. (The result A is an approximation to the Nth root of B.) Note that AN may be less than, e

G_Meteor的博客 610

《ACM程序设计》书中题目B(“胖老鼠的语言”说好的建国后动物不许成精呢?)

We all know that FatMouse doesn't speak English. But now he has to be prepared since our nation will join WTO soon. Thanks to Turing we have computers to help him. Input Specification Input consists

July_xunle的博客 528

【2025ACM寒假集训 ❷】

两个函数分别查找查找小于等于arr[i]-C的数和查找小于arr[i]+C的数,再用cnt累加它们的和,最后输出即可。判断需要使用长与宽被边长整除后相乘,得出某块巧克力可以分给几个人,累加判断是否足够。需要注意的是验证最后出来的数是否就是要查找的数,因为这个序列不一定连续。x只青蛙一起跳跃,判断每跳跃长度区间内的石头高度和是否大于2。原来是尽量让每个人写出最多的页数,最后判断人数是否超出实际。竟然是三个月前提交的,已经几乎忘了。一遍看下来整个人是懵的,根本没看懂。每次跳跃时选择最远能跳跃的石头跳跃。

JustBlurred的博客 352

ACM 寒假第二讲:二分法

这个阶段主要学习了二分法的写法与实际应用情况。1.查找数据2.枚举+验证。在理论上可以通过穷举得出答案时,用二分来简化穷举过程;有时问题是穷举再判断是否符合条件,故二分简化时仍避不开判断这一步。重要的还是判断的过程怎么写。hint:区间验证的两种方法:前缀和、双指针。

2403_87057242的博客 1840

ACM 寒假第二讲:二分法(学习总结)

这一专题与第一讲相比,难度有明显提升,主要是要对二分法有一个透彻的了解。其中我个人认为第3、4、5题是比较经典的二分法题目,值得我们加以揣摩。第6题难度偏高,其中的做题思路还须多总结思考。

2401_88980407的博客 1614

ACM算法竞赛入门——算法竞赛赛制、题目形式、常见评测状态

最全的acm算法竞赛赛制介绍、比赛、题目形式、常见测评状态

大四蒟蒻的学习笔记 1万+
上一篇: 《ACM书中题目》 U
下一篇: 《ACM书中题目》 V
qinglys
博客等级 码龄10年 0粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值