Hatena::Grouptopcoder

naoya_t@topcoder RSSフィード

2009-09-12

Google Code Jam: Round 1A (2.5hrs)

22:37 | Google Code Jam: Round 1A (2.5hrs) - naoya_t@topcoder を含むブックマーク はてなブックマーク - Google Code Jam: Round 1A (2.5hrs) - naoya_t@topcoder Google Code Jam: Round 1A (2.5hrs) - naoya_t@topcoder のブックマークコメント

  • A. Multi-base happiness
  • B. Crossing the Road
  • C. Collecting Cards

Aを解いて、Cにはまって時間を潰す。

結局 A-small だけ通して992位。

続きを読む

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/20090912

2009-09-10

SRM448 Div1 Easy: TheBlackJackDivOne

| 02:14 | SRM448 Div1 Easy: TheBlackJackDivOne - naoya_t@topcoder を含むブックマーク はてなブックマーク - SRM448 Div1 Easy: TheBlackJackDivOne - naoya_t@topcoder SRM448 Div1 Easy: TheBlackJackDivOne - naoya_t@topcoder のブックマークコメント

なんで落とされたか

#define sz(a)  int((a).size())
#define pb  push_back
#define all(c)  (c).begin(),(c).end()
#define mset(arr,val)  memset(arr,val,sizeof(arr))
#define tr(c,i)  for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); i++)
#define rep(var,n)  for(int var=0;var<(n);var++)
#define found(s,e)  ((s).find(e)!=(s).end())

class TheBlackJackDivOne {
  vector<int> rest;
  
  int cval(int c){
    if ('0'<=c &&c<='9')return c-'0';
    switch(c){
      case 'T':case'J':case'Q':case 'K': return 10;
      case 'A': return 11;
    }
  }
    
 public:
  double sb(double r,int re,int to,int ma){
    double d=0;

    for(int i=1;i<=11;i++){
      if(rest[i]==0) continue;

      double m_ = 1.0*rest[i]/re;
      int to_ = to - i;

      if(to_<=0) { d += r*ma*m_; continue; }

      rest[i]--;
      d += sb(r*m_,re-1,to_,ma+1);
      rest[i]++;
    }
    return d;
  }
  
  double expected(vector<string> cards) {
    int i;
    rest.resize(12); rep(i,12) rest[i]=0;
    for(i=2;i<=9;i++) rest[i]+=4;
    rest[10]+=16; rest[11]+=4;
    
    int n=sz(cards);

    vector<int> v(n);
    int sc=0;
    rep(i,n){
      int c = cval(cards[i][0]);
      v[i] = c;
      rest[c]--;
      sc+=c;
      // if(sc>21) return 0.0; ////OOPS
      if(sc>=21) return 0.0;
    }

    return sb(1.0, 52-n,21-sc,1);
  }
};

>21を>=21にすればokですね

これだけのことでした。馬鹿なの?死ぬの?

とりあえず書き取り練習

>= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >=

>= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >=

>= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >= >=


SRM448

02:04 | SRM448 - naoya_t@topcoder を含むブックマーク はてなブックマーク - SRM448 - naoya_t@topcoder SRM448 - naoya_t@topcoder のブックマークコメント

ICFPC2009飲み会会場から無理矢理参加。

すごすぎる人達に見られてて緊張する

09.11.2009

続きを読む

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/20090910

2009-09-04

Google Code Jam: Qualification Round (24hrs)

| 12:53 | Google Code Jam: Qualification Round (24hrs) - naoya_t@topcoder を含むブックマーク はてなブックマーク - Google Code Jam: Qualification Round (24hrs) - naoya_t@topcoder Google Code Jam: Qualification Round (24hrs) - naoya_t@topcoder のブックマークコメント

Google Code Jam初参加の巻

http://code.google.com/codejam/contest

  • 参加
    • 起きたら8時過ぎてた
    • ひと仕事片付けて9am過ぎに参戦
    • サーバ側の問題で入力データがダウンロードできない時間が2時間弱続く
    • 3問ともC++で通すチキンっぷり
  • 結果
    • 76pts(/99)で予選通過。参加?????人のうち2539位。
    • C-largeで、gets()をfgets()に書き直したせいでデータ読み込みでミスっててCase番号が途中からずれてた。その後のアルゴリズムは合ってた
    • 最初からvector<string>でデータが貰えるTopCoderに甘やかされている

問題と入力データはPrevious Contestsで見られます。

基本方針

  • 最初からLargeが通るように書く
  • あせらない
  • 続きを読む

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/20090904

2009-08-26

SRM447

20:37 | SRM447 - naoya_t@topcoder を含むブックマーク はてなブックマーク - SRM447 - naoya_t@topcoder SRM447 - naoya_t@topcoder のブックマークコメント

08.25+.2009

黄色と青しかいない部屋。

続きを読む

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/20090826

2009-08-18

SRMみたいなやつ

01:51 | SRMみたいなやつ - naoya_t@topcoder を含むブックマーク はてなブックマーク - SRMみたいなやつ - naoya_t@topcoder SRMみたいなやつ - naoya_t@topcoder のブックマークコメント

08.18+.2009

Pilot Round - Beta - Member Round

レーティングに関係ないらしい

続きを読む

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/20090818