Submit Search
Upload
AtCoder Regular Contest 035 解説
•
1 like
•
7,037 views
A
AtCoder Inc.
Follow
AtCoder Regular Contest 035 解説
Read less
Read more
Education
Report
Share
Report
Share
1 of 17
Download now
Download to read offline
Recommended
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
AtCoder Inc.
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Inc.
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
AtCoder Inc.
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
Abc009
Abc009
AtCoder Inc.
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
AtCoder Inc.
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
AtCoder Inc.
AtCoder Beginner Contest 028 解説
AtCoder Beginner Contest 028 解説
AtCoder Inc.
Recommended
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
AtCoder Inc.
AtCoder Regular Contest 042 解説
AtCoder Regular Contest 042 解説
AtCoder Inc.
AtCoder Regular Contest 027 解説
AtCoder Regular Contest 027 解説
AtCoder Inc.
AtCoder Beginner Contest 017 解説
AtCoder Beginner Contest 017 解説
AtCoder Inc.
Abc009
Abc009
AtCoder Inc.
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
AtCoder Inc.
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
AtCoder Inc.
AtCoder Beginner Contest 028 解説
AtCoder Beginner Contest 028 解説
AtCoder Inc.
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Inc.
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Inc.
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説
AtCoder Inc.
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説
AtCoder Inc.
AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説
AtCoder Inc.
AtCoder Regular Contest 020 解説
AtCoder Regular Contest 020 解説
AtCoder Inc.
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
AtCoder Inc.
abc027
abc027
AtCoder Inc.
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Inc.
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
AtCoder Inc.
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
AtCoder Inc.
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
AtCoder Inc.
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Inc.
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Inc.
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
AtCoder Inc.
AtCoder Regular Contest 034 解説
AtCoder Regular Contest 034 解説
AtCoder Inc.
abc032
abc032
AtCoder Inc.
AtCoder Regular Contest 024 解説
AtCoder Regular Contest 024 解説
AtCoder Inc.
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
AtCoder Inc.
AtCoder Regular Contest 033 解説
AtCoder Regular Contest 033 解説
AtCoder Inc.
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Inc.
More Related Content
What's hot
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Inc.
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Inc.
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Inc.
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説
AtCoder Inc.
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説
AtCoder Inc.
AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説
AtCoder Inc.
AtCoder Regular Contest 020 解説
AtCoder Regular Contest 020 解説
AtCoder Inc.
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
AtCoder Inc.
abc027
abc027
AtCoder Inc.
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Inc.
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
AtCoder Inc.
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
AtCoder Inc.
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
AtCoder Inc.
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Inc.
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Inc.
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
AtCoder Inc.
AtCoder Regular Contest 034 解説
AtCoder Regular Contest 034 解説
AtCoder Inc.
abc032
abc032
AtCoder Inc.
AtCoder Regular Contest 024 解説
AtCoder Regular Contest 024 解説
AtCoder Inc.
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
AtCoder Inc.
What's hot
(20)
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 008 解説
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 030 解説
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 024 解説
AtCoder Beginner Contest 004 解説
AtCoder Beginner Contest 004 解説
AtCoder Regular Contest 020 解説
AtCoder Regular Contest 020 解説
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
abc027
abc027
AtCoder Regular Contest 049 解説
AtCoder Regular Contest 049 解説
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 016 解説
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
AtCoder Regular Contest 036 解説
AtCoder Regular Contest 036 解説
CODE FESTIVAL 2014 本選 解説
CODE FESTIVAL 2014 本選 解説
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 006 解説
AtCoder Beginner Contest 006 解説
AtCoder Regular Contest 034 解説
AtCoder Regular Contest 034 解説
abc032
abc032
AtCoder Regular Contest 024 解説
AtCoder Regular Contest 024 解説
AtCoder Regular Contest 032 解説
AtCoder Regular Contest 032 解説
Viewers also liked
AtCoder Regular Contest 033 解説
AtCoder Regular Contest 033 解説
AtCoder Inc.
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Inc.
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Inc.
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Inc.
AtCoder Regular Contest 037 解説
AtCoder Regular Contest 037 解説
AtCoder Inc.
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
AtCoder Inc.
Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
高速フーリエ変換
高速フーリエ変換
AtCoder Inc.
AtCoder Regular Contest 001
AtCoder Regular Contest 001
AtCoder Inc.
Viewers also liked
(9)
AtCoder Regular Contest 033 解説
AtCoder Regular Contest 033 解説
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 031 解説
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 019 解説
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 022 解説
AtCoder Regular Contest 037 解説
AtCoder Regular Contest 037 解説
深さ優先探索による塗りつぶし
深さ優先探索による塗りつぶし
Union find(素集合データ構造)
Union find(素集合データ構造)
高速フーリエ変換
高速フーリエ変換
AtCoder Regular Contest 001
AtCoder Regular Contest 001
More from AtCoder Inc.
TCO2017R1
TCO2017R1
AtCoder Inc.
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
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 Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Inc.
AtCoder Regular Contest 048
AtCoder Regular Contest 048
AtCoder Inc.
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Inc.
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
AtCoder Inc.
DDPC 2016 予選 解説
DDPC 2016 予選 解説
AtCoder Inc.
arc047
arc047
AtCoder Inc.
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説
AtCoder Inc.
AtCoder Regular Contest 046
AtCoder Regular Contest 046
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.
More from AtCoder Inc.
(20)
TCO2017R1
TCO2017R1
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
Square869120 contest #2
Square869120 contest #2
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Chokudai Contest 001
Chokudai Contest 001
AtCoder Beginner Contest 034 解説
AtCoder Beginner Contest 034 解説
AtCoder Regular Contest 048
AtCoder Regular Contest 048
MUJINプログラミングチャレンジ2016 解説
MUJINプログラミングチャレンジ2016 解説
AtCoder Beginner Contest 033 解説
AtCoder Beginner Contest 033 解説
DDPC 2016 予選 解説
DDPC 2016 予選 解説
arc047
arc047
CODE FESTIVAL 2015 沖縄ツアー 解説
CODE FESTIVAL 2015 沖縄ツアー 解説
AtCoder Regular Contest 046
AtCoder Regular Contest 046
abc031
abc031
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 解説
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Regular Contest 045 解説
AtCoder Regular Contest 045 解説
CODE FESTIVAL 2015 予選A 解説
CODE FESTIVAL 2015 予選A 解説
AtCoder Regular Contest 044 解説
AtCoder Regular Contest 044 解説
Recently uploaded
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
Ken Fukui
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
Ken Fukui
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
yuitoakatsukijp
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
Ken Fukui
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ssusere0a682
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
yukisuga3
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
Ken Fukui
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
Ken Fukui
Recently uploaded
(8)
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
AtCoder Regular Contest 035 解説
1.
AtCoder Regular Contest
035 解説 AtCoder株式会社 代表取締役 高橋 直大 2015/3/7 1
2.
競技プログラミングを始める前に • 競技プログラミングをやったことがない人へ – まずはこっちのスライドを見よう! –
http://www.slideshare.net/chokudai/abc004 2015/3/7 2
3.
©AtCoder Inc. All
rights reserved. 3 A問題 高橋くんと回文 1. 問題概要 2. アルゴリズム 2015/3/7 3
4.
A問題 問題概要 • 文字列
s が与えられる. • *を自由な文字に置き換えて,sを回文にできるか判 定 • *を置き換える文字はそれぞれ異なっていてもOK • 制約 – 1 ≦ |s| ≦ 1000 2015/3/7 4
5.
A問題 アルゴリズム • 解法1 –
前と後ろで対応する文字が同じになりうるか調べる – つまり,i 番目と |s|+1-i 番目の文字で,どちらかが * であ るか,どちらも同じ文字であるか調べる(1 <= i <= |s|) – 1つでも同じになりえない文字の組があればNO,そうでな ければYES • 解法2 – sとsをひっくり返した文字列tの間で,sのi番目とtのi番目 が同じ文字になりうるか調べる. – 結局やっていることは同じ.この方が少し楽かも. 2015/3/7 5
6.
©AtCoder Inc. All
rights reserved. 6 B問題 アットコーダー王国のコンテスト事情 1. 問題概要 2. 考察&解法 2015/3/7 6
7.
B問題 問題概要 • 問題がN個ある •
それぞれの問題を解くのにかかる時間を知っている • 解いた時間に依存するペナルティがある – 問題ペナルティ=コンテスト開始からその問題を正解するまでの時間 – コンテストペナルティ=問題ペナルティの総和 • 全完するときの最小コンテストペナルティと,それを 達成する解き方の数を求めよ • 制約 – 1 ≦ N ≦ 100000 – 1≦(各問題を解くのにかかる時間)≦ 1000 2015/3/7 7
8.
B問題 考察&解法 • コンテストペナルティ最小を達成するためには, かかる時間の小さい問題から解けば良い →かかる時間順でソートして,シミュレーションする (最大ケースで答えが32bit整数を超えるので注意) •
かかる時間が同じ問題は,解く順序を入れ替えても 最小ペナルティが変わらない. →かかる時間が同じ問題がx個あったら,解き方はx!通り • 全体の組み合わせ数としては,それらの積が答え • 計算量 – ソートにO(n log n) ←標準ライブラリを使いましょう – その他 O(n) 2015/3/7 8
9.
©AtCoder Inc. All
rights reserved. 9 C問題 アットコーダー王国の交通事情 1. 問題概要 2. 考察 3. 解法 2015/3/7 9
10.
C問題 問題概要 • N頂点,M本の辺から成る重み付き無向グラフがある •
このグラフにK本無向辺を新たに追加する • 追加する度に,全点対間の距離の和を求めよ • 制約 – 1 ≦ N ≦ 400, 1 ≦ M ≦ 1000, 1 ≦ K ≦ 400 – 1≦(各問題を解くのにかかる時間)≦ 1000 2015/3/7 10
11.
C問題 考察 • 全点間最短距離を求めるワーシャルフロイド法を用いる →O(N^3)で全点間距離テーブルが計算可能 →辺が1つ増える毎にテーブルをO(N^3)で更新していて はTLE •
ある辺を既存の辺より小さいコストの辺に変更するとき O(N^2)でテーブル更新可能 →コストがcの辺(a,b)を追加時,頂点i,j間の最短距離 cost[i][j]は以下のように更新される cost[i][j] = min( cost[i][j], cost[i][a] + cost[b][j] + c, cost[i][b] + cost[a][j] + c) ※cost[][]は全点間最短距離を記録した二次元テーブル 2015/3/7 11
12.
C問題 解法 • まとめると –
最初にO(N^3)で全点間最短距離テーブルを構築 – 辺の追加時に毎回O(N^2)でテーブル更新 • を行うことで満点を得れる • 計算量: O(N^3 + KN^2) • 余談ですが,ワーシャルフロイドのアルゴリズムは O(N^3)ですが,アルゴリズムが非常に単純なので, 多少頂点数が多くても高速に動作することが多いで す. 2015/3/7 12
13.
©AtCoder Inc. All
rights reserved. 13 D問題 高橋くんとマラソンコース 1. 問題概要 2. アルゴリズム 2015/3/7 13
14.
D問題 問題概要 • 南北・東西方向の道があり,交差点の間を北・東方 向にのみ進める. •
交差点上にN個のチェックポイントがある. • 以下の2つのクエリーを処理 – kj 番目のチェックポイントを (aj,bj)に設定しなおす – チェックポイントl1jからチェックポイントr1jまでの経路数と, チェックポイントl2jからチェックポイントr2jまでの経路数のう ち,どちらが多いか答える.ただし,多い方は少ない方の 2倍以上. • 制約 – 2<=N<=2*10^5 – 1<=(チェックポイントの座標)<=10^6 2015/3/7 14
15.
D問題 アルゴリズム • 東西方向で東を正にX軸,南北方向に北を正にY軸を取 ります. •
隣り合うチェックポイントのx座標の差がdx,y座標の差 がdyのとき,その2つのチェックポイント間の経路の数は dx+dyCdx =(dx+dy)!/(dx!)/(dy!) (dx個の→,dy個の↑の並べ替えの個数に等しいから) • チェックポイントaからチェックポイントbまでの経路の数 は,(aとa+1間の経路数)*(a+1とa+2間の経路数)* ‥ *(b-1とb間の経路数) • 経路数はメチャクチャでかくなりそう. – (1,1) から (10^6,10^6) への経路数の時点でヤバイ • 経路数の計算では掛け算・割り算しか出てこない. 2015/3/7 15
16.
D問題 アルゴリズム • 普通に計算するのはよくない •
logを取ってみよう!! – 0<a<b のとき log(a)<log(b) なので,大小関係が維持され る. – log(a*b)=log(a)+log(b) , log(a/b)=log(a)-log(b) から,経路 数は楽に計算できそう. – 数がそこまででかくならない • (1,1) から (10^6,10^6) までの経路数をwとおくと,log(w)は10^6ぐ らい. – 大と小で2倍差があれば,logを取った値はlog(2)≒0.69以 上差があるので誤差もOK 2015/3/7 16
17.
D問題 アルゴリズム • 部分点解法では,番号が隣り合う2つのチェックポイ ントの間の経路数にlogを取ったものを毎回計算し, それらの和の大小を比較する. –
予め階乗にlogを取ったものを求めておく必要がある • 満点解法では,セグメント木を使い,区間の和を求 められるようにしておく. – チェックポイントの更新では,その前後の経路数を更新 – 比較では,和の大小を比較 2015/3/7 17
Download now