专栏文章
题解:P1161 开灯
P1161题解参与者 3已保存评论 3
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mip4v3zj
- 此快照首次捕获于
- 2025/12/03 06:11 3 个月前
- 此快照最后确认于
- 2025/12/03 06:11 3 个月前
题面分析:
有无限盏灯排成一行,每次将 盏灯的开关按下。问 次操作后唯一开着的灯的编号。
由于数据范围不大,因此对于每次操作可以直接模拟被改变状态的灯,开则关,关则开。最后,从 开始依次遍历,直至找到第一盏开着的灯为止并输出。
样例解释:
第一次操作将: 号灯状态改变。
第二次操作将: 号灯状态改变。
第三次操作将: 号灯状态改变。
由此得出,离小明最近的一盏亮着的灯的编号为 。
AC CODE:
CPP#include<bits/stdc++.h>
using namespace std;
int n,s[2000005];
double a,t;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a>>t;//改变t盏灯的状态。
for(int j=1;j<=t;++j){
s[int(j*a)]=(s[int(j*a)]+1)%2;//更新为按下开关后的状态。
}
}for(int i=1;i<=2000000;i++){
if(s[i]){
cout<<i;//最近的一个亮着的灯。
return 0;
}
}
return 0;//好习惯!
}
有疑问私信沟通哦!
相关推荐
评论
共 3 条评论,欢迎与作者交流。
正在加载评论...