Suche senden
Hochladen
RUPC 2019 Day3 G: Donuts Orientation
•
0 gefällt mir
•
311 views
HCPC: 北海道大学競技プログラミングサークル
Folgen
2019/3/7 立命館大学プログラミング合宿 Day3 (北大セット) G 問題
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 9
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
写像 12 相
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
HCPC: 北海道大学競技プログラミングサークル
Empfohlen
写像 12 相
写像 12 相
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
HCPC: 北海道大学競技プログラミングサークル
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
HCPC: 北海道大学競技プログラミングサークル
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
HCPC: 北海道大学競技プログラミングサークル
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむ
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲーム
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 A: 情報検索
RUPC 2019 Day3 A: 情報検索
HCPC: 北海道大学競技プログラミングサークル
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Weitere ähnliche Inhalte
Mehr von HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HCPC: 北海道大学競技プログラミングサークル
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
HCPC: 北海道大学競技プログラミングサークル
Convex Hull Trick
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむ
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲーム
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
HCPC: 北海道大学競技プログラミングサークル
RUPC 2019 Day3 A: 情報検索
RUPC 2019 Day3 A: 情報検索
HCPC: 北海道大学競技プログラミングサークル
最大流 (max flow)
最大流 (max flow)
HCPC: 北海道大学競技プログラミングサークル
Mehr von HCPC: 北海道大学競技プログラミングサークル
(20)
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
Convex Hull Trick
Convex Hull Trick
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 F: 赤黒そーるじぇむ
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 A: 情報検索
RUPC 2019 Day3 A: 情報検索
最大流 (max flow)
最大流 (max flow)
Kürzlich hochgeladen
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Kürzlich hochgeladen
(8)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
RUPC 2019 Day3 G: Donuts Orientation
1.
RUPC 2019 Day
3 G 問題 - Donuts Orientation - 原案:tsukasa_diary 問題文:tsuta_j 解説:tsukasa_diary 2019/3/7 RUPC 2019 DAY 3 G 1
2.
問題 2𝑁頂点のドーナツ型無向グラフが与えられる。各辺に 向き付けするとき、閉路ができない向き付けは何通り あるか。(𝑁 ≤ 1000,
答えは素数𝑀で剰余を取る) 2019/3/7 RUPC 2019 DAY 3 G 2 1 2 342N-1 2N 2i 2i-1 1 2 3465
3.
基本的なアルゴリズム メモ化再帰 ◦ 各辺を順に向き付けていく ◦ 頂点の推移閉包をメモ 2019/3/7
RUPC 2019 DAY 3 G 3 1 2 3465 𝒔/𝒕 1 2 3 4 5 6 1 0 1 1 1 0 0 2 0 0 1 1 0 0 3 0 0 0 0 0 0 4 0 0 1 0 0 0 5 0 0 0 0 0 0 6 0 0 0 0 0 0 0: 𝑠から𝑡へ推移不可能 1: 𝑠から𝑡へ推移可能 rec(𝑖, 𝑐𝑢𝑟): // 辺 𝑢𝑖, 𝑣𝑖 に向き付けする if (閉路を検出) return 0 if (𝑖 = 𝑙𝑎𝑠𝑡) return 1 if ( 𝑖, 𝑐𝑢𝑟 がメモ済み) return 𝑚𝑒𝑚𝑜[𝑖, 𝑐𝑢𝑟] 𝑛𝑥𝑡1 ← 𝑎𝑑𝑑𝐴𝑟𝑐 𝑐𝑢𝑟, 𝑢𝑖 → 𝑣𝑖 𝑛𝑥𝑡2 ← 𝑎𝑑𝑑𝐴𝑟𝑐 𝑐𝑢𝑟, 𝑣𝑖 → 𝑢𝑖 𝑚𝑒𝑚𝑜 𝑖, 𝑐𝑢𝑟 ←(rec(𝑖+1, 𝑛𝑥𝑡1) + rec(𝑖+1, 𝑛𝑥𝑡2))%𝑀 return 𝑚𝑒𝑚𝑜 𝑖, 𝑐𝑢𝑟
4.
𝒔/𝒕 1 2
3 4 5 6 1 0 1 1 1 0 0 2 0 0 1 1 0 0 3 0 0 0 0 0 0 4 0 0 1 0 0 0 5 0 0 0 0 0 0 6 0 0 0 0 0 0 0: 𝑠から𝑡へ推移不可能 1: 𝑠から𝑡へ推移可能 明らかな問題点 頂点数が2𝑁だから推移閉包のサイズが4𝑁2 ◦ 推移閉包の種類数は𝑂 2 𝑁2 ◦ 総計算量は𝑂 𝑁32 𝑁2 2019/3/7 RUPC 2019 DAY 3 G 4 これをメモするのは 非現実的
5.
考察の前準備 とりあえずグラフを見やすい形に描きなおす 2019/3/7 RUPC 2019
DAY 3 G 5 1 2 3 4 5 6 1 2 3465 梯子(幅2のグリッド)の上下がくっついただけ
6.
重要な考察 上の辺から順に向き付けるとき、向き付けが完了した 領域の四隅頂点以外の推移関係は無視してよい 2019/3/7 RUPC 2019
DAY 3 G 6 𝒔/𝒕 1 2 3 4 5 6 1 0 1 1 0 1 0 2 0 0 0 0 0 0 3 0 0 0 1 1 0 4 0 1 1 0 1 0 5 0 0 0 0 0 0 6 0 1 1 1 1 0 0: 𝑠から𝑡へ推移不可能 1: 𝑠から𝑡へ推移可能 無視 ここは最後に 向き付け ここは最後に 向き付け 1 2 3 4 5 6
7.
重要な考察 上の辺から順に向き付けるとき、向き付けが完了した 領域の四隅頂点以外の推移関係は無視してよい 2019/3/7 RUPC 2019
DAY 3 G 7 1 2 3 4 5 6 なぜ? • 四隅頂点の集合を 𝐹とする • サイクル検出について • ある頂点 𝑣 ∉ 𝐹 について、辺 𝑥, 𝑦 を向き付けして 𝑣 を含むサイクルができるとき、必ず 𝑥, 𝑦 ∈ 𝐹 であって 𝑦 → 𝑣 → 𝑥 という推移関係がある • しかし、 𝑦 → 𝑣 → 𝑥 から 𝑦 → 𝑥 という推移関係が導 かれるので、 𝑣 を無視しても正しくサイクル検出可能 • 推移関係の更新についても同様に議論可能 6 → 3 → 5
8.
想定解法まとめ 四隅頂点に関する推移閉包を管理するメモ化再帰 ◦ 計算量は 𝑂
𝑁 × 42 × 推移閉包の種類数 ◦ 4頂点の推移閉包の種類数は 3994(参考:OEIS A006905) 推移閉包の管理が強実装 ◦ 四隅が動くので行と列が目まぐるしく変わる ◦ よく考えると以下の 3 操作でうまく実現できる ◦ ワーシャル・フロイド的に更新する (辺追加は3乗でなく2乗でできます) ◦ ある行を全部 0 にする ◦ ある列を全部 0 にする 2019/3/7 RUPC 2019 DAY 3 G 8 詳細は割愛
9.
Writer Solutions /
Statistics Writer Solutions tsukasa diary: 85 lines, 2654 bytes in C++ tsuta j: 133 lines, 3718 bytes in C++ Acceptance / Submission 80 % (4/5) First Acceptance On-site: rupc ohauku (162 min) On-line: rickytheta (133 min)
Jetzt herunterladen