[洛谷2814]家谱

skylee的OI博客 skylee的OI博客     2022-09-15     433

关键词:

思路:
字符串哈希,然后用普通的并查集维护即可。

 1 #include<cstdio>
 2 #include<cctype>
 3 #include<cstring>
 4 const int mod=19260817;
 5 char name[mod][7];
 6 inline int hash(char *s) {
 7     int n=strlen(s),ret=0;
 8     for(int i=0;i<n;i++) {
 9         ret=(ret*26+tolower(s[i])-a)%mod;
10     }
11     strcpy(name[ret],s);
12     return ret;
13 }
14 class DisjointSet {
15     private:
16         int anc[mod];
17     public:
18         DisjointSet() {
19             for(int i=0;i<mod;i++) anc[i]=i;
20         }
21         int Find(const int x) {
22             return x==anc[x]?x:anc[x]=Find(anc[x]);
23         }
24         void Union(const int x,const int y) {
25             anc[Find(x)]=Find(y);
26         }
27 };
28 DisjointSet s;
29 int main() {
30     int par;
31     char c,str[8];
32     while(~scanf("%s",str)) {
33         c=str[0];
34         for(int i=0;i<7;i++) {
35             str[i]=str[i+1];
36         }
37         if(c==#) {
38             par=hash(str);
39         }
40         if(c==+) {
41             s.Union(hash(str),par);
42         }
43         if(c==?) {
44             printf("%s %s
",str,name[s.Find(hash(str))]);
45         }
46         if(c==$) break;
47     }
48     return 0;
49 }

 

洛谷p2814家谱

P2814家谱题目背景现代的人对于本家族血统越来越感兴趣。题目描述给出充足的父子关系,请你编写程序找到某个人的最早的祖先。输入输出格式输入格式: 输入由多行组成,首先是一系列有关父子关系的描述,其中每一组... 查看详情

家谱(gen)——洛谷p2814

1#include<iostream>2#include<string>3#include<map>4usingnamespacestd;5map<string,string>mp;6intmain()7{8strings1="",s2="";9while(cin>>s1)10{11mp.clear();12while(s1!="$")1 查看详情

洛谷p2814家谱

题目背景现代的人对于本家族血统越来越感兴趣。题目描述给出充足的父子关系,请你编写程序找到某个人的最早的祖先。输入输出格式输入格式: 输入由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系... 查看详情

洛谷p2814家谱

题目背景现代的人对于本家族血统越来越感兴趣。题目描述给出充足的父子关系,请你编写程序找到某个人的最早的祖先。输入输出格式输入格式: 输入由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系... 查看详情

题解p2814家谱(代码片段)

map版本映射并查集注意其初始化其祖先字符串是其本身#include<bits/stdc++.h>usingnamespacestd;map<string,string>p;charflag;strings,tmp;stringfind(stringx)if(p[x]==x)returnx;returnp[x]=find(p[x]);intmain()cin>& 查看详情

p2814家谱(代码片段)

【题目描述】    输入由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系中父亲只有一行,儿子可能有若干行,用#name的形式描写一组父子关系中的父亲的名字,用+name的形式描写一组父子关系中的儿子... 查看详情

洛谷p1472奶牛家谱cowpedigrees

 P1472奶牛家谱CowPedigrees102通过193提交题目提供者该用户不存在标签USACO难度普及+/提高 提交  讨论  题解  最新讨论暂时没有讨论题目描述农民约翰准备购买一群新奶牛。在这个新的奶牛群中,每一个... 查看详情

洛谷p2814题解

标准并查集题目,开map做数组。每次遇到’&‘,’#‘,’+‘,’?\'就做不同的处理。为了好做,就用了函数(为了递归),#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;#definectxcout<<"xxxxx"<<endl#defineinf0x3f3f3f3fconstintIN 查看详情

洛谷p1827美国血统americanheritagelabel:字符串water

题目描述农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而不是... 查看详情

洛谷p1827美国血统americanheritage

P1827美国血统AmericanHeritage题目描述农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历&rdquo... 查看详情

洛谷p1827美国血统americanheritage

P1827美国血统AmericanHeritage54通过90提交题目提供者JOHNKRAM标签USACO难度普及- 提交  讨论  题解  最新讨论暂时没有讨论题目描述农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐... 查看详情

7-27家谱处理(30分)

...研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究。实验中,使用计算机处理家谱。为了实现这个目的,研究人员将家谱转换为文本文件。下面为家谱文本文件的实例:JohnRobertFrankAndrewNancyDavid家谱文本文件... 查看详情

家谱——仇氏

查看详情

MySQL 家谱:层次结构、婚姻参考和显示

】MySQL家谱:层次结构、婚姻参考和显示【英文标题】:MySQLFamilyTree:Hierarchy,Marriageref,andDisplay【发布时间】:2012-12-1012:09:42【问题描述】:我正在建立一个家谱+历史[PHP]网站,以展示我妈妈为她父母的圣诞礼物而整理的家谱报告... 查看详情

叶氏茂公培后裔家谱

  查看详情

递归遍历家谱时遇到问题

】递归遍历家谱时遇到问题【英文标题】:Havingissuesrecursivelytraversingfamilytree【发布时间】:2022-01-1522:08:30【问题描述】:我有一个Person类,它具有以下属性:姓名、出生和后代,以其他Person类数组的形式出现。现在我正在尝试... 查看详情

家谱树控制[关闭]

】家谱树控制[关闭]【英文标题】:GenealogyTreeControl[closed]【发布时间】:2008-08-0813:15:34【问题描述】:我的任务是(由我的妻子)创建一个程序,让她能够跟踪我们家族双方的家谱。有没有人知道一种具有成本效益(免费)的控... 查看详情

家谱的 Python simplepyged 图形表示

】家谱的Pythonsimplepyged图形表示【英文标题】:Pythonsimplepygedgraphicalrepresentationoffamilytrees【发布时间】:2011-12-2221:12:28【问题描述】:有谁知道使用python包simplepyged(用于解析gedcom文件)来图形表示家谱的方法?XY-图片?马特库图... 查看详情