【题解】多国语言(2021牛客OI赛前集训营)

牛牛通过观察不同语言中猫叫声的拟声词,探究猫是否根据语言差异作出不同回应。程序通过记录每种语言叫声的次数和回应次数,判断猫的交流方式。如果猫只对一种语言每次都回应,则认为猫来自该语言地区;若回应多种语言或未回应,则输出相应结论。

题目描述

不同的国家和地区,使用着不同的语言。
在不同的语言中,形容猫的叫声的拟声词也有所不同,比如中文中是“喵 (miao)”,
英文中是“meow”,日文中是“にゃー(nyaa)”。

牛牛想知道,不同国家和地区的猫,是不是真的存在不同的交流方式。
为了验证这个事情,他将m种语言编号为1,2, . . . , m。然后他随机的找来了一只猫,
并对着猫发出 n 次猫叫声,其中第i 次猫叫声是第 ai (1 ≤ ai ≤ m)种语言中猫叫
的拟声词。
每次发出猫叫声后,他会记录猫是否对其回应。如果猫在第i次回应了牛牛,牛牛
则记录bi = 1,否则记录bi = 0。

如果猫只对某种语言的叫声做出回应,并对该种语言的每次叫声都做出回应,那
么牛牛就判断,不同国家和地区的猫确实存在不同的交流方式,并且认为这只猫
来自该种语言的国家。此时输出该种语言的编号。
否则,如果猫对≥ 2种语言的叫声做出了回应,或者对1种语言做出过回应,但没
有对每次该语言的叫声做出回应,那么牛牛认为猫真可爱,并且给它一条小鱼干。
此时输出^v^
当然也有可能,猫根本就不回应牛牛的任意一次叫声,这时牛牛将会很沮丧。此
时输出 >-<

思路

记录叫的次数和分别回应的次数, cnt 统计几次叫满(都回应了),k 统计几次至少回应了一次,对比即可。

Code

讲解都在注释里:

#include<cstdio>
#include<iostream>
#include<map>
#include<cstring>
#include<bitset>
using namespace std;
const int N=1e5+5;
int n,m,T,cnt,a[N],b[N],v[N],num[N];
int main(){
   
   
    scanf("%d",&T);
    while(T--){
   
   
        memset(num,0,sizeof(num));
        memset(v,0,sizeof(v));
        scanf("%d%d",&n,&m);
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lvshu · 绿树

非常感谢您的搭讪

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值