CF-1096C Polygon for the Angle

CF-1096C Polygon for the Angle

https://codeforces.com/contest/1096/problem/C

1447410-20190117102848856-959928434.png

题意:给一个角度ang(1<=ang<=180) 然后输出如图所示规则的最小正n边形的边数

分析:abc三点构成一个三角形,而三角形内角的比例就对应于它们各自对应的那段边数比。如图,54度对应三份,剩下的分别对应五份和两份。

所以,对于任意一个角度ang,先求出g=gcd(ang,180),即每一边可以对应多少度,然后 n=180/g 即为正n边形的边数,wait wait!是不是有点太快了,别忘了我们的前提条件,我们是用三角形内角比例等于对应边数比得到的结论,我们要让它满足能够组成三角形这一条件,所以发现当 ang/180==(n-1)/n 时(想一想为什么是这样),就无法组成三角形(因为只剩下一份了,不够与ang组成三角形),这个时候只需将 n乘以2即可。

#include <bits/stdc++.h>
using namespace std;
int T,ang,n;
int main()
{
    cin>>T;
    while(T--)
    {
        cin >> ang;
        int n = 180/__gcd(ang,180);
        if(ang * n / 180 == n-1){
            n*=2;
        }
        cout << n << endl;
    }
}

转载于:https://www.cnblogs.com/1625--H/p/10280878.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
不适配多边形的生成是解决不规则库存切割问题的重要部分。一个完整和健壮的不适配多边形生成算法应具备以下特点。 首先,算法应能够生成不适配多边形以最大程度地减少材料浪费。这意味着算法需要考虑到在切割过程中,尽量减少边界线重叠、留下无法切割利用的有价值的材料。为此,算法需要通过优化切割顺序和方向,以及合理选择切割起点和切割方式等策略,来实现最佳的材料利用率。 其次,算法需要具备较高的运行效率和计算准确性。库存切割问题往往涉及大量的材料和切割方案,因此算法的执行效率和计算复杂度很重要。一种高效的算法应能够在较短的时间内生成满足要求的不适配多边形,同时保证切割结果的准确性和可行性。 第三,算法需要兼容处理各种形状和尺寸的库存和需求。不同的库存形状和需求尺寸都可能导致不同的切割方案和不适配多边形的生成情况。因此,算法需要能够灵活处理各种可能的情况,并产生适用于不同情况的切割方案和多边形形状。 最后,算法应具备一定的可扩展性和可定制性。库存切割问题的具体情况可能因项目而异,因此算法需要能够根据不同的需求进行定制化的适配和调整。此外,算法应能够支持后续的改进和优化,以满足不断变化的需求和新的库存切割问题。 综上所述,一个完整和健壮的不适配多边形生成算法应该是能够高效、准确地生成适用于各种情况的切割方案和不适配多边形的解决方案,并具备一定的可扩展性和定制性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值