ZOJ 1504 Slots of Fun(POJ 1244)

本文介绍了一种用于寻找特定等边三角形结构中重复字母的算法实现。该算法通过坐标映射来简化距离计算,进而判断由字母构成的三角形是否为等边三角形。文中详细解释了如何构建坐标系、计算距离以及处理精度问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意:

 

给一个整数n,然后是长度为n*(n+1)/2的字符串(仅由26个小写字母组成),这个字符串按三角矩阵依次排列(第一行有1个字母,第二行是3个……第n行有2*n-1个字母),然后判断在这个三角形中,是否存在等边的三角行,它的顶点上的字母都相同,如果存在,输出这个字母,否则输出“LOOOOOOOOSER!”。

 

模拟,很繁琐的模拟。

 

存坐标的时候,有点技巧,就是第 i 行的点的纵坐标是其横坐标 i 的 sqrt(3)/3 的整倍数,这样存点的好处是,可以直接用坐标计算两点间的距离,从而判断三角形是否等边。

 

存完坐标后,在所有出现次数大于等于3次的字母中遍历字符串,枚举每一种情况,就可以了。

 

这里需要考虑精度问题,还有就是字母输出字母的时候应该按照升序输出,并不是按照它们最先出现的顺序来的,这点困扰了我很久,TAT……

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值