需要注意的地方:

  1. 我们只记录维京人的祖先,除了维京人的其他人不能记录它的祖先
#include <bits/stdc++.h>

using namespace std;

struct people {
string name, familyname;
char gender;
};
map<string, string> fa;
map<string, bool> sex; //1表示男性 0表示女性s people tran(string name, string familyname) {
string s = familyname;
int len = familyname.length();
if (len >= 7) {
if (s.substr(len - 7) == "sdottir") return { name, s.substr(0, len - 7), 'f' };
else if (s.substr(len - 4) == "sson") return { name, s.substr(0, len - 4), 'm' };
}
else if (len >= 4) {
if (s.substr(len - 4) == "sson") return { name, s.substr(0, len - 4), 'm' };
}
return { name, s.substr(0, len - 1), s.back() };
} bool check(string name1, string name2) {
map<string, int> gener;
for (int i = 1; name1 != ""; i++) {
gener[name1] = i;
name1 = fa[name1];
}
for (int i = 1; name2 != ""; i++) {
if (gener.count(name2)) {
if (gener[name2] >= 5 && i >= 5) return true;
return 0;
}
name2 = fa[name2];
} return true;
} int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
string name, familyname;
cin >> name >> familyname;
auto aft = tran(name, familyname);
sex[aft.name] = (aft.gender == 'm' ? 1 : 0);
if (familyname.back() != 'm' && familyname.back() != 'f')
fa[aft.name] = aft.familyname;
}
int m;
cin >> m;
for (int i = 1; i <= m; i++) {
string n1, f1, n2, f2;
cin >> n1 >> f1 >> n2 >> f2;
if (!sex.count(n1) || !sex.count(n2)) cout << "NA" << "\n";
else if (sex[n1] == sex[n2]) cout << "Whatever" << "\n";
else {
if (check(n1, n2)) {
cout << "Yes" << "\n";
} else {
cout << "No" << "\n";
}
}
} return 0;
} // 14
// chris smithm
// adam smithm
// bob adamsson
// bill chrissson
// mike jacksson
// steve billsson
// tim mikesson
// april mikesdottir
// eric stevesson
// tracy timsdottir
// james ericsson
// patrick jacksson
// robin patricksson
// will robinsson

L2-030 冰岛人的更多相关文章

  1. PTA刷题笔记

    PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑 ...

  2. hdu 1155 Bungee Jumping

    http://acm.hdu.edu.cn/showproblem.php?pid=1155 Bungee Jumping Time Limit: 2000/1000 MS (Java/Others) ...

  3. paper 126:[转载] 机器学习中的范数规则化之(一)L0、L1与L2范数

    机器学习中的范数规则化之(一)L0.L1与L2范数 zouxy09@qq.com http://blog.csdn.net/zouxy09 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化. ...

  4. 正则化方法:L1和L2 regularization、数据集扩增、dropout

    正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合).其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在tr ...

  5. 机器学习中的范数规则化之(一)L0、L1与L2范数(转)

    http://blog.csdn.net/zouxy09/article/details/24971995 机器学习中的范数规则化之(一)L0.L1与L2范数 zouxy09@qq.com http: ...

  6. L0、L1与L2范数、核范数(转)

    L0.L1与L2范数.核范数 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大 ...

  7. 机器学习中的范数规则化之(一)L0、L1与L2范数 非常好,必看

    机器学习中的范数规则化之(一)L0.L1与L2范数 zouxy09@qq.com http://blog.csdn.net/zouxy09 今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化. ...

  8. 人一生必看的100部电影(全球最佳电影排名榜TOP250)

    人一生必看的100部电影(全球最佳电影排名榜TOP250) 人的一生能看多少部电影?假设我们每周都看一部,从10岁看到80岁将会看3640部.但是我们也不可能喜欢这全部的电影.大多数的可能,我们会根据 ...

  9. 青铜器RDM全面支持CMMI、GJB5000A L2~L5认证评估

    青铜器RDM全面实现对CMMI L4.GJB5000A L4的100%支持,并且已经成为众多组织CMMI.GJB5000A落地执行的有效手段,避免认证与执行2张皮,有利于体系的贯彻执行,以下是青铜器R ...

  10. 正则化方法:L1和L2 regularization、数据集扩增、dropout(转)

    ps:转的.当时主要是看到一个问题是L1 L2之间有何区别,当时对l1与l2的概念有些忘了,就百度了一下.看完这篇文章,看到那个对W减小,网络结构变得不那么复杂的解释之后,满脑子的6666------ ...

随机推荐

  1. TypeScript: 類型 'HTMLElement | null' 不可指派給類型 'HTMLElement'。 類型 'null' 不可指派給類型 'HTMLElement'

    报错截图 解决方案 在结尾添加叹号 // 获取页面中food的元素并将其赋值给element this.element = document.getElementById('food')!;

  2. BTC中的数据结构

    BTC中的数据结构 普通指针 普通指针存储的是某个结构体在内存中的地址(假如P是指向一结构体的指针,那么P里面存放的就是该结构体在内存中的起始位置) Hash pointer(哈希指针) 对于如下的节 ...

  3. 数据分析师如何用SQL解决业务问题?

    本文来自问答. 提问:数据分析人员需要掌握sql到什么程度? 请问做一名数据分析人员,在sql方面需要掌握到什么程度呢?会增删改查就可以了吗?还是说关于开发的内容也要会?不同阶段会有不同的要求吗? 正 ...

  4. [mysql]状态检查常用SQL

    前言 使用MySQL自身命令获取数据库服务状态. 连接数 -- 最大使用连接数 show status like 'Max_used_connections'; -- 系统配置的最大连接数 show ...

  5. WPF中非递归(无后台代码)动态实现TreeView

    在UI界面中,树形视图是比较常用的表示层级结构的方式,WPF中提供了TreeView控件.对于TreeView控件的基本使用已经有很多文章.大都是介绍如何在XAML中使用硬编码的固定信息填充Treev ...

  6. module.exports和exports,应该用哪个

    在 Node.js 编程中,模块是独立的功能单元,可以在项目间共享和重用.作为开发人员,模块让我们的生活更轻松,因为我们可以使用模块来增强应用程序的功能,而无需亲自编写.它们还允许我们组织和解耦代码, ...

  7. linux tcpdump 使用小结(二)

    转载请注明出处: TCPDump是一个功能强大的网络抓包工具,它能够在命令行界面捕获.分析和解析网络数据包.下面是TCPDump命令的使用总结,包括使用语法.常用参数说明等: 使用语法:tcpdump ...

  8. Longest Divisors Interval

    Smiling & Weeping ----总有一个人, 一直住在心底, 却消失在生活里. Given a positive integer n, find the maximum size ...

  9. rnacos实现raft和类distro协议,支持集群部署

    1. rnacos 简介 rnacos是一个用rust实现的nacos服务. rnacos是一个轻量. 快速.稳定.高性能的服务:包含注册中心.配置中心.web管理控制台功能,支持单机.集群部署. r ...

  10. ClickHouse(15)ClickHouse合并树MergeTree家族表引擎之GraphiteMergeTree详细解析

    GraphiteMergeTree该引擎用来对Graphite数据(图数据)进行瘦身及汇总.对于想使用ClickHouse来存储Graphite数据的开发者来说可能有用. 如果不需要对Graphite ...