Enviar pesquisa
Carregar
RUPC2017:G解説
•
0 gostou
•
172 visualizações
Takumi Yamashita
Seguir
G
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 34
Baixar agora
Baixar para ler offline
Recomendados
RUPC2017:I解説
RUPC2017:I解説
Takumi Yamashita
RUPC2017:L解説
RUPC2017:L解説
Takumi Yamashita
RUPC2017:全体の講評
RUPC2017:全体の講評
Takumi Yamashita
RUPC2017:F解説
RUPC2017:F解説
Takumi Yamashita
RUPC2017:Dの解説
RUPC2017:Dの解説
Takumi Yamashita
RUPC2017:Hの解説
RUPC2017:Hの解説
Takumi Yamashita
RUPC2017:J解説
RUPC2017:J解説
Takumi Yamashita
RUPC2017:Aの解説
RUPC2017:Aの解説
Takumi Yamashita
Recomendados
RUPC2017:I解説
RUPC2017:I解説
Takumi Yamashita
RUPC2017:L解説
RUPC2017:L解説
Takumi Yamashita
RUPC2017:全体の講評
RUPC2017:全体の講評
Takumi Yamashita
RUPC2017:F解説
RUPC2017:F解説
Takumi Yamashita
RUPC2017:Dの解説
RUPC2017:Dの解説
Takumi Yamashita
RUPC2017:Hの解説
RUPC2017:Hの解説
Takumi Yamashita
RUPC2017:J解説
RUPC2017:J解説
Takumi Yamashita
RUPC2017:Aの解説
RUPC2017:Aの解説
Takumi Yamashita
RUPC2017:Cの解説
RUPC2017:Cの解説
Takumi Yamashita
B pub
B pub
HCPC: 北海道大学競技プログラミングサークル
RUPC2017:Bの解説
RUPC2017:Bの解説
Takumi Yamashita
RUPC2017:E解説
RUPC2017:E解説
Takumi Yamashita
RUPC2017:K解説
RUPC2017:K解説
Takumi Yamashita
E pub
E pub
HCPC: 北海道大学競技プログラミングサークル
A pub
A pub
HCPC: 北海道大学競技プログラミングサークル
F pub
F pub
HCPC: 北海道大学競技プログラミングサークル
D pub
D pub
HCPC: 北海道大学競技プログラミングサークル
C : 解説
C : 解説
Takumi Yamashita
I : Traffic Tree
I : Traffic Tree
Takumi Yamashita
全域木いろいろ
全域木いろいろ
HCPC: 北海道大学競技プログラミングサークル
RUPC2017:M問題
RUPC2017:M問題
Takumi Yamashita
RMQ クエリ処理
RMQ クエリ処理
HCPC: 北海道大学競技プログラミングサークル
C pub
C pub
HCPC: 北海道大学競技プログラミングサークル
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
HCPC: 北海道大学競技プログラミングサークル
G pub
G pub
HCPC: 北海道大学競技プログラミングサークル
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
cocodrips
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
AtCoder Inc.
Deposited Ranges
Deposited Ranges
Takumi Yamashita
0: 全体の講評
0: 全体の講評
Takumi Yamashita
M : 解説
M : 解説
Takumi Yamashita
Mais conteúdo relacionado
Destaque
RUPC2017:Cの解説
RUPC2017:Cの解説
Takumi Yamashita
B pub
B pub
HCPC: 北海道大学競技プログラミングサークル
RUPC2017:Bの解説
RUPC2017:Bの解説
Takumi Yamashita
RUPC2017:E解説
RUPC2017:E解説
Takumi Yamashita
RUPC2017:K解説
RUPC2017:K解説
Takumi Yamashita
E pub
E pub
HCPC: 北海道大学競技プログラミングサークル
A pub
A pub
HCPC: 北海道大学競技プログラミングサークル
F pub
F pub
HCPC: 北海道大学競技プログラミングサークル
D pub
D pub
HCPC: 北海道大学競技プログラミングサークル
C : 解説
C : 解説
Takumi Yamashita
I : Traffic Tree
I : Traffic Tree
Takumi Yamashita
全域木いろいろ
全域木いろいろ
HCPC: 北海道大学競技プログラミングサークル
RUPC2017:M問題
RUPC2017:M問題
Takumi Yamashita
RMQ クエリ処理
RMQ クエリ処理
HCPC: 北海道大学競技プログラミングサークル
C pub
C pub
HCPC: 北海道大学競技プログラミングサークル
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
HCPC: 北海道大学競技プログラミングサークル
G pub
G pub
HCPC: 北海道大学競技プログラミングサークル
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
cocodrips
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
AtCoder Inc.
Destaque
(19)
RUPC2017:Cの解説
RUPC2017:Cの解説
B pub
B pub
RUPC2017:Bの解説
RUPC2017:Bの解説
RUPC2017:E解説
RUPC2017:E解説
RUPC2017:K解説
RUPC2017:K解説
E pub
E pub
A pub
A pub
F pub
F pub
D pub
D pub
C : 解説
C : 解説
I : Traffic Tree
I : Traffic Tree
全域木いろいろ
全域木いろいろ
RUPC2017:M問題
RUPC2017:M問題
RMQ クエリ処理
RMQ クエリ処理
C pub
C pub
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
G pub
G pub
Pythonではじめる競技プログラミング
Pythonではじめる競技プログラミング
AtCoderに毎回参加したくなる仕組み
AtCoderに毎回参加したくなる仕組み
Mais de Takumi Yamashita
Deposited Ranges
Deposited Ranges
Takumi Yamashita
0: 全体の講評
0: 全体の講評
Takumi Yamashita
M : 解説
M : 解説
Takumi Yamashita
L : 解説
L : 解説
Takumi Yamashita
K : 解説
K : 解説
Takumi Yamashita
J : 解説
J : 解説
Takumi Yamashita
H : hegemony get
H : hegemony get
Takumi Yamashita
G : 解説
G : 解説
Takumi Yamashita
F : 解説
F : 解説
Takumi Yamashita
E : 解説
E : 解説
Takumi Yamashita
D : 解説
D : 解説
Takumi Yamashita
B potatoes
B potatoes
Takumi Yamashita
A: 解説
A: 解説
Takumi Yamashita
Mais de Takumi Yamashita
(13)
Deposited Ranges
Deposited Ranges
0: 全体の講評
0: 全体の講評
M : 解説
M : 解説
L : 解説
L : 解説
K : 解説
K : 解説
J : 解説
J : 解説
H : hegemony get
H : hegemony get
G : 解説
G : 解説
F : 解説
F : 解説
E : 解説
E : 解説
D : 解説
D : 解説
B potatoes
B potatoes
A: 解説
A: 解説
Último
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Último
(7)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
RUPC2017:G解説
1.
Problem G: Chairs 作問:
aoba 解説: がっちょ君 1 / 34
2.
問題概要 - 番号1∼NのN個の椅子がある - ID1∼NのN人がいて、人iは椅子pi
に座りたい - 人々はIDが小さい順に1列に並び、列が前の人か ら以下の操作を行う 1. 椅子pi が空席の場合はその席に座る 2. 空席ではない場合はpi に1加算して、列の最後 尾に並び直す(Nを超えた場合は1となる) - 全ての人が座るまでこの操作を繰り返す - 最終的にそれぞれの椅子に座っている人のIDを 出力する - 制約: 1 ≤ N ≤ 105, 1 ≤ pi ≤ N 2 / 34
3.
ダメな解法 • 問題文通りにシミュレーション → 例えば、全ての初期位置が同じ場合 はN
× (N + 1)/2回の操作をすることになり N = 105 なので間に合わない 3 / 34
4.
ポイント • 問題を「各椅子に対して人が並んでいる」 と置き換える 4 /
34
5.
解法1 • 累積和 +
スタック 5 / 34
6.
解法1 • 問題を置き換えた場合でもどこからどのような 順序で処理を行うかを決める必要がある(円環す るため) • 適切な位置を選択することで円環を直線と考え ることができる •
適切な位置は次のように決められる 1. 各椅子に対して初期値を-1として、人が並んで いる場合はその人数だけ加算して累積和を取 る 2. その中で最も値が小さい場所をxとすると、 x + 1が適切な位置となる(x = Nなら1) 6 / 34
7.
解法1 • 適切な位置を選んだらその位置からスタックを 使い、それぞれの椅子に誰が座るかを決定して いく • O(N)で解くことができる ※
工夫すると累積和を使用しなくても解くことが できる 7 / 34
8.
解法1 8 / 34 N
= 8, p = {1, 5, 1, 7, 4, 5, 7, 5}の場合 1 2 3 4 5 6 7 8 1 3 5 2 6 8 4 7 1 -1 -1 0 2 -1 1 -1
9.
解法1 9 / 34 累積和を取る 1
2 3 4 5 6 7 8 1 3 5 2 6 8 4 7 1 0 -1 -1 1 0 1 0
10.
解法1 10 / 34 椅子3が最小
→ 椅子4から操作を開始する 1 2 3 4 5 6 7 8 1 3 5 2 6 8 4 7 1 0 -1 -1 1 0 1 0 start→
11.
解法1 11 / 34 1
2 3 4 5 6 7 8 ↓ 1 3 5 2 6 8 4 7 Stack
12.
解法1 12 / 34 1
2 3 4 5 6 7 8 ↓ 1 3 2 6 8 4 7 5 Stack
13.
解法1 13 / 34 1
2 3 5 4 5 6 7 8 ↓ 1 3 2 6 8 4 7 Stack
14.
解法1 14 / 34 1
2 3 5 4 5 6 7 8 ↓ 1 3 2 6 8 4 7 Stack
15.
解法1 15 / 34 1
2 3 5 4 5 6 7 8 ↓ 1 3 4 7 2 6 8 Stack
16.
解法1 16 / 34 1
2 3 5 4 2 5 6 7 8 ↓ 1 3 4 7 6 8 Stack
17.
解法1 17 / 34 1
2 3 5 4 2 5 6 7 8 ↓ 1 3 4 7 6 8 Stack
18.
解法1 18 / 34 1
2 3 5 4 2 5 6 6 7 8 ↓ 1 3 4 7 8 Stack
19.
解法1 19 / 34 1
2 3 5 4 2 5 6 6 7 8 ↓ 1 3 4 7 8 Stack
20.
解法1 20 / 34 1
2 3 5 4 2 5 6 6 7 8 ↓ 1 3 4 7 8 Stack
21.
解法1 21 / 34 1
2 3 5 4 2 5 6 6 4 7 8 ↓ 1 3 7 8 Stack
22.
解法1 22 / 34 1
2 3 5 4 2 5 6 6 4 7 8 ↓ 1 3 7 8 Stack
23.
解法1 23 / 34 1
2 3 5 4 2 5 6 6 4 7 7 8 ↓ 1 3 8 Stack
24.
解法1 24 / 34 1
2 3 5 4 2 5 6 6 4 7 7 8 ↓ 1 3 8 Stack
25.
解法1 25 / 34 1
2 3 5 4 2 5 6 6 4 7 7 8 ↓ 1 3 8 Stack
26.
解法1 26 / 34 1 1
2 3 5 4 2 5 6 6 4 7 7 8 ↓ 3 8 Stack
27.
解法1 27 / 34 1 1
2 3 5 4 2 5 6 6 4 7 7 8 ↓ 3 8 Stack
28.
解法1 28 / 34 1 1 3 2
3 5 4 2 5 6 6 4 7 7 8 ↓ 8 Stack
29.
解法1 29 / 34 1 1 3 2
3 5 4 2 5 6 6 4 7 7 8 ↓ 8 Stack
30.
解法1 30 / 34 1 1 3 2 8 3 5 4 2 5 6 6 4 7 7 8 ↓ Stack
31.
解法2 • シミュレーション • 列ごとにまとめて動かしていく •
任意の順序で列を動かしてOK 31 / 34
32.
解法2 • 各列について以下の操作を行う必要がある 1. 最寄りの空席の位置を探す 2.
2つの列をマージする (一方の列をもう一方の列の後ろに挿入する) • これらは例えばstd::setとstd::listを組み合わせる とO(logN)で実現することができる • N人についてこの操作を行うとO(NlogN)となる 32 / 34
33.
結果 • Onsite - First
Submission: caffe チーム (113 min) - First Accepted: caffe チーム (113 min) • Online - First Submission: ei1333 さん (49 min) - First Accepted: caffe チーム (113 min) • Success Rate (Accepted / Submission) 12.00 % (3 / 25) 33 / 34
34.
ジャッジ解 aoba C++ 57行 arrows
C++ 49行 arrows Java 38行 gacho C++ 25行 haji C++ 43行 kawa C++ 17行 kzyKT C++ 20行 sate C++ 36行 uku C++ 66行 34 / 34
Baixar agora