SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
立命合宿 2019 Day3 F 問題
赤黒そーるじぇむ (Red Black Soul Gem)
原案: tsutaj
問題文: tsukasa_diary
解答: tsutaj・tsukasa_diary
解説: tsutaj
2019 年 3 月 7 日
tsutaj RUPC 2019 Day3 F 2019/3/7 1 / 11
問題
赤黒そーるじぇむ (Red Black Soul Gem)
以下を全て満たす N 頂点のグラフの総数を数え上げ、M で割った余
りを求める
各頂点は赤か黒のどちらかで塗られている
赤で塗られた頂点それぞれについて、黒で塗られた頂点の少なくとも 1
つと直接繋がっている
黒で塗られた頂点それぞれについて、赤で塗られた頂点の少なくとも 1
つと直接繋がっている
制約
1 ≤ N ≤ 2000
108
≤ M ≤ 109
+ 7
M は素数
tsutaj RUPC 2019 Day3 F 2019/3/7 2 / 11
問題
条件を満たすグラフの例
tsutaj RUPC 2019 Day3 F 2019/3/7 3 / 11
問題
条件を満たさないグラフの例
どの黒い頂点とも直接繋がらない赤い頂点が存在
×
tsutaj RUPC 2019 Day3 F 2019/3/7 4 / 11
想定誤解法
TLE 解法: 動的計画法
dp[i][j][k][l] (以下の状態を管理)
i 番目の頂点まで考慮したとき
黒く塗った頂点が j 個あり
条件を満たさない (赤い頂点と全く繋がらない) 黒い頂点が k 個あり
条件を満たさない (黒い頂点と全く繋がらない) 赤い頂点が l 個ある
答えは
∑N−1
j=1 dp[N][j][0][0]
O(N5) なので当然間に合いません
tsutaj RUPC 2019 Day3 F 2019/3/7 5 / 11
アプローチ
頂点を k 個と N − k 個のふたつに分け、それぞれ赤・黒で塗る
N 個のうち、具体的にどの k 個を選ぶか: N Ck 通り
赤い頂点同士の接続パターン: 2
k(k−1)
2 通り
黒い頂点同士の接続パターン: 2
(N−k)(N−k−1)
2 通り
k 個 N-k 個
tsutaj RUPC 2019 Day3 F 2019/3/7 6 / 11
アプローチ
赤い頂点集合と黒い頂点集合の間の接続パターンは、どのようにして
数えるか?
?k 個 N-k 個
tsutaj RUPC 2019 Day3 F 2019/3/7 7 / 11
アプローチ
「条件を満たさない」接続パターンを考えてみる
Px := 黒い頂点のうち少なくとも x 個が、どの赤い頂点とも繋がらない
パターンの集合 とすると、以下のように書ける
(条件を満たさないパターン) = P1 ∪ P2 ∪ . . . ∪ PN−k
和集合の数え上げなので、包除原理が利用できそう
tsutaj RUPC 2019 Day3 F 2019/3/7 8 / 11
アプローチ
黒い頂点のうち x 個を絶対に赤い頂点と繋げないことにする
赤い頂点は少なくとも 1 つの黒い頂点と繋げることにする
このような接続パターン数 |Px| は容易に数え上げられる
さらに、絶対に繋げない頂点の個数さえ同じであれば場合の数は同じ
である (対称性) から、個数 x だけ考慮すればよい
×
絶対に繋がないところが x 個あるならば、
N-k-x k
通りの繋ぎ方が考えられる(2 -1)
k 個 N-k 個
tsutaj RUPC 2019 Day3 F 2019/3/7 9 / 11
アプローチ
想定解法まとめ
N 個の頂点を k 個・N − k 個 という 2 つの頂点集合に分ける
黒い頂点に関して、赤い頂点と絶対に繋げない個数を決め打ちして場
合の数を求める
求めたい場合の数は包除原理によって求めることができる
計算量 O(N2)
少しサボると O(N2
log N) になりますがこれでも間に合うはず
tsutaj RUPC 2019 Day3 F 2019/3/7 10 / 11
Writer 解・統計
Writer 解
tsutaj (C++・86 行・2030 bytes)
tsukasa_diary (C++・56 行・1128 bytes)
monkukui (C++・58 行・1288 bytes)
統計
AC / tried: 13 / 17 (76.5 %)
First AC
On-site: rupc_homu_aishiteru (20 min 25 sec)
On-line: xxymdxx (77 min 22 sec)
tsutaj RUPC 2019 Day3 F 2019/3/7 11 / 11

Weitere ähnliche Inhalte

Mehr von HCPC: 北海道大学競技プログラミングサークル

Mehr von HCPC: 北海道大学競技プログラミングサークル (20)

HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
 
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャムHUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
 
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMGHUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
 
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD RushHUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
 
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺しHUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
 
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
 
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
 
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
 
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
 
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
 
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four teaHUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
 
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
 
プログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニックプログラミングコンテスト基礎テクニック
プログラミングコンテスト基礎テクニック
 
RUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 G: Donuts OrientationRUPC 2019 Day3 G: Donuts Orientation
RUPC 2019 Day3 G: Donuts Orientation
 
RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢RUPC 2019 Day3 D: 矢
RUPC 2019 Day3 D: 矢
 
RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列RUPC 2019 Day3 E: 往復文字列
RUPC 2019 Day3 E: 往復文字列
 
RUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲームRUPC 2019 Day3 C: 約数ゲーム
RUPC 2019 Day3 C: 約数ゲーム
 
RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数RUPC 2019 Day3 B: 括弧を語る数
RUPC 2019 Day3 B: 括弧を語る数
 
RUPC 2019 Day3 A: 情報検索
RUPC 2019 Day3 A: 情報検索RUPC 2019 Day3 A: 情報検索
RUPC 2019 Day3 A: 情報検索
 
最大流 (max flow)
最大流 (max flow)最大流 (max flow)
最大流 (max flow)
 

Kürzlich hochgeladen

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Kürzlich hochgeladen (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

RUPC 2019 Day3 F: 赤黒そーるじぇむ