SDUTOJ 3059 C#中类的继承性 ——字典树(哈希用法),map

2024-08-24 23:18

本文主要是介绍SDUTOJ 3059 C#中类的继承性 ——字典树(哈希用法),map,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C#中类的继承性

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

在C#中,类的继承遵循以下原则。
(1)派生类只能从一个类中继承,即单继承。
(2)类的继承是可以传递的,例如:假设类C继承于类B,类B又继承于类A,那么类A是类C的祖先类。
 
那么现在问题来了,给出一些类的继承关系,求出最多的继承层数。

输入

多组输入。

对于每组输入。

第一行输入一个整数n(1 <= n <= 50000)。

接下来的n行,每行只会符合下面两种格式:

(1) 仅包含一个类名。此时表明此类是基类,即不继承与任何类。

(2) 类名: 类名B。此时表明类A继承于类B

类名仅由小写英文字母且长度 <= 6。

数据保证合法。

输出

对于每组数据,输出最多的继承层数。

示例输入

2abcxyz:abc

示例输出

2

提示

 

来源

 zmx

#include <stdio.h>
#include <string.h>struct node
{int flag;int next[26];
}ls[6000010];int pr[50010];
int top,num;int creat(char sr[])
{int xb = 0,zh;char *p = sr;while(*p != '\0'){zh = *p - 'a';if(!ls[xb].next[zh]){ls[top].flag = 0;memset(ls[top].next,0,sizeof(ls[top].next));ls[xb].next[zh] = top++;}xb = ls[xb].next[zh];p++;}if(!ls[xb].flag)ls[xb].flag = num++;return ls[xb].flag;
}int main()
{char str[15];char sr1[10],sr2[10];int n;while(~scanf("%d",&n)){num = 1;memset(ls[0].next,0,sizeof(ls[0].next));top = 1;int mx = -(1 << 28);for(int i = 0;i < n;i++){scanf("%s",str);char *p = str;char *q = sr1;while(*p != '\0'){if(*p == ':')break;*q = *p;p++;q++;}*q = '\0';if(*p != '\0'){q = sr2;p++;while(*p != '\0'){*q = *p;p++;q++;}*q = '\0';int x = creat(sr1);int y = creat(sr2);// printf("pr[y] = %d\n",pr[y]);pr[x] = pr[y] + 1;if(mx < pr[x])mx = pr[x];}else{int x = creat(sr1);pr[x] = 1;}}printf("%d\n",mx);}return 0;
}

当时想多了,比赛完后才发现。。。。。就是用字典树  就是自己想多了。。。。。。不多解释

C++STL中的map也能过。。。。。

这篇关于SDUTOJ 3059 C#中类的继承性 ——字典树(哈希用法),map的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103882

相关文章

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

Java中的CompletableFuture核心用法和常见场景

《Java中的CompletableFuture核心用法和常见场景》CompletableFuture是Java8引入的强大的异步编程工具,支持链式异步编程、组合、异常处理和回调,介绍其核心用法,通过... 目录1、引言2. 基本概念3. 创建 CompletableFuture3.1. 手动创建3.2.

C#高效实现在Word文档中自动化创建图表的可视化方案

《C#高效实现在Word文档中自动化创建图表的可视化方案》本文将深入探讨如何利用C#,结合一款功能强大的第三方库,实现在Word文档中自动化创建图表,为你的数据呈现和报告生成提供一套实用且高效的解决方... 目录Word文档图表自动化:为什么选择C#?从零开始:C#实现Word文档图表的基本步骤深度优化:C

在C#中分离饼图的某个区域的操作指南

《在C#中分离饼图的某个区域的操作指南》在处理Excel饼图时,我们可能需要将饼图的各个部分分离出来,以使它们更加醒目,Spire.XLS提供了Series.DataFormat.Percent属性,... 目录引言如何设置饼图各分片之间分离宽度的代码示例:从整个饼图中分离单个分片的代码示例:引言在处理

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

C# 预处理指令(# 指令)的具体使用

《C#预处理指令(#指令)的具体使用》本文主要介绍了C#预处理指令(#指令)的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1、预处理指令的本质2、条件编译指令2.1 #define 和 #undef2.2 #if, #el

C#实现将Excel工作表拆分为多个窗格

《C#实现将Excel工作表拆分为多个窗格》在日常工作中,我们经常需要处理包含大量数据的Excel文件,本文将深入探讨如何在C#中利用强大的Spire.XLSfor.NET自动化实现Excel工作表的... 目录为什么需要拆分 Excel 窗格借助 Spire.XLS for .NET 实现冻结窗格(Fro