Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
AI
Uploaded by
AtCoder Inc.
5,809 views
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
Education
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 21
2
/ 21
3
/ 21
4
/ 21
5
/ 21
6
/ 21
7
/ 21
8
/ 21
9
/ 21
10
/ 21
11
/ 21
12
/ 21
13
/ 21
14
/ 21
15
/ 21
16
/ 21
17
/ 21
18
/ 21
19
/ 21
20
/ 21
21
/ 21
More Related Content
PPTX
AtCoder Beginner Contest 034 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 035 解説
by
AtCoder Inc.
PDF
DDPC 2016 予選 解説
by
AtCoder Inc.
PPTX
Arc015途中まで解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 046
by
AtCoder Inc.
PDF
Abc009
by
AtCoder Inc.
PDF
AtCoder Regular Contest 034 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 033 解説
by
AtCoder Inc.
AtCoder Beginner Contest 034 解説
by
AtCoder Inc.
AtCoder Beginner Contest 035 解説
by
AtCoder Inc.
DDPC 2016 予選 解説
by
AtCoder Inc.
Arc015途中まで解説
by
AtCoder Inc.
AtCoder Regular Contest 046
by
AtCoder Inc.
Abc009
by
AtCoder Inc.
AtCoder Regular Contest 034 解説
by
AtCoder Inc.
AtCoder Beginner Contest 033 解説
by
AtCoder Inc.
What's hot
PDF
AtCoder Beginner Contest 008 解説
by
AtCoder Inc.
PDF
abc031
by
AtCoder Inc.
PDF
AtCoder Regular Contest 045 解説
by
AtCoder Inc.
PPTX
AtCoder Beginner Contest 014 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 029 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 019 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 026 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 010 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 028 解説
by
AtCoder Inc.
PDF
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 020 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 030 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 018 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 030 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 017 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 021 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 032 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 005 解説
by
AtCoder Inc.
PDF
Binary indexed tree
by
HCPC: 北海道大学競技プログラミングサークル
PDF
Za atsu-20170328
by
HCPC: 北海道大学競技プログラミングサークル
AtCoder Beginner Contest 008 解説
by
AtCoder Inc.
abc031
by
AtCoder Inc.
AtCoder Regular Contest 045 解説
by
AtCoder Inc.
AtCoder Beginner Contest 014 解説
by
AtCoder Inc.
AtCoder Beginner Contest 029 解説
by
AtCoder Inc.
AtCoder Beginner Contest 019 解説
by
AtCoder Inc.
AtCoder Regular Contest 026 解説
by
AtCoder Inc.
AtCoder Beginner Contest 010 解説
by
AtCoder Inc.
AtCoder Beginner Contest 028 解説
by
AtCoder Inc.
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
by
AtCoder Inc.
AtCoder Beginner Contest 020 解説
by
AtCoder Inc.
AtCoder Beginner Contest 030 解説
by
AtCoder Inc.
AtCoder Regular Contest 018 解説
by
AtCoder Inc.
AtCoder Regular Contest 030 解説
by
AtCoder Inc.
AtCoder Beginner Contest 017 解説
by
AtCoder Inc.
AtCoder Beginner Contest 021 解説
by
AtCoder Inc.
AtCoder Regular Contest 032 解説
by
AtCoder Inc.
AtCoder Beginner Contest 005 解説
by
AtCoder Inc.
Binary indexed tree
by
HCPC: 北海道大学競技プログラミングサークル
Za atsu-20170328
by
HCPC: 北海道大学競技プログラミングサークル
Similar to CODE FESTIVAL 2015 予選B 解説
PDF
130323 slide all
by
ikea0064
PDF
AtCoder Beginner Contest 025 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 015 解説
by
AtCoder Inc.
PDF
会津合宿2015Day3:D問題
by
HCPC: 北海道大学競技プログラミングサークル
PDF
CODE THANKS FESTIVAL 2014 A日程 解説
by
AtCoder Inc.
PPTX
充足可能性問題のいろいろ
by
Hiroshi Yamashita
PDF
プログラミングコンテストでの乱択アルゴリズム
by
Takuya Akiba
PDF
AtCoder Beginner Contest 009 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 006 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 011 解説
by
AtCoder Inc.
PDF
Indeedなう 予選B 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 018 解説
by
AtCoder Inc.
PPTX
CODE FESTIVAL 2014 本選 解説
by
AtCoder Inc.
PDF
University CodeSprint 4 - Magic value
by
satanic
PDF
CODE THANKS FESTIVAL 2014 B日程 解説
by
AtCoder Inc.
PDF
実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
by
AtCoder Inc.
PDF
Code Formula 予選B 解説
by
AtCoder Inc.
PDF
WUPC2012
by
Dai Hamada
PDF
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい
by
Kazkuki Oakamoto
PDF
Donutsプロコンチャレンジ 2015 解説
by
kuno4n
130323 slide all
by
ikea0064
AtCoder Beginner Contest 025 解説
by
AtCoder Inc.
AtCoder Beginner Contest 015 解説
by
AtCoder Inc.
会津合宿2015Day3:D問題
by
HCPC: 北海道大学競技プログラミングサークル
CODE THANKS FESTIVAL 2014 A日程 解説
by
AtCoder Inc.
充足可能性問題のいろいろ
by
Hiroshi Yamashita
プログラミングコンテストでの乱択アルゴリズム
by
Takuya Akiba
AtCoder Beginner Contest 009 解説
by
AtCoder Inc.
AtCoder Beginner Contest 006 解説
by
AtCoder Inc.
AtCoder Beginner Contest 011 解説
by
AtCoder Inc.
Indeedなう 予選B 解説
by
AtCoder Inc.
AtCoder Beginner Contest 018 解説
by
AtCoder Inc.
CODE FESTIVAL 2014 本選 解説
by
AtCoder Inc.
University CodeSprint 4 - Magic value
by
satanic
CODE THANKS FESTIVAL 2014 B日程 解説
by
AtCoder Inc.
実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
by
AtCoder Inc.
Code Formula 予選B 解説
by
AtCoder Inc.
WUPC2012
by
Dai Hamada
姫路 IT 系勉強会 Vol.6 プログラミングコンテストという名のオンラインゲームがあるらしい
by
Kazkuki Oakamoto
Donutsプロコンチャレンジ 2015 解説
by
kuno4n
More from AtCoder Inc.
PPTX
TCO2017R1
by
AtCoder Inc.
PPTX
AtCoderに毎回参加したくなる仕組み
by
AtCoder Inc.
PDF
Square869120 contest #2
by
AtCoder Inc.
PDF
Chokudai Contest 001
by
AtCoder Inc.
PDF
AtCoder Regular Contest 049 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 048
by
AtCoder Inc.
PDF
MUJINプログラミングチャレンジ2016 解説
by
AtCoder Inc.
PDF
arc047
by
AtCoder Inc.
PDF
abc032
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 沖縄ツアー 解説
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 解説
by
AtCoder Inc.
PDF
CODE FESTIVAL 2015 予選A 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 044 解説
by
AtCoder Inc.
PDF
天下一プログラマーコンテスト2015 予選B 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 043 解説
by
AtCoder Inc.
PDF
abc027
by
AtCoder Inc.
PDF
天下一プログラマーコンテスト2015 予選A E問題 解説
by
AtCoder Inc.
PDF
AtCoder Regular Contest 042 解説
by
AtCoder Inc.
PDF
AtCoder Beginner Contest 026 解説
by
AtCoder Inc.
TCO2017R1
by
AtCoder Inc.
AtCoderに毎回参加したくなる仕組み
by
AtCoder Inc.
Square869120 contest #2
by
AtCoder Inc.
Chokudai Contest 001
by
AtCoder Inc.
AtCoder Regular Contest 049 解説
by
AtCoder Inc.
AtCoder Regular Contest 048
by
AtCoder Inc.
MUJINプログラミングチャレンジ2016 解説
by
AtCoder Inc.
arc047
by
AtCoder Inc.
abc032
by
AtCoder Inc.
CODE FESTIVAL 2015 沖縄ツアー 解説
by
AtCoder Inc.
CODE FESTIVAL 2015 解説
by
AtCoder Inc.
CODE FESTIVAL 2015 予選A 解説
by
AtCoder Inc.
AtCoder Regular Contest 044 解説
by
AtCoder Inc.
天下一プログラマーコンテスト2015 予選B 解説
by
AtCoder Inc.
AtCoder Regular Contest 043 解説
by
AtCoder Inc.
abc027
by
AtCoder Inc.
天下一プログラマーコンテスト2015 予選A E問題 解説
by
AtCoder Inc.
AtCoder Regular Contest 042 解説
by
AtCoder Inc.
AtCoder Beginner Contest 026 解説
by
AtCoder Inc.
Recently uploaded
PPTX
socialization in fundamentals of sociology.pptx
by
mpevk202
PDF
ПЛАН_профілактика правопорушень02.09.25.pdf
by
AleksSaf
PDF
ПЛАН_навчально_профілактичні_заходи_запобігання_негативним_проявам.pdf
by
AleksSaf
PDF
Seminar midterm presentation by Chihana Usui
by
aa123032
PDF
Bases especialista admen rrhh minedu.pdf
by
hpajsib
PDF
ГРАФІК ГУРТКОВОЇ РОБОТИ 2025 kg72 grafik
by
AleksSaf
PDF
ПОЛОЖЕННЯ_протидія насильству_підписане.pdf
by
AleksSaf
socialization in fundamentals of sociology.pptx
by
mpevk202
ПЛАН_профілактика правопорушень02.09.25.pdf
by
AleksSaf
ПЛАН_навчально_профілактичні_заходи_запобігання_негативним_проявам.pdf
by
AleksSaf
Seminar midterm presentation by Chihana Usui
by
aa123032
Bases especialista admen rrhh minedu.pdf
by
hpajsib
ГРАФІК ГУРТКОВОЇ РОБОТИ 2025 kg72 grafik
by
AleksSaf
ПОЛОЖЕННЯ_протидія насильству_підписане.pdf
by
AleksSaf
CODE FESTIVAL 2015 予選B 解説
1.
CODE FESTIVAL 2015
予選B 解説 AtCoder株式会社 代表取締役 高橋 直大 2015/10/25 1
2.
A問題 解説 「ダブル⽂文字列列」 CODE FESTIVAL
2015 予選B
3.
問題概要 • “2015/10/25” のように、各⽂文字が2度度ずつ現れる⽂文字 列列を「ダブル⽂文字列列」と呼ぶことにする •
⼩小⽂文字アルファベットからなる⽂文字列列 S が与えられる • S に含まれる⽂文字を全て含むダブル⽂文字列列を1つ出⼒力力し なさい • 例例 – “no” → “noon”(“onno”, “lemonmelon” なども可) – “meat” → “teammate”
4.
解法1 • ⽂文字列列 S
を、標準⼊入⼒力力から⼊入⼒力力する • ⽂文字列列 S を2回標準出⼒力力に出⼒力力する • 例例 – “no” → “nono” – “meat” → “meatmeat” – “z” → “zz” • 注意点 – 2回の出⼒力力の間にスペースや改⾏行行などを⼊入れないこと – 末尾に改⾏行行を出⼒力力するのを忘れないこと
5.
解法2 • ⼊入⼒力力が何であろうと 全ての⼩小⽂文字アルファベットを2回ずつ出⼒力力する • 例例 –
“no” → “aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz” – “meat” → “aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz” • 注意点 – 抜けた⽂文字や、3回以上現れる⽂文字がないようにすること – プログラムを書いて⽂文字列列を⽣生成するとより安全
6.
B問題 解説 「採点」 CODE FESTIVAL
2015 予選B
7.
問題概要 • N 人の答えの採点をする •
それぞれの人の答えは 0 以上 M 以下の整数 • 正解を忘れてしまった • 過半数の人が同じ答えならそれを正解とする • 正解を決められるなら正解を、決められないなら「?」 を出力せよ • 制約 – 1 ≦ N ≦ 105 – 1 ≦ M ≦ 105
8.
40点解法 • 部分点制約 – N
≦ 100, M ≦ 100 • 解法 – 0 から M まで正解を仮定する – 過半数の人が正解を答えているか調べる • 計算量 – O(NM)
9.
満点解法 • 解法 – M+1
要素の配列を用意し、それぞれの答えが何回答えられたか を数える – それぞれの答えが過半数かを調べる • 計算量 – O(N+M)
10.
C問題 解説 「旅館」 CODE FESTIVAL
2015 予選B
11.
問題概要 • N 部屋の旅館を経営している –
それぞれの部屋の定員は Ai 人 • M 組の予約がある – それぞれの予約の人数は Bi 人 • ひとつの予約にひとつの部屋を割り当てる • 定員が予約人数を下回ってはならない • すべての予約に部屋を割り当てられるか判定せよ • 制約 – 1 ≦ N ≦ 105 – 1 ≦ M ≦ 105 – 1 ≦ Ai ≦ 105 – 1 ≦ Bi ≦ 105
12.
60点解法 • 部分点制約 – N
≦ 100, M ≦ 100 • 解法 – 一番人数の多い予約に一番定員の多い部屋を割り当てればよい • それより人数の少ない予約に割り当てて大丈夫なら、一番人数の多 い予約と交換しても大丈夫 – 予約人数の多い順に、大きい部屋を割り当てる • 計算量 – O((N+M)M)
13.
満点解法 • 解法 – 部分点解法で、先にソートしておく •
計算量 – O(N log N + M log M)
14.
D問題 解説 「マスと駒と⾊色塗り」 CODE FESTIVAL
2015 予選B
15.
問題概要 • ⽩白いマスがたくさん並んでいる • N
個の駒がある • N 回の操作を⾏行行い、i 回⽬目の操作では、 – 駒 i をマス Si に置く – 「駒 i のあるマスが⽩白なら塗り、⿊黒なら次のマスに駒を移動」 を繰り返し、新たに塗ったマスが Ci 個になったら終了了 • という操作を⾏行行う • 操作終了了後の各駒の位置を求めよ • 制約 – 1 ≦ N ≦ 105 – 1 ≦ Si ≦ 109 – 1 ≦ Ci ≦ 109
16.
35点解法 • 部分点制約 – 操作終了了後に駒のあるマスの番号は
105 を超えない • マスを塗る回数の合計は 105 回以下となる • 解法 – 駒の動かし⽅方を、 • 今のマスから右にある最も近い⽩白マスに移動して⿊黒く塗る – と考えてシミュレーションを⾏行行う – 「最も近い⽩白マス」を⾼高速に⾒見見つけられれば良良い – 以下のような、いくつかの⽅方法がある • setで⽩白マスの場所を管理理しておき、lower_̲boundで「番号が x 以 上のうち最も⼩小さいもの」を⾒見見つける(c++) • 上の⽅方法で、setの代わりに RMQ(Range Minimum Query)に 対応した segtree を⽤用いる • 次のページに⽰示したような⽅方法を使う
17.
35点解法 • 以下のようなコードでも 35
点を得ることができる import sys sys.setrecursionlimit(1024*1024) N = int(raw_input()) state = [-‐1] * 100001 def find_next(i): if d[i] == -‐1: return i d[i] = find_next(d[i]) return d[i] for i in xrange(N): s,c = map(int,raw_input().split()) for j in xrange(c): s = find_next(s) d[s] = s+1 print s ※ ⾔言語はpythonです ← 再帰の深さ制限の対策 ← 「最も近い⽩白マス」を ⾒見見つける関数 ← シミュレーションを⾏行行って 答えを求めるループ
18.
35点解法 • 「最も近い⽩白マス」を⾒見見つける関数について • d[i]
が -‐‑‒1 のとき、マス i が⽩白であることを表します • そうでないときは、マス i よりも右でかつ、「最も近い ⽩白マス」よりも右でないマスの番号を表します – そのままでは再帰の呼び出し回数が膨⼤大でTLEしてしまいます – そこで、d[i] = find_next(d[i]) というように⾼高速化します • Union-‐Find ⽊木の⾼高速化と同様の⼿手法 • ならし計算量量は O(log(N)) となります • Union-‐Find ⽊木を⽤用いていると考えても良良いです def find_next(i): if d[i] == -‐1: return i d[i] = find_next(d[i]) return d[i]
19.
40点解法 • 部分点制約 – N
≦ 1000 • 解法 – ⿊黒く塗った区間を管理理する – 以下をそれぞれ O(区間の個数) で求められる • あるマスから右にある最も近い⽩白マス • あるマスから右にある最も近い⿊黒マス – このような区間への質問を解説上では「RQ」と呼ぶことにする – ただし、隣隣り合った2つの区間は併合しておくこと • 計算量量 – 1回の操作での区間の個数の増減は、定数 -‐‑‒ RQの回数 – Σ(定数 – 各操作でのRQの回数) = 最終的な区間の個数 > 0 – つまり、RQ の回数の合計 < 定数*N となる – 計算量量は RQの回数*RQの計算量量 = O(N^2) となる
20.
満点解法 • 解法 – ⿊黒く塗った区間を管理理する⽅方法を⼯工夫する –
例例えば、c++のsetを⽤用いる – RQ がO(log 区間の個数) で⾏行行うことができるようになる • 計算量量 – O(N log N) • 区間ではなく、⽩白と⿊黒が⼊入れ替わる場所を管理理すると、 少し実装が楽になります
21.
満点解法(別解) • 問題を⾔言い換える – タスクが
N 個ある – タスク i は時刻 Si から始める – タスク i には全部で Ci の時間がかかる – タスク i の重要度度は i である(⼩小さい⽅方が重要) – 各時点では、現在のタスクのうち最も重要なタスクを⾏行行う – 各タスクの終了了時刻を求めよ • 解法 – 各時点でのタスクについて (重要度度, 残り時間) を優先順位付き キューで管理理してシミュレーションする • 計算量量 – O(N log N)
Download