The 2021 CCPC Weihai Onsite J. Circular Billiard Table

The 2021 CCPC Weihai Onsite J. Circular Billiard Table,第1张

The 2021 CCPC Weihai Onsite J. Circular Billiard Table

contents:
  • 题目大意
  • 思路
  • AC

添加链接描述

题目大意

原形台球桌面

思路

做的时候看到样例猜了一个180上去,因为样例需要180,wa了,因为int不够用
longlong 就过了
既然是写题解
那就看看题吧
上图a看到了吧,场外的入射角所在的线和球最后出来的线关于切线对称
我们假设垂直射入,则结果是1
相当于此球的速度没变,速度方向转变了180°对吧
这和圆有什么关系呢
我们可以想想为什么球为啥方向变了呢,
在发球点建立坐标系,在纵向量上,速度方向不会变
会变的只有横坐标
且园内每一个点的角度转变都是均匀的,180°暂且算总的角度
180/(a/b) = ans / n (n为使得刚好出来的圈数)
ans在圆内的总点数,包括入口点数,要满足ans 是整数
则 180 /(a/b) 已经是固定的,ans 为满足 条件的 最小整数,因为ans和n可以同步增长,最坏情况是n=a,ans = 180*b
去掉重复的射入情况,去gcd就好
写这个题解我自己都是蒙的
表达不出那种圆圆圈圈的思路

AC
    int t;
    cin >> t;
    ll a, b;
    while (t--)
    {
        cin >> a >> b;
        b *= 180;
        ll ans = b / __gcd(b, a);
        cout << ans - 1 << endl;
    }

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5634607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存