uva 12326 & hdu 4092 - Yummy Triangular Pizza(哈希+打表)

该博客介绍了如何解决UVA 12326和HDU 4092编程题目——Yummy Triangular Pizza。问题要求计算用n个正三角形能组成多少种不同的形状,考虑旋转和镜像。解题策略是使用三维坐标轴,将正立和倒立三角形分别表示为x+y+z=0和x+y+z≠0的情况。从初始状态出发,通过添加三角形并进行旋转、镜像操作,同时检查重复,利用哈希值和枚举原点来避免重复计数,由于n的限制,坐标x, y, z的最大值不超过8。" 111893465,10539367,Windows Vista下BCDEdit修改BCD启动项教程,"['Windows', 'BCD', '启动管理', '命令行工具']
摘要由CSDN通过智能技术生成

题目链接:uva 12326 &hdu 4092 Yummy Triangular Pizza

题目大意:给出n,表示用n个正三角形去组成图形,问可以组成多少种不同的三角形,旋转,镜像,都算同一种。

解题思路:参考别人的思路,很巧妙,主要就是建立三维坐标轴。

正立三角形x+y+z = 0
倒立三角形x+y+z ≠ 0

这样从初始装态为0 0 0的三角形开始逐个添加,每次进行旋转镜像,判断是否有没有重复。
每次判断重复的时候,枚举图形中的一个三角做为原点处理,生成hash值,以为n为多位16,所以x,y,z的范围不会大过8.

#include <cstdio>
#include <cstring>
#include <set>
#include <algorithm>

using 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值