高级光能
题目详情
提交记录
3888 闪烁的灯泡
题目描述 Description
马上就要迎来新年了,小雪同学为了装饰自己的房间,决定在新年那一天挂起彩灯,已知彩灯每隔一分钟就会闪烁一下,闪烁的规律如下:
第一次只亮第1只灯
第二次只亮第3只灯
第三次只亮第6只灯
第四次只亮第10只灯,以此类推…
注意:彩灯是环状的,也就是说,如果只有5只灯泡,那么第6只就是第1只。
请问经过x分钟之后有哪些灯没有亮过,如果所有灯都亮过,请计算亮的次数最多灯泡是几号。
输入描述 Input Description
一行,两个整数,分别表示灯泡的个数m(1≤ m ≤1000)和经过的分钟n(1≤ n ≤10000)
输出描述 Output Description
如果有灯泡没亮,那么输出所有没有亮过的灯泡编号;如果所有灯泡都亮过,那么输出亮的次数最多的灯泡编号。
样例输入 Sample Input
10 4
样例输出 Sample Output
2 4 5 7 8 9
求思路和核心!!
采纳时加豆!!
龙舟在2020-05-07 17:23:41追加了内容
救命呀!!!
有人吗?
初级光能
这题和1482思路一样。。。
定义n和m并输入。
for(int i=1;i<=m;i++) {
t=(t+i)%n;
a[t]++;
}
这题是周期问题变形,t保证小于等于n,用模。
for(int i=1;i<=n-1;i++)
if(a[i]==0) {
cout<<i<<" ";
flag=1;
}
if(a[0]==0)
cout<<n;
这时,如果flag是0:
for(int i=1;i<n-1;i++)
if(a[i]>max)
max=a[i];
遍历,看a[i]和max那个大,记录max的值。
最后输出max。
AC愉快!!!
资深天翼