SlideShare a Scribd company logo
カードの取り合い
maroon
問題概要
• 二人の人が、相手のカードを何枚か取る、という操作を交互
に行う
• 初期状態と、カードをとる枚数を変化させるクエリが来る
• それぞれのクエリ後について、最終的な状態を求める
小課題1
• 愚直にシミュレートします
考察
• 初期状態で、場にあるカードの枚数の合計をSとする
• カードをとる操作において、JOI君のカードの枚数xは、
x=min(x+Ai,S) または x=max(x-Ai,0)
という変化をする
考察
• i が奇数の時 Bi=Ai、偶数の時Bi=-Ai とおくと、カードをとる
操作における、JOI君のカードの枚数xの変化は、
x=min(max(x+Bi,0),S) となる。
小課題2
• ※この小課題は満点解法とは関係ありません
小課題2
• 初期状態が変化しないので、当然Sも変化しない
• すると、x=min(max(x+Bi,0),S)という関数は、O(1)でマージす
ることができる。
• よってSegmentTreeにこれを乗せると、O(QlogN)で解ける
小課題3
• Sが変化するので、x=min(max(x+Bi,0),S)のマージが大変
• Sによらない性質を考える
小課題3
• まず簡単のために、x=x+Bi として、その変化を折れ線グラ
フにしてみる
小課題3
• x=min(max(x+Bi,0),S)は、この折れ線の上下に壁がついて、
その壁を超えることができなくなったものだとみなせる
小課題3
• abs(Bi)≧abs(B{i+1})≦abs(B{i+2})なるiが存在するとき、
Bi=Bi+B{i+1}+B{i+2}として、B{i+1},B{i+2}を削除してよい
小課題3
• この操作を繰り返すと最終的には、abs(Bi)がある地点まで単
調増加し、その後単調減少する、という風になる
小課題3
• この折れ線の通る最高地点をTop,最低地点をBottomとする
• abs(Bi)が最大の線分は、TopとBottomを結んでいる
小課題3
• ある初期状態から始めて、折れ線が一度も壁にぶつからない
場合、最終状態は自明に求められる
小課題3
• ある初期状態から始めて、折れ線が壁にぶつかる場合、Top
かBottomの少なくとも一方に必ずぶつかる
小課題3
• よって、TopかBottomにぶつかった後だけ考えればよく、
ここではabs(Bi)が単調減少している
• abs(Bi)≧Sを満たしているところでは、必ず壁にぶつかる
• 逆に、abs(Bi)<Sを満たすところでは、abs(Bi)の単調性から、
必ず壁にぶつからない
小課題3
• よって、abs(Bi)<Sとなる最小のiを求めればよい
• abs(Bi)の単調性から、これは二分探索で求められる
• 一つの初期状態につきO(logN)で求められるので、
全体でO(QlogN)
小課題4
• 全部変化するのでもっと大変
• でも小課題3がわかれば簡単
小課題4
• クエリをsqrt(Q)個ごとにバケットに分ける。
• 一つのバケットの処理がO(N+Q)でできたらうれしい
小課題4
• あるバケット内で、カードを取る枚数が変化するものは精々
sqrt(Q)個なので、これについては愚直に処理してよい
• 残った、カードを取る枚数が変化しない部分を高速に処理し
たい
小課題4
• カードを取る枚数が変化しない部分は、小課題3と同じよう
に処理する
• カードを取る枚数が変化しない部分はsqrt(Q)個、初期状態が
sqrt(Q)個なので、合計でO(N+QlogN)でできそう
小課題4
• logを落としたい・・・落としたくない?
• logは二分探索でついてくるが、あらかじめ初期状態の方をS
でソートしておくと、ソート列をマージする要領で、二分探
索のlogが落ちる
• 一つのバケットがO(N+Q)で処理できたので、
全体でO((N+Q)sqrt(Q))

More Related Content

More from 理玖 川崎

RNNで頑張ろう
RNNで頑張ろうRNNで頑張ろう
RNNで頑張ろう
理玖 川崎
 
ユークリッド最小全域木
ユークリッド最小全域木ユークリッド最小全域木
ユークリッド最小全域木
理玖 川崎
 
解説:ボス
解説:ボス解説:ボス
解説:ボス
理玖 川崎
 
解説:貢物
解説:貢物解説:貢物
解説:貢物
理玖 川崎
 
解説:エンブレム
解説:エンブレム解説:エンブレム
解説:エンブレム
理玖 川崎
 
線形識別によるパターン認識
線形識別によるパターン認識線形識別によるパターン認識
線形識別によるパターン認識
理玖 川崎
 
解説:サポーター
解説:サポーター解説:サポーター
解説:サポーター
理玖 川崎
 
解説:おおきな数を作った
解説:おおきな数を作った解説:おおきな数を作った
解説:おおきな数を作った
理玖 川崎
 

More from 理玖 川崎 (8)

RNNで頑張ろう
RNNで頑張ろうRNNで頑張ろう
RNNで頑張ろう
 
ユークリッド最小全域木
ユークリッド最小全域木ユークリッド最小全域木
ユークリッド最小全域木
 
解説:ボス
解説:ボス解説:ボス
解説:ボス
 
解説:貢物
解説:貢物解説:貢物
解説:貢物
 
解説:エンブレム
解説:エンブレム解説:エンブレム
解説:エンブレム
 
線形識別によるパターン認識
線形識別によるパターン認識線形識別によるパターン認識
線形識別によるパターン認識
 
解説:サポーター
解説:サポーター解説:サポーター
解説:サポーター
 
解説:おおきな数を作った
解説:おおきな数を作った解説:おおきな数を作った
解説:おおきな数を作った
 

Recently uploaded

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 

Recently uploaded (8)

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 

カードの取り合い