狠狠撸

狠狠撸Share a Scribd company logo
Indeedなう 予選A
解説
AtCoder株式会社 代表取締役
高橋 直大
2015/3/14 1
競技プログラミングを始める前に
? 競技プログラミングをやったことがない人へ
– まずはこっちのスライドを見よう!
– http://www.slideshare.net/chokudai/abc004
2015/3/14 2
?AtCoder Inc. All rights reserved. 3
A問題 桁数
1. 問題概要
2. アルゴリズム
2015/3/14 3
A問題 問題概要
? 整数A,Bが与えられる
? A×Bの掛け算の筆算を行う
? この掛け算の筆算では1桁の掛け算を(Aの桁
数)×(Bの桁数)だけ行う
? (Aの桁数)×(Bの桁数)を出力する
? 制約
– 1 ≦A,B≦ 1,000,000
2015/3/14 4
A問題 アルゴリズム
? ある整数xの桁数を求めたい.いろいろ方法がある↓
– xを10で割って切り捨てるを,xが0になるまで行う(10で割った
回数が答えになる)
? 例: 123: 123→12→1→0 ∴ 3回
– そもそも読み込む整数を文字列で受け取って,その長さを求
める
? 上記の方法を用いてAとBの桁数が求まったら
それらを掛け合わせたものを出力する
2015/3/14 5
?AtCoder Inc. All rights reserved. 6
B問題 INDEEDなう!
1. 問題概要
2. アルゴリズム
2015/3/14 6
B問題 問題概要
? 文字列Sが与えられる
? Sが”indeednow”のアナグラムになっているか判定
? SはNコ与えられるので全部について判定する
? 制約
– 1 ≦ N ≦ 100
– 1 ≦ Sの長さ ≦ 100
2015/3/14 7
B問題 アルゴリズム
? 文字列Aが文字列Bのアナグラムである
?A,Bをそれぞれ辞書順でソートした文字列が等しい
– 例: A=“abca,B=”cbab”
ソートを行うとどちらも”aabc”となるためAはBのアナグラム
? 今回の問題も上記の事実を用いるとよい.
? 入力される文字列をソートしたものが”indeednow”
をソートしたものと等しければ”YES”,そうでなけれ
ば”NO”を出力すればよい.
2015/3/14 8
B問題 アルゴリズム
? 別解
– 出現する文字数を数えて比較
– 実際にアナグラムを全列挙しても良い(しかし,手間がか
かる上に遅い)
2015/3/14 9
?AtCoder Inc. All rights reserved. 10
C問題 説明会
1. 問題概要
2. アルゴリズム
2015/3/14 10
C問題 問題概要
? 予選コンテストを行った.N人の学生の点数がある.
? 予選の選抜基準はボーダーがxのとき以下のように行う
? ボーダーがxのとき正の点数を取っていてかつx点以上の学生
を全員選抜
? 選抜人数がk人以下となるようにボーダーを調整せよ
? ただし,会場はQコあり,それぞれkが異なる.それらの
会場でそれぞれ行う場合についてのボーダーを求める.
? 制約
– 1 ≦ N ≦ 100000
– 1 ≦ k ≦ N
– 1 ≦ Q ≦ 100000
2015/3/14 11
C問題 アルゴリズム
? まず与えられた点数から 0点の学生を取り除く
? 点数を降順にソートした数列を用意する
? ボーダーは,その数列のk番目の点数+1を答えれば
よい
? 計算量: O(Q + NlogN)
2015/3/14 12
?AtCoder Inc. All rights reserved. 13
D問題 パズル
1. 問題概要
2. アルゴリズム
2015/3/14 13
D問題 問題概要
? H*Wのスライドパズルの盤面が与えられる
? 最小手数が24手以内という制約の下で最小手数を
求めなさい
? 制約
– 2 ≦ H,W ≦ 6
– 最小手数は24手以下
2015/3/14 14
D問題 アルゴリズム
? スタート地点からナイーブに幅優先探索を行うと状
態数が爆発して時間切れしてしまう
? いくつかの改善を行うと通る.
– 状態の持ち方については,特に凝った工夫をしなくても一
応通るようになっている(C++)
? 具体的な改善の仕方について次スライドから説明
2015/3/14 15
D問題 アルゴリズム
? 汎用的な改善案: 24手以内?23手まで探索して見
つからなかったら24手と出力することで少し速くなる
? 改善案1: 両側探索
– スタート地点から12手,ゴール地点から12手分のノードを
列挙(それぞれ全列挙できるサイズ)
– それらの共通の可達ノードを比較して最小手数を求める
– しかし,定数倍が重いとTLEするかもしれない
– 定数倍改善すれば通るようにしている
2015/3/14 16
D問題 アルゴリズム
? 改善案2: A*探索
– (今の距離+最低限かかる暫定距離*)をコストに持ち,そ
のコストが小さいものから確定するダイクストラ的探索
– その暫定距離が24を超えたら打ち切るようにする
– A*探索に対する最悪のケースは作るのが非常に難しい
ため,ある程度時間のかかるケースを用意したがそれで
も想定解法だと数十ms程度
*たとえば空きマス以外の全てのマスについて本来の位置
とのマンハッタン距離差の総和を求めたものを用いるとよい
2015/3/14 17
D問題 アルゴリズム
? 今回の問題は,A*探索を用いると高速に解ける
「両側探索の計算量の見積もり」
? 12手探索して得られる盤面の状態数が高々
708588(=4*3^11) 通り (これは,常に4方向に動けるとし
て操作を打ち消すような遷移を行わないときの状態数.実際
にはもっと少ない)
? なので,両側探索だと定数倍改善を意識すれば通る
「A*探索の計算量の見積もり」
? 難しいため見積もり困難だが,実測してみると探索
ノード数がかなり減っていることが分かる
2015/3/14 18
Ad

