P1161 开灯

Posted Kunkun只喝怡宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1161 开灯相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

接下来有n行,每行两个数,a_i,t_i。其中a_i是实数,小数点后一定有6位,t_i是正整数。

输出格式

仅一个正整数,那盏开着的灯的编号。

代码

虽然题目说的是无限个灯,但其实只需要a_i*t的最大值就可以了,也就是2000000个灯,灯只有开关两个状态,所以就用字符数组存储,这样最节省空间。

#include<bits/stdc++.h>

using namespace std;

int main(){
	int n,i,j,r,t;
	double a;
	char s[2000000];
	memset(s,'0',sizeof(s));
	cin>>n;
	for(i=0;i<n;i++){
		cin>>a>>t;
		for(j=1;j<=t;j++){
			r=(int)(a*j);
			if(s[r]=='0') s[r]='1';
			else s[r]='0';
		}
		
	}
	i=1;
	while(s[i]!='1')
		i++;
	cout<<i;
	return 0;
}

以上是关于P1161 开灯的主要内容,如果未能解决你的问题,请参考以下文章

洛谷P1161 开灯 数学

开灯问题

开灯问题

开灯问题

开灯问题

开灯问题