专栏文章
题解:P1161 开灯
P1161题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mip4zpy4
- 此快照首次捕获于
- 2025/12/03 06:15 3 个月前
- 此快照最后确认于
- 2025/12/03 06:15 3 个月前
题意
有 次操作,每次操作给出一个实数 和一个整数 。对于第 个操作,我们需要将 (向下取整)位置的灯的状态进行切换(开变关,关变开)。最后,需要找出最终仍然亮着的灯中编号最小的那个。
分析
我们可以用一个 类型数组 来记录每个灯的状态,初始时所有灯都是关闭状态,赋值为 。
对于每个操作,我们需要处理从 到 的所有 值,计算每个 对应的灯编号后切换该灯的状态(如果是开就变关,关就变开)。
最后,在所有操作完成后,遍历 数组,找到第一个状态为开(赋值为 )的灯,输出其编号即可。
代码
CPP#include<bits/stdc++.h>
using namespace std;
bool light[2000005];
int main(){
double a;
int n,t;
cin>>n;
while(n--){
cin>>a>>t;
for(int i=1;i<=t;i++){
int b=a*i;
if(light[b]==1){
light[b]=0;
}else{
light[b]=1;
}
}
}
for(int i=1;i<=2000000;i++){
if(light[i]==1){
cout<<i;
break;
}
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...