2010年09月25日

    SRM483 Div2


    撃墜ゲーでした。そしてオワタ。


    250p DigitHoles 228.09p


    数字が8だったら穴が2個、0,4,6,9だったら穴が1個、他は0個で穴の数を数えていく簡単なお仕事。


    点数が低いのは読解力不足です。



    class DigitHoles {
    public:
    int numHoles(int num) {
    int res=0;
    while(num>0){
    int c = num%10;
    if(c==8) res+=2;
    else if(c==0||c==4||c==6||c==9) res++;
    num/=10;
    }
    return res;
    }
    };


    500p MovieSeating Challenge Succeeded


    映画館でnumFriends人分の座席を同じ行または列で取る方法が何通りあるかを求める問題。nCr*r!を行と列についてそれぞれ計算する。


    numFriends=1のケース忘れてた。あとで気づいてオワタ\(^o^)/



    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    class MovieSeating {
    public:
    long long getSeatings(int nf, vector <string> hall) {
    long long res=0;
    int r = hall.size(); int c = hall[0].size();
    if(nf>r&&nf>c) return 0;
    for(int i=0;i<r;++i){
    int cnt=0;
    for(int j=0;j<c;++j) if(hall[i][j]=='.') cnt++;
    long long s=1;
    for(int k=cnt;k>cnt-nf;--k) s*=k;
    res += s;
    }
    if(nf==1) return res; // ←後で書き加えた
    for(int i=0;i<c;++i){
    int cnt=0;
    for(int j=0;j<r;++j) if(hall[j][i]=='.') cnt++;
    long long s=1;
    for(int k=cnt;k>cnt-nf;--k) s*=k;
    res += s;
    }
    return res;
    }
    };


    1000p BestApproximationDiv2 Opened


    与えられた少数をF = A / B ( 1 <= B < num, 0 <= A < B )の形で近似して、A / BとFの合っている桁数を出す問題。


    解いたら載せます。


    Challenge Phase


    なんか500が部屋全員落ちてるんですけど・・・


    900だれも解いてないんですけど・・・


    な感じでまったくチャレンジせず。今回学んだこと:撃墜する勇気大事・コーナーケース大事


    結果


    ○××→228.09+0.0+0.0=228.09


    707→704 ちょっと下がったー






    tanitanin at 00:00│Comments(0)TrackBack(0)TopCoder | プログラミング

    トラックバックURL

    コメントする

    名前
    URL
     
      絵文字