P1161 开灯

P1161 开灯_第1张图片
P1161 开灯_第2张图片

注意:

实数 a 一定要用双精度,有几组测试数据超过了单精度范围

AC代码:

#include
#include

using namespace std;

int arr[2000005];

int main(){
    memset(arr, 0, sizeof(arr));  //数组置 0: 0 关;1 开
    int n;
    scanf("%d", &n);
    while(n--){
        double a;
        int t;
        scanf("%lf%d", &a, &t);
        for(int i=1; i<=t; i++){
            if(arr[int(i*a)]==1) arr[int(i*a)]=0;
            else arr[int(i*a)] = 1;
        }
    }

    for(int i=0; ;i++){
        if(arr[i]==1){
            printf("%d", i);
            break;
        }
    }
    return 0;
}

你可能感兴趣的:(洛谷)