题解:P1161 开灯
tyj.ac
题面分析:
有无限盏灯排成一行,每次将
由于数据范围不大,因此对于每次操作可以直接模拟被改变状态的灯,开则关,关则开。最后,从
样例解释:
第一次操作将:
第二次操作将:
第三次操作将:
由此得出,离小明最近的一盏亮着的灯的编号为
AC CODE:
#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;//好习惯!
}
有疑问私信沟通哦!