SlideShare a Scribd company logo
1 of 5
Download to read offline
F:きっちり	
原案は、鈴木です。	
解答は、田中、青木、鈴木です。	
解説は、鈴木です。
問題概要です。	
l  きっちりした数列を、以下で定義する。	
-  長さN(偶数)で、1 ≦ i ≦ N/2 について Si = SN-i+1 である。	
l  Q個のクエリ(l,r,x)が来る。	
-  Sl, …, Srにxを加算する。	
l  クエリごとに、以下の問に応える。	
-  数列がきっちりしているか。	
l  主な制約は、以下の通りである。	
-  2 ≦ N ≦ 500000かつ1 ≦ Q ≦ 100000である。
サンプルである。	
0 1 2 3 4 4 3 2 1 00 1 2 3 4 4 3 2 1 0
0 1 2 3 4 4 3 2 1 0
+0
きっちり
である。	
+5
0 6 7 8 4 4 3 2 1 0
きっちり
でない。	
+10
0 6 7 8 4 4 13 12 11 0
+5
0 11 12 13 4 4 13 12 11 0
きっちり
でない。	
きっちり
である。
想定解法である。	
l  きっちりの見方を変える。	
-  1 ≦ i ≦ N/2 について Si = SN-i+1である。
→1 ≦ i ≦ N/2 について Si – SN-i+1 = 0 (差分が0)である。	
l  範囲更新可能な区間木、または平方分割で差分を管理する。	
-  セグ木なら O(logN)で、平方分割なら O(√N)でできる。	
l  Si – SN-i+1 がすべて0であるかどうかを、高速に応答する。	
-  mini=1,...,N/2{Si – SN-i+1}とmaxi=1,...,N/2{Si – SN-i+1}が、共に0ならばよい。	
-  つまり、Range Minimum (Maximum) Query になる。	
l  区間木なら O(logN)で、平方分割なら O(√N)でできる。	
l  全体の計算量は、以下のとおりである。	
-  区間木ならO(Q logN)で、平方分割ならO(Q√N)である。
想定解法の概略図である。	
2 4 5 4 2 2 3 4 4 2
0 0 1 1 0
クエリ (l,r,x) = (5,8,1)
0 0 1 1 0
折り返して差分を取
る。	
+1
-1
折り返しに気をつけて、
区間更新を高速に行う。	
-1
0 0 1 1 -2 max = 1, min = -2 → いいえ。	
0 0 0 0 0 max = 0, min = 0 → はい。	
Range Minimum (Maximum) Query に高速に応えられればよ
数列がきっちりしている
か。	
←このように考えると楽かもしれな
い。

More Related Content

Viewers also liked (6)

立命合宿2016Day3:D問題
立命合宿2016Day3:D問題立命合宿2016Day3:D問題
立命合宿2016Day3:D問題
 
立命合宿2016Day3:G問題
立命合宿2016Day3:G問題立命合宿2016Day3:G問題
立命合宿2016Day3:G問題
 
立命合宿2016Day3:E問題
立命合宿2016Day3:E問題立命合宿2016Day3:E問題
立命合宿2016Day3:E問題
 
Государственные закупки для предпринимателей
Государственные закупки для предпринимателейГосударственные закупки для предпринимателей
Государственные закупки для предпринимателей
 
ACPC2016Day3:E問題
ACPC2016Day3:E問題ACPC2016Day3:E問題
ACPC2016Day3:E問題
 
Topological sort
Topological sortTopological sort
Topological sort
 

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

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

写像 12 相
写像 12 相写像 12 相
写像 12 相
 
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しいACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
 
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
 
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFSACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
 
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
 
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取りACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
 
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
 
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探しACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
 
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
 

Recently uploaded

Recently uploaded (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
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の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
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の勉強会で発表されたものです。
 

立命合宿2016Day3:F問題

  • 2. 問題概要です。 l  きっちりした数列を、以下で定義する。 -  長さN(偶数)で、1 ≦ i ≦ N/2 について Si = SN-i+1 である。 l  Q個のクエリ(l,r,x)が来る。 -  Sl, …, Srにxを加算する。 l  クエリごとに、以下の問に応える。 -  数列がきっちりしているか。 l  主な制約は、以下の通りである。 -  2 ≦ N ≦ 500000かつ1 ≦ Q ≦ 100000である。
  • 3. サンプルである。 0 1 2 3 4 4 3 2 1 00 1 2 3 4 4 3 2 1 0 0 1 2 3 4 4 3 2 1 0 +0 きっちり である。 +5 0 6 7 8 4 4 3 2 1 0 きっちり でない。 +10 0 6 7 8 4 4 13 12 11 0 +5 0 11 12 13 4 4 13 12 11 0 きっちり でない。 きっちり である。
  • 4. 想定解法である。 l  きっちりの見方を変える。 -  1 ≦ i ≦ N/2 について Si = SN-i+1である。 →1 ≦ i ≦ N/2 について Si – SN-i+1 = 0 (差分が0)である。 l  範囲更新可能な区間木、または平方分割で差分を管理する。 -  セグ木なら O(logN)で、平方分割なら O(√N)でできる。 l  Si – SN-i+1 がすべて0であるかどうかを、高速に応答する。 -  mini=1,...,N/2{Si – SN-i+1}とmaxi=1,...,N/2{Si – SN-i+1}が、共に0ならばよい。 -  つまり、Range Minimum (Maximum) Query になる。 l  区間木なら O(logN)で、平方分割なら O(√N)でできる。 l  全体の計算量は、以下のとおりである。 -  区間木ならO(Q logN)で、平方分割ならO(Q√N)である。
  • 5. 想定解法の概略図である。 2 4 5 4 2 2 3 4 4 2 0 0 1 1 0 クエリ (l,r,x) = (5,8,1) 0 0 1 1 0 折り返して差分を取 る。 +1 -1 折り返しに気をつけて、 区間更新を高速に行う。 -1 0 0 1 1 -2 max = 1, min = -2 → いいえ。 0 0 0 0 0 max = 0, min = 0 → はい。 Range Minimum (Maximum) Query に高速に応えられればよ 数列がきっちりしている か。 ←このように考えると楽かもしれな い。