百练:2408:Anagram Groups

VConsole动态加载 // 移动端真机调试工具 vconsole import VConsole from "vconsole"; import Vue from "vue"; // 动态使用VConsole if(process.env.NODE_ENV==='production'){ if(process.env.VUE_APP_BASEURL.includes('test')||process.env.VUE_APP_BASEURL.includes('pre')){ Vue.prototype 阅读详情

1、解题思路

根据题意需要对一连串字符串进行分类,分类标准为最小字典序排列相同,则根据分类和输出标准可以构造一个结构体,结构体如下:

struct node{
    set<string> s_set;
    string new_string;
    string old_first_string;
    int num;
}s_node[30001];

1、其中s_set用于存储字符串,这里依照题目要求用了set的两个性质:1) 无重复元素 2)自动排序

2、其中num为这一类的总个数(注意总个数不一定等于最终这一类输出的个数,因为输出个数去除了相同元素)

3、new_string:为这一类的特征(按最小字典序排序后的字符串)

4、old_first_string:第一个存入set的字符串

除了构造结构体,为了方便查找字符串属于哪一个类,使用了map来将类特征(排序后的字符串)映射到类下标(数组下标)。

有了结构体后就可以对输入的每一个字符串进行排序,排完序使用map来查找s_node数组对应的类下标,若没有则开辟一个新类,有则更新。

2、源代码

