P1161 开灯题解
题目传送门
总结:
1、桶记录状态,取反
2、类型的强制转换。
#include
using namespace std;
int const N = 2000010;
bool b[N]; //灯的状态
double a; //1-1000的实数
int n; //操作数量
int t; //倍数
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a >> t;
for (int k = 1; k <= t; k++)
b[(int) (a * k)] = !b[(int) (a * k)];//取反操作
}
//找到号码最小亮着的灯
for (int i = 1; i <= N; i++)
if (b[i]) {
cout << i << endl;
exit(0);
}
return 0;
}