Entries

スポンサーサイト (この記事を編集する[管理者用])

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/1001-7dda5bbe
この記事にトラックバックする(FC2ブログユーザー)

SRM251 DIV2 EASY - Elections (この記事を編集する[管理者用])

Source

TopCoder SRM251 DIV2 EASY (250pt)
Problem Statement

問題概要

各州のそれぞれの人が,自分か,対立候補か,どちらに投票したかが与えられる.
最も自分の得票率の低い州を求める問題.
同じ得票率の州が複数あるなら,最も番号の小さい州を返す.

解法

やるだけ.なんだけど,何も対策せずにdoubleで計算すると,丸め誤差で落ちるらしい.

C++によるスパゲッティなソースコード
// #includeとusing namespace std;は略

#define REP(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)

#define EPS 1e-14

class Elections {
public:
int visit(vector <string> in) {
  int i,j,k,res; double mx=1e100, tmp;

  rep(i,in.size()){
    k=0;
    rep(j,in[i].size()) if(in[i][j]=='1') k++;
    tmp = k/(double)j;
    if(mx > tmp+EPS) mx=tmp, res=i;
  }

  return res;
}

};

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/1001-7dda5bbe
この記事にトラックバックする(FC2ブログユーザー)

Appendix

Recent Articles

ブログ内検索

Ads


(プライバシーポリシー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。