Recommended

AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説
AtCoder Inc.
?
AtCoder Regular Contest 029 解説
AtCoder Regular Contest 029 解説
AtCoder Inc.
?
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
AtCoder Inc.
?
AtCoder Beginner Contest 022 解説
AtCoder Beginner Contest 022 解説
AtCoder Inc.
?
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説
AtCoder Inc.
?
AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説
AtCoder Inc.
?
AtCoder Beginner Contest 003 解説
AtCoder Beginner Contest 003 解説
AtCoder Inc.
?
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
?
AtCoder Regular Contest 034 解説
AtCoder Regular Contest 034 解説
AtCoder Inc.
?
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Inc.
?
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
?
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
AtCoder Inc.
?
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Inc.
?
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
?
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
AtCoder Inc.
?
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説
AtCoder Inc.
?
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
AtCoder Inc.
?
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Inc.
?
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
AtCoder Inc.
?
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
AtCoder Inc.
?
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
?
AtCoder Beginner Contest 019 解説
AtCoder Beginner Contest 019 解説
AtCoder Inc.
?
AtCoder Regular Contest 025 解説
AtCoder Regular Contest 025 解説
AtCoder Inc.
?
AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説
AtCoder Inc.
?
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Inc.
?
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Inc.
?
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
?
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Inc.
?
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
AtCoder Inc.
?
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
AtCoder Inc.
?

More Related Content

What's hot (20)

AtCoder Regular Contest 034 解説
AtCoder Regular Contest 034 解説
AtCoder Inc.
?
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Inc.
?
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
?
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
AtCoder Inc.
?
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Inc.
?
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
?
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
AtCoder Inc.
?
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説
AtCoder Inc.
?
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
AtCoder Inc.
?
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Inc.
?
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
AtCoder Inc.
?
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
AtCoder Inc.
?
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
?
AtCoder Beginner Contest 019 解説
AtCoder Beginner Contest 019 解説
AtCoder Inc.
?
AtCoder Regular Contest 025 解説
AtCoder Regular Contest 025 解説
AtCoder Inc.
?
AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説
AtCoder Inc.
?
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Inc.
?
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Inc.
?
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
?
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Inc.
?
AtCoder Regular Contest 034 解説
AtCoder Regular Contest 034 解説
AtCoder Inc.
?
AtCoder Regular Contest 039 解説
AtCoder Regular Contest 039 解説
AtCoder Inc.
?
AtCoder Beginner Contest 018 解説
AtCoder Beginner Contest 018 解説
AtCoder Inc.
?
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
AtCoder Inc.
?
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Inc.
?
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
?
AtCoder Regular Contest 026 解説
AtCoder Regular Contest 026 解説
AtCoder Inc.
?
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説
AtCoder Inc.
?
AtCoder Beginner Contest 014 解説
AtCoder Beginner Contest 014 解説
AtCoder Inc.
?
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Inc.
?
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
AtCoder Inc.
?
AtCoder Regular Contest 030 解説
AtCoder Regular Contest 030 解説
AtCoder Inc.
?
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
?
AtCoder Beginner Contest 019 解説
AtCoder Beginner Contest 019 解説
AtCoder Inc.
?
AtCoder Regular Contest 025 解説
AtCoder Regular Contest 025 解説
AtCoder Inc.
?
AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説
AtCoder Inc.
?
AtCoder Regular Contest 046
AtCoder Regular Contest 046
AtCoder Inc.
?
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Inc.
?
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
?
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Inc.
?

