P6159 [Cnoi2020]光图
题目背景
简洁中蕴含着伟大。
Cirno 不经意地把一个内部完全反射的圆分成了 12等分,等分点分别记作
随后,她不经意地将一束光从一点发出,朝向另一点,重复,反射,迭代,A0,A1,A2,...A11便得到了一幅美妙的光图。
这一切都发生在不经意之间。
她不经意地发现了这一幕,并且不经意地记下了这个不经意的结论,又在某一刻不经意地回忆起。
幻想乡的每一天一切都是这么不以为意,多好的一天啊!
题目描述
Rumia 有一个单位圆,被分成 n等分,等分点分别记作 A0,A1,A2,...An-1。
现在她从A0向Ap发射一束光,经过 k次反射,到达了At。
Rumia 想知道 t的值,由于 Cirno 并不想帮她,所以 Rumia 转而求助于你。
输入格式
一行,三个整数,n,p,k。
输出格式
一行,一个整数t。
输入输出样例
输入
12 5 2
输出
10
输入
1000 342 3472844
输出
648
说明/提示
Sample1 解释
image后置物理知识
- 连续曲线反射规律 : 入射光线与出射光线关于入射点在曲线上切线夹角相等。
数据范围约定
「本题采用捆绑测试」
0<p<n<=10的9次方,0<k<=10的9次方
后记
- Cirno 得到的光图就是传说中的十二芒星图。
解答
这是一道找规律的好题,就算不知道折射公式,也可以发现它每次反射都是在圆圈中前进了相同的格子数(d)。
(开始从0射到5,相隔5个点。)
又因为总共只有 n 个角,所以要对 n取模(不论k大于还是小于n)。
#include<iostream>
using namespace std;
int main()
{
unsigned long long n,p,k;
cin>>n>>p>>k;
cout<<(p*k)%n;
return 0;
}
有趣!
image马蒂斯
image image image image image image image image image
网友评论