Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

AtCoder Beginner Contest 033 解説

6.923 Aufrufe

Veröffentlicht am

AtCoder Beginner Contest 033 解説

Veröffentlicht in: Bildung
  • Download or read that Ebooks here ... ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

AtCoder Beginner Contest 033 解説

  1. 1. ©AtCoder Inc. All rights reserved. 1 AtCoder Beginner Contest #033 解説 AtCoder株式会社 代表取締役 高橋 直大
  2. 2. ©AtCoder Inc. All rights reserved. 2 A問題 暗証番号
  3. 3. ©AtCoder Inc. All rights reserved. 3 A問題 問題概要 • 4桁の数が与えられる • 各桁が全て同じ数字であるか判定せよ
  4. 4. ©AtCoder Inc. All rights reserved. 4 A問題 アルゴリズム • 実際に4文字読み込み、if文などで判定すれば よい • 例: if(in[0]==in[1]&&in[1]==in[2]&&in[2]==in[3]) – 4桁とも同じ数字には法則性もある – 0000, 1111, 2222, …, 9999は全て 1111の倍数。 • 1111で割り切れるかどうかを判定してもよい • 例: if(N%1111==0)
  5. 5. ©AtCoder Inc. All rights reserved. 5 B問題 町の合併
  6. 6. ©AtCoder Inc. All rights reserved. 6 B問題 問題概要 • N個の町が合併し、1つの市になる。 • N個の町の合計人口の過半数以上の人口を持つ町 が存在すれば、新しい市の名前はその町の名前に する • 存在しなければ、atcoderという名前にする。 • どのような市の名前になるだろうか? • 2 ≦ N ≦ 1,000, 1 ≦ 町の人口 ≦ 100,000
  7. 7. ©AtCoder Inc. All rights reserved. 7 B問題 アルゴリズム • 問題文にあるとおりに実際にループを回してシミュ レートする • 合計を計算する • それぞれの町の人口がその合計の過半数以上ある かをifで判定し、あればそれを出力 • なければatcoderと出力 • 計算量は O(N)
  8. 8. ©AtCoder Inc. All rights reserved. 8 B問題 アルゴリズム • ちなみに、過半数以上の人口がある町が2つ以上存 在することはない • (2番目に多い町の人口が過半数あるとすると、1番 目と2番目の合計が全人口を超えてしまい矛盾す る)
  9. 9. ©AtCoder Inc. All rights reserved. 9 1. 問題概要 2. アルゴリズム C問題 数式の書き換え
  10. 10. ©AtCoder Inc. All rights reserved. 10 C問題 問題概要 • 1+2+3*4*5+6*7のような、各項が1桁で括弧がなく、 乗算と加算のみの数式が与えられる。 • これらの数字をいくつか0に書き換えて答えを0にし たい。 • 最低何個書き換えればよいか。 • 数式の長さは100,000以下
  11. 11. ©AtCoder Inc. All rights reserved. 11 C問題 アルゴリズム • 各数字を0にする/しないを全て試すと O(2^N)かかる ため、間に合わない • ある場所を0に書き換えると、どこまで影響が出るだ ろうか。
  12. 12. ©AtCoder Inc. All rights reserved. 12 C問題 アルゴリズム • 1*2*3の1を0にする→ 0*2*3=0 • 2*4*6の4を0にする→ 2*0*6=0 • 1+2+3の1を0にする→ 0+2+3 • 3*6+9の6を0にする→ 3*0+9=0+9 • 1+2*3+4の2を0にする→1+0*3+4=1+0+4
  13. 13. ©AtCoder Inc. All rights reserved. 13 C問題 アルゴリズム • *だけで繋がっている式のどこかに0があると、その 範囲の答えが0になる • 0と書かれた項は+を越えた場所には影響しない • 元の数式の答えを0にするには、+で区切られたそ れぞれの部分の答えを全て0にしなければならない • 要は、+で区切られた部分それぞれに最低1つの0の 項が欲しい
  14. 14. ©AtCoder Inc. All rights reserved. 14 C問題 アルゴリズム • +で区切る • 区切ったそれぞれの部分に対して、初期状態で0が 1つもなければ、1回書き換えが必要 • この合計が必要な最小個数になる • O(N)
  15. 15. ©AtCoder Inc. All rights reserved. 15 D問題 三角形の分類 1. 問題概要 2. アルゴリズム
  16. 16. ©AtCoder Inc. All rights reserved. 16 D問題 問題概要 • 座標平面上の点 (x[i],y[i]) がN個与えられる。 • N個のうち3つ選んで三角形を作ったとき、それが鋭 角三角形、直角三角形、鈍角三角形になるものを、 それぞれ数える。 • N ≦ 2,000 • 部分点: N ≦ 100
  17. 17. ©AtCoder Inc. All rights reserved. 17 D問題 アルゴリズム • 部分点解法 • 3点を全部選んで角度を計算する • 角度が 0°より大きく90°より小さいか、90°に等し いか、90°より大きく180°より小さいかの3種類を 分類できればよいので、内積を使ってもよい • ベクトル(a,b)と(c,d)のなす角θが – 0° < θ < 90°のとき ac+bd > 0 – θ = 90°のとき ac+bd = 0 – 90° < θ < 180° のとき ac+bd < 0
  18. 18. ©AtCoder Inc. All rights reserved. 18 D問題 アルゴリズム • さっきの方法だと計算量は O(N^3) • 部分点は間に合うが、 満点はとれない • これ以上早く計算するには、複数の三角形をまとめ て数える必要がある
  19. 19. ©AtCoder Inc. All rights reserved. 19 D問題 アルゴリズム • 三角形の特徴に注目する • 直角三角形は、1個が直角、他は鋭角 • 鈍角三角形は、1個が鈍角、他は鋭角 • 直角、鈍角となる∠ABCの組の個数を求めれば、直 角三角形、鈍角三角形の個数が分かり、全体から 引くと鋭角三角形の個数も計算できる。
  20. 20. ©AtCoder Inc. All rights reserved. 20 D問題 アルゴリズム • ∠ABCのBの部分を固定して、A,Cの組を数えること にする • ある点から他の全ての点に対して半直線を引くとこ うなる (プログラムでは、角度だけをもてばよい。角 度はatan2等で計算できる。)
  21. 21. ©AtCoder Inc. All rights reserved. 21 D問題 アルゴリズム • これらの角度をソートし、左側を固定する – どこまでが90°未満だろう? – どこまでが90°だろう? – どこまでが180°未満だろう? • これらは二分探索やしゃくとり法でまとめて高速に 計算できる。二分探索ではO(N log N)、尺取だと O(N) • ただし環状になっているので、角度の扱いは少し複 雑で気をつける必要がある。(2周分配列をもったり、 内積・外積で求めると楽かもしれない)
  22. 22. ©AtCoder Inc. All rights reserved. 22 D問題 アルゴリズム • 全体をまとめると – 一点選ぶ – そこから他の全て点へのベクトルの角度を求め、ソートす る。 – 二分探索やしゃくとり法で鈍角、直角の個数を数える – 鋭角三角形の個数を、全体から鈍角、直角の個数を引く ことで求める • 計算量は合計で O(N^2 logn) (しゃくとり法の場合)
  23. 23. ©AtCoder Inc. All rights reserved. 23 D問題 アルゴリズム • 注意 • 2つのベクトルのなす角度が非常に小さかったり、非 常に90°に近かったり、非常に180°に近かったり することがある。 例1: (-10000,-10000), (-10000,-9999),(10000,10000) 例2: (-10000,-10000), (-9999,10000),(10000,9999) 例3: (-10000,-10000), (1,0),(10000,10000) • 浮動小数で計算する人は注意が必要

×