SRM 432 DIV1 Easy - LampsGrid ○

問題


http://community.topcoder.com/stat?c=problem_statement&pm=10154&rd=13694

1と0からなるランプが複数並べられている。
各ランプは1行から成り、すべてのランプが一列に並べられている。
ランプの値がすべて1となったとき、そのランプは点灯する。

プレイヤーはK回、一つの列を選んでそのすべての値を反転させる。

このとき、点灯するランプが最大となるときのそのランプ数を求める。

解き方


01の並びがまったく同じランプだけが、最終的に同時に点灯する可能性がある。

すべての並びのランプについて、その0の値とKの値によってすべて点灯させられるか
確かめればよい。

コード


class LampsGrid {

public: int mostLit(vector<string> initial, int K) {
int n=initial.size(),m=initial[0].size();

int ret=0;
FORE(i,0,n){
int cnt=0,num=0;
FORE(j,0,n)if(initial[i]==initial[j])cnt++;
FORE(j,0,m)if(initial[i][j]=='0')num++;
if(K>=num && (K-num)%2==0)ret=max(ret,cnt);
}

return ret;
}

};

Share this

Related Posts

Previous
Next Post »