题解 P6159 【[Cnoi2020]光图】

· · 题解

初中物理知识。

对称取模即可。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    unsigned long long n,p,k;
    cin>>n>>p>>k;
    cout<<(p*k)%n;
    return 0;
}

为什么这样是对的呢?

因为第一次,光从A_0射到了A_p。根据“入射光线与出射光线关于入射点在曲线上切线夹角相等”,下一次就会射到A_2p,每一次都在这个圆周上走p的长度。

所以总共走了p*k的长度,取模n即可。