@ChuckIsReady
2018-04-08T13:21:32.000000Z
字数 956
阅读 615
未分类
不会的问题:
关于算法的装填因子
数字证书有没有包括ip

//我认为题目意思应该是指开关会使一组灯泡同时灭或亮,那么当灭的灯数小于//亮的灯数时这一组灯任然应该被点亮,从而总的亮灯数量变大// 还有一种情况是两组间的开关可以抵消,从而使得总的亮灯数量变大var n = read_line();var arr = [];var light = [];//记录灯泡最终点亮情况var sumOn = 0;// 10% 通过//for(var i =0;i<n;i++){// arr[i] = read_line().split(" ");//读取每组开关//// var tempOn = 0;//这一组开关实际上能净点亮的灯泡的计数器// for(var j= 1;j<=arr[i][0];j++){// light[arr[i][j]]!=1 ? tempOn+=1 : tempOn-=1 //没有被点亮过或者已经被熄灭的情况下(undefined 或者 0),再次点亮都能增加临时点亮计数器// }//第一轮循环计算收益// if(tempOn>0){//【】如果能增加点亮的灯泡// sumOn += tempOn;//总的点亮数增加// for(var j= 1;j<=arr[i][0];j++){//【】那么就实施点亮,并对灯泡被点亮与熄灭进行记录// light[arr[i][j]]= light[arr[i][j]]!=1? 1:0;// }// }//}// 10% 通过// 以下为优化方法,每一次操作都进行,然后判断单双数,单数为亮,统计亮的数量,但还是存在不能检查到纯开灯的数组的问题。// 应该逆向循环再通过检查能不能使得0变1再筛查一遍,不够时间了。for(var i =0;i<n;i++){arr[i] = read_line().split(" ");var tempOn = 0;for(var j= 1;j<=arr[i][0];j++){light[arr[i][j]]!=undefined? light[arr[i][j]]++ : light[arr[i][j]] =1;}for(var i in light){light[i] = light[i]%2;if(light[i])tempOn++;}if(tempOn>sumOn) sumOn = tempOn;}print(sumOn);