Similar to Indeedなう 予選A 解説 (13)

AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
AtCoder Inc.
?
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
AtCoder Inc.
?
AtCoder Regular Contest 037 解説
AtCoder Regular Contest 037 解説
AtCoder Inc.
?
Indeedなう 予選B 解説
Indeedなう 予選B 解説
AtCoder Inc.
?
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
AtCoder Inc.
?
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
?
【解説】JOI 2019/2020 一次予選 最速非公式解説【競技プログラミング】
【解説】JOI 2019/2020 一次予選 最速非公式解説【競技プログラミング】
Proktmr
?
8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)
bc_rikko
?
Code Formula 予選B 解説
Code Formula 予選B 解説
AtCoder Inc.
?
自然言語処理に適した ニューラルネットのフレームワーク - - - DyNet - - -
自然言語処理に適した ニューラルネットのフレームワーク - - - DyNet - - -
Ogushi Masaya
?
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
AtCoder Inc.
?
AtCoder Beginner Contest 028 解説
AtCoder Beginner Contest 028 解説
AtCoder Inc.
?
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
?
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
AtCoder Inc.
?
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
AtCoder Inc.
?
AtCoder Regular Contest 037 解説
AtCoder Regular Contest 037 解説
AtCoder Inc.
?
Indeedなう 予選B 解説
Indeedなう 予選B 解説
AtCoder Inc.
?
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
AtCoder Inc.
?
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
?
【解説】JOI 2019/2020 一次予選 最速非公式解説【競技プログラミング】
【解説】JOI 2019/2020 一次予選 最速非公式解説【競技プログラミング】
Proktmr
?
8_C言語入門 - 条件分岐について(if-else if-else)
8_C言語入門 - 条件分岐について(if-else if-else)
bc_rikko
?
Code Formula 予選B 解説
Code Formula 予選B 解説
AtCoder Inc.
?
自然言語処理に適した ニューラルネットのフレームワーク - - - DyNet - - -
自然言語処理に適した ニューラルネットのフレームワーク - - - DyNet - - -
Ogushi Masaya
?
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
AtCoder Inc.
?
AtCoder Beginner Contest 028 解説
AtCoder Beginner Contest 028 解説
AtCoder Inc.
?
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
?
Ad

More from AtCoder Inc. (20)

TCO2017R1
TCO2017R1
AtCoder Inc.
?
础迟颁辞诲别谤に毎回参加したくなる仕组み
础迟颁辞诲别谤に毎回参加したくなる仕组み
AtCoder Inc.
?
Square869120 contest #2
Square869120 contest #2
AtCoder Inc.
?
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
AtCoder Inc.
?
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
AtCoder Inc.
?
Chokudai Contest 001
Chokudai Contest 001
AtCoder Inc.
?
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Inc.
?
AtCoder Regular Contest 048
AtCoder Regular Contest 048
AtCoder Inc.
?
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Inc.
?
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
?
arc047
arc047
AtCoder Inc.
?
abc032
abc032
AtCoder Inc.
?
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説
AtCoder Inc.
?
abc031
abc031
AtCoder Inc.
?
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 解説
AtCoder Inc.
?
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Inc.
?
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
AtCoder Inc.
?
CODE FESTIVAL 2015 予選A 解説
CODE FESTIVAL 2015 予選A 解説
AtCoder Inc.
?
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
AtCoder Inc.
?
天下一プログラマーコンテスト2015 予選B 解説
天下一プログラマーコンテスト2015 予選B 解説
AtCoder Inc.
?
础迟颁辞诲别谤に毎回参加したくなる仕组み
础迟颁辞诲别谤に毎回参加したくなる仕组み
AtCoder Inc.
?
Square869120 contest #2
Square869120 contest #2
AtCoder Inc.
?
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
AtCoder Inc.
?
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
AtCoder Inc.
?
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Inc.
?
AtCoder Regular Contest 048
AtCoder Regular Contest 048
AtCoder Inc.
?
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Inc.
?
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
?
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説
AtCoder Inc.
?
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 解説
AtCoder Inc.
?
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Inc.
?
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
AtCoder Inc.
?
CODE FESTIVAL 2015 予選A 解説
CODE FESTIVAL 2015 予選A 解説
AtCoder Inc.
?
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
AtCoder Inc.
?
天下一プログラマーコンテスト2015 予選B 解説
天下一プログラマーコンテスト2015 予選B 解説
AtCoder Inc.
?
Ad

Indeedなう 予選A 解説