#include <iostream>
#include <set>
#include <map>
#include <algorithm>
using namespace std;
struct node{
	set<string> s_set;
	string new_string;
	string old_first_string;
	int num;
}s_node[30001];
map<string, int> s_i;
bool cmp(node x, node y){
	if(x.num == y.num)
		return x.old_first_string < y.old_first_string;
	return x.num > y.num;
}
int main (){
	int Total = 0;
	string temp;
	while(cin>>temp){
		string y = temp;
		sort(temp.begin(), temp.end());
		if(s_i.find(temp) == s_i.end()){  // 无对应map则创建一个新node
			s_i[temp] = Total; 
			s_node[Total].num++;
			s_node[Total].new_string = temp;
			s_node[Total].old_first_string = y;
			s_node[Total].s_set.insert(y);
			Total++; 
		}else{  // 有对应map则存入对应的node的set中并且字符串数量+1 
			s_node[s_i[temp]].num++;
			s_node[s_i[temp]].s_set.insert(y);
		}
	}
	sort(s_node, s_node+Total, cmp);  // 按数量+字典序排序 
	for(int i = 0 ; i < 5; i++){  // 取前五个输出 
		if(s_node[i].num == 0)
			break;
		cout<<"Group of size "<<s_node[i].num<<": ";
		for(set<string>::iterator it = s_node[i].s_set.begin(); it != s_node[i].s_set.end(); ++it) {
			cout<<*it<<" ";		
		}
		cout<<"."<<endl;
	}
	return 0;
} 
微信文件自动归档!手把手教你用OpenClaw搭个自己的“数字员工”,告别重复劳动 很多人说“AI是未来”,但未来不是靠喊口号的。OpenClaw的真正价值,是让你把重复劳动交出去,把时间留给真正需要创造力的事。这事真能干,而且不难。下载OpenClaw(GitHub仓库按我写的步骤跑一遍遇到坑,评论区留言——我亲自帮你看作者后记:上周五,我让AI自动归档了文件后,终于在5点准时下班。回家路上,我给它发了条消息:“干得漂亮”。它没回,但我知道——它在默默等我的下一条指令。 阅读详情

相关推荐

手把手教你用P-MOS管搭建双电源自动切换电路(含AO3401选型指南)

本文提供了一份基于P-MOS管AO3401构建高可靠双电源自动切换电路的实战指南。文章详细对比了继电器、理想二极管与MOS管方案的优劣,深入解析了AO3401的关键参数选型,并手把手指导了从原理图设计、PCB布局到上电调试的全过程,旨在帮助硬件工程师和创客以极低成本实现无缝、高效的电源冗余方案。

moss5的博客 1234

Anagram Groups(字典树)

Anagram Groups World-renowned Prof. A. N. Agram’s current research deals with large anagram groups. He has just found a new application for his theory on the distribution of characters in English language texts. Given such a text, you are to find the large

qq_52358084的博客 694

地震勘探中的频谱分析:从基础到应用

本文深入探讨了地震勘探中的频谱分析技术,从基础原理到实际应用。通过傅里叶变换等工具,频谱分析能有效识别不同地震波的频率特征,指导数据采集和处理。文章结合油田勘探案例,展示了如何利用振幅谱和相位谱提升信噪比,并介绍了智能滤波等前沿技术在地震数据处理中的应用。

weixin_42557830的博客 406

POJ 2408 Anagram Groups(Trie+思维)

给出多个单词,每个单词的长度没说(差评),每个单词只要所有的字母相同可以认为是同一个单词,将所有的同一个单词放入集合中,输出前 5 个集合数量最大的集合 注意:若一个集合中只有一个单词 word,不能说明 word 只出现过一次 题目不难,但是处理起来有几个坑点 题目可以用 map+set 过,但是常数较大,我们采用字典树,将每一个单词在树上的标记作为桶 将不同的字符串转化为字典序最小的,可以采用快排,这里采用基数排序 可能是 set 里面有 const 修饰的形参,所以 cmp 函数...

C_Dreamy的博客 674

audio框架学习-Audio_Flinger分析

文章目录一、代码位置二、audio服务启动2.1 main服务2.2 audioflinger添加到系统服务中2.3 audioflinger的对外接口 之前记录过audioTrack的笔记,这次继续参考audioFlinger相关的代码并做笔记; 参考文档:https://www.cnblogs.com/innost/archive/2011/01/15/1936425.html和https://blog.youkuaiyun.com/zyuanyun/article/details/60890534?spm=100

永不秃头的程序员的博客 2135

吉林大学软件工程章节测验 第九章 答案+解析

4.【判断题】估算软件规模有代码行技术和功能点技术两种方法,其中代码行方法估计实现一个功能所需要的源程序行数,其不依赖项目所使用的开发语言,并且具有较好的直观性。3.【单选题】软件项目估算时,若计划人员对每个功能分别按最佳的、可能的、悲观的三种情况给出功能点估计值,记作a, m, b,则估算的期望值E的公式为( )。8.【判断题】在工程网络图中,如果在由起始事件至终止事件所构成的一条路径上,所有事件的最早时刻都和最迟时刻都相同,那么这条路径就是关键路径。4.【单选题】配置管理贯穿软件开发的整个过程。

m0_51459931的博客 1427

poj——2408——Anagram Groups

Description World-renowned Prof. A. N. Agram's current research deals with large anagram groups. He has just found a new application for his theory on the distribution of characters in English lang

清溪浅水 1447

LabVIEW Modbus通讯实战:从安装库到读写寄存器的完整避坑指南

本文详细介绍了LabVIEW与Modbus通讯的完整实战指南,从安装库文件到读写寄存器的全流程操作,帮助开发者避开常见问题。通过虚拟串口配置、主机配置实战和高级调试技巧,提升工业自动化领域的通讯效率与可靠性。

milk8的博客 739

POJ - 2408 Anagram Groups(让人窒息的字符串桶排序)

Anagram GroupsTime Limit: 1000MS Memory Limit: 65536KDescriptionWorld-renowned Prof. A. N. Agram's current research deals with large anagram groups. He has just found a new application for his theory...

x__1998的博客 1293

Palabos User Guide中文解读 | 第一章 | 介绍

译者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,能不能完成全本翻译再说,而且文中我也会标记我不确定的地方,以传达意思为主,翻译不当的地方还请各位读者帮忙指正。 Palabos User Guide Release 1.0 r1 Copyright © 2019 University of...

Yulan Fang's notes. 6977

基于STM32L4XX的环境光传感器(AS7343-DLGMN)应用程序设计

define AS7343_STATUS_SPECTRAL_INT (1 << 3) /* 光谱数据就绪 */#define AS7343_SYS_CFG_SPECTRAL_EN (1 << 1) /* 光谱测量使能 */#define AS7343_SYS_CFG_ALS_EN (1 << 0) /* ALS使能 */#define AS7343_SYS_CFG_INT_EN (1 << 4) /* 中断使能 *//* 切换通道组 (0=组1 F1-F6, 1=组2 F7-F12) */

myron6688的博客 257

POJ 2408:Anagram Groups

这题用了两个sort,大sort是把每个等价类先排到相邻的位置上去,第二个sort在等价类内部排序,第三个 sort 将 等价类排序。 //这题要考虑的太多,主要的一点是重复单词只输出一次但是计算Group size的时候要重复计算 #include #include #include using namespace std; struct word0 { char conten[500];

米周奇的博客 558

揭秘AI人工智能中Stable Diffusion的模型微调技巧

Stable Diffusion作为一种强大的文本到图像生成模型,在艺术创作、设计、娱乐等多个领域展现出了巨大的应用潜力。然而,其默认的模型输出可能无法满足特定用户或特定场景的个性化需求。本文章的目的在于深入揭秘Stable Diffusion的模型微调技巧,让读者能够根据自己的需求对模型进行定制化调整,生成符合特定风格、主题或要求的图像。范围涵盖了从基础概念到实际操作,从理论原理到项目实战的全方位内容,旨在为读者提供一个系统且深入的学习指南。

大模型应用工坊 948

poj 2408 Anagram Groups(hash)

题目链接:poj 2408 Anagram Groups 题目大意:给定若干个字符串,将其分组,按照组成元素相同为一组,输出数量最多的前5组,每组按照字典序输出所 有字符串。数量相同的输出字典序较小的一组。 解题思路:将所有的字符串统计字符后hash,排序之后确定每组的个数并且确定一组中字典序最小的字符串。根据个数 以及字符串对组进行排序。 #include #incl

不慌不忙、不急不躁 1736

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

POJ 2408 Anagram Groups 字母排序

点击打开链接 Anagram Groups Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3807   Accepted: 1015 Description World-renowned Prof. A. N. Agram's current resea

代码改变世界,keep coding。 2424

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

POJ 2408 Anagram Groups 排序到极致

Anagram Groups Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4903   Accepted: 1316 Description World-renowned Prof. A. N. Agram's current research deals wi

MY Blog 1529

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Anagram Groups POJ - 2408(字典树)

世界著名的A.N.Agram教授目前的研究涉及大型变位词组。他刚刚发现了一个新的应用,为他的理论在英语文本中的字符分布。给定这样的文本,您将找到最大的变位词组。 文本是一系列单词。一个单词w是一个单词v的变位词,如果且仅当字符位置的某些排列p带w到v时。那么,w和v在同一个变位词组中。变位词组的大小是该组中的单词数。找到5个最大的变位词组。 ...

博客 449

【POJ 2408 Anagram Groups】 字典树(Trie树)

POJ2408 本题题意是,把可以通过重新排列变成相同单词的单词放入一个集合,最后按找集合元素由多到少输出前五个集合,如果几何元素相同,按照字典序由小到大输出 我们考虑,如果两个单词可以通过重新排列组合变成相同单词,那么他们的字典序最小的排列方式一定是相同的,所以我们可以利用每个元素的最小排列方式判定是否在同一个集合,字典树在这里用于判定某个字符串时候出现过。最后用set来保存以便维持字典序 ...

lajiyuan的博客 495

POJ-2408 Anagram Groups(字符串排序问题)

点我看题目 题目大意 输入多个单词,相同字母异序词归为一组,按照每组单词数量从大到小输出前5组(不够全输出),两组数量相同则按照字典序输出,并按照字典序输出每组的单词。 思路 先将每个单词s1的每个字母按照字典序排序(目的是使单词同源)得到s2,并把排序前后的两个字符串打包到一个结构体中。然后按照优先s2,其次s1的规则sort排序,得到有序(字典序)的一组结构体数组。for循环遍历找出有几组相同...

Here_SDUT的博客 383

poj—2408—Anagram Groups

题目链接 做了好久,没有注意到的一点就是不仔细看样例,害我弄了这么长时间,下次一定注意, 看样例, 看样例, 看样例。 ac代码: #include &lt;algorithm&gt; #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cstdio&gt; #include &lt;math.h&gt; ...

兜率工的博客 351

POJ-2408 Anagram Groups-字典序取最大前五

Anagram Groups Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4906   Accepted: 1319 Description World-renowned Prof. A. N. Agram's current research deals with

Some. 1677

字符串依据元素分组 Trie+hash POJ 2408 Anagram Groups

http://poj.org/problem?id=2408 题意: 给定若干个字符串,将其分组,按照组成元素相同为一组,输出数量最多的前5组,每组按照字典序输出所。  有字符串。数量相同的输出字典序较小的一组。 注意: 每个输出时每个字符串只能出现一次。 解析: 可以先将所有的字符串利用字典树hash,并利用vector进行保存。  然后对vector进行标号

ACM_10000h的专栏 928

POJ 2408 Anagram Groups 笔记

有相同字母组成但排列不同的单词为同一类。在已知字典中找出前五位的最大的类,和他的成员。

woniupengpeng的专栏 349

POJ 2408 Anagram Groups(字典树hash)

题意: 给定若干个字符串,将其分组,按照组成元素相同为一组,输出数量最多的前5组,每组按照字典序输出所。 有字符串。数量相同的输出字典序较小的一组。 注意: 每个输出时每个字符串只能出现一次。 解析: 可以先将所有的字符串利用字典树hash,并利用vector进行保存。 然后对vector进行标号,这样只要对标号进行排序,而不用对vector进行排序。效率大大提高。 mymy

小G的ACM之路 1135

poj 2408 Anagram Groups

Description World-renowned Prof. A. N. Agram's current research deals with large anagram groups. He has just found a new application for his theory on the distribution of characters in English langua...

weixin_30340775的博客 213

poj----Anagram Groups

World-renowned Prof. A. N. Agram's current research deals with large anagram groups. He has just found a new application for his theory on the distribution of characters in English language texts. Giv

yan 647
上一篇: Linux相关操作记录
下一篇: 百练:2181:Jumping Cows
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值