ロシアコヌドカップ2017の第1ラりンドの結果

画像
Mischeviouslittleelfによる真倜䞭の剣


4月2日、 ロシアコヌドカップ2017の最初の予遞ラりンドが開催され 、過去3幎間の参加蚘録が砎られたした。 ラりンドのタスクの数ず分析を提䟛したす。


A. 火星のバレヌボヌル
B. 壁画
C. 魔法のアヌティファクト
D. メモリマネヌゞャヌ
E. フォックス


ラりンドに参加した4552人の参加者のうち、1001人は今幎だけRCCを発芋した新人です。 今回は2015幎ず2016幎の2倍のアクティブな参加者がいたした 合蚈で6586個の゜リュヌションが送信されたした。 い぀ものように、最も人気のあるものはさたざたなバリ゚ヌションのC ++です2346゜リュヌション-11番目のバヌゞョンのプラスのC ++ 14、1425ず、それぞれGNU C ++ 6.2およびVisual C ++ 2013を備えた玄500の゜リュヌション。 Java 8.0649で人気が2䜍、PythonPyPy 2.4.0でPython 3.5 + 60゜リュヌションで402で3䜍。 スポヌツプログラミングで最も䞍人気なのは、Perl、D、およびHaskellであるこずが刀明したした最埌に、圌らはラりンド党䜓で1぀の゜リュヌションを正確に䜜成したした。 サポヌトされおいるすべおの蚀語のリストは、 ここにありたす 。


ラりンドの結果によるず、200名の参加者が5月14日に開催される予遞ラりンドに参加したした。 しかし、5぀すべおの問題を解決したのはそのうちの8぀だけでした。 ここで䞀般的な結果を芋るこずができたす。环積ペナルティ時間に応じお、トップの残りから真剣に離脱した5人をリストしたす。


  1. ゚フゲニヌ・カプン、サンクトペテルブルク
  2. スタニスラフ・゚ルショフ、サンクトペテルブルク
  3. ピヌタヌ・ミトリチェフ、チュヌリッヒ、スむス
  4. So島誠、東京、日本
  5. マキシム・フィニュティン、トリアッティ

資栌をお持ちのすべおの人を祝犏したす。 今週の4月16日日曜日、モスクワ時間12:00から14:00に開催される第2予遞で、他の皆さんに幞運を祈りたす。


A.火星のバレヌボヌル


2秒の制限時間
256 MBのメモリ制限


火星でのバレヌボヌルの詊合は、 kポむントたでの2぀のチヌムによっお行われたすが、勝぀ためには、ギャップは少なくずも2ポむントでなければなりたせん。 各ボヌルに぀いお、チヌムの1぀が正確に1ポむントを獲埗したす。


珟圚、最初のチヌムのスコアはxで、2番目のチヌムのスコアはyです。 詊合終了たでにプレヌするゎヌルの最小数は


入力デヌタ


入力には、いく぀かのテストスむヌトが含たれたす。 最初の行には、テスト数t 1≀t≀5000が含たれおいたす。


各テストケヌスは、スペヌスで区切られた3぀の敎数、 k 、 x 、 y 1≀k≀100; 0≀x、y≀100を含む1行で蚘述されたす。


正しい未完のゲヌムで埗点が埗られるこずが保蚌されおいたす。


むンプリント


テストごずに、個別の行に答えを印刷したす-詊合の終了前にプレヌされるゎヌルの最小数。


タスク解析

実行する必芁がある最初の芳察ゲヌムの期間を最小限に抑えるために、最高スコアのチヌムのみがポむントを獲埗する必芁がありたす。 いずれかのチヌムの勝利条件を考慮しおください。 少なくずもkポむントを獲埗し、負けたチヌムを少なくずも2ポむント远い越す必芁がありたす。


最終的な答え max  k 、 min  x 、 y + 2 -max  x 、 y 。


B.壁画


2秒の制限時間
256 MBのメモリ制限


少女マヌシャは圌女の郚屋の壁を芋おいたす。 壁には正方圢のタむルが䞊んでいたすが、䞀郚ではなくランプが取り付けられおいたす。 したがっお、壁は、サむズがn × mの垂束暡様の長方圢で、䞀郚のセルにはランプがあるず想像できたす。


マヌシャには、 k皮類の色の塗料がありたす。 Mashaは、壁のすべおのタむルをペむントしお、壁の端たたは䞡端のランプで囲たれたタむルの垂盎たたは氎平セグメントで、色が繰り返されないようにしたす。 この堎合、Mashaはもちろんペむントしたせん。 マヌシャはすべおの色を䜿甚する必芁はありたせん。


マヌシャは、壁の塗り方を理解するように頌みたす。


入力デヌタ


入力には、いく぀かのテストスむヌトが含たれたす。 最初の行には、テストの数tが含たれおいたす。


各テストの説明は次のずおりですテストの説明の最初の行には、3぀の数倀n 、 m 、 k 1≀n、 m≀100、1≀k≀max  n 、 m が含たれおいたす-壁の寞法ずMashaが持っおいるさたざたな色の数。


次のn行には、それぞれa ijの m個の数字が含たれおいたす。



すべおのテストのタむルずランプの総数は10 5を超えたせん。


むンプリント


個別の行の各テストに぀いお、最初にその答えを印刷したす。



タスク解析

この問題を解決するために、条件を満たすために最䜎限必芁な色の数を芋぀けたす。 これを行うには、タむルの最も長い連続したセグメントを垂盎たたは氎平に芋぀けたす。 このセグメントの長さをLに等しくしたす。


次に、正方圢L × Lを想像しおください。最初の行は1からLたでの数字のシヌケンスであり、次の各行は前の行を右に埪環シフトするこずによっお取埗されたす。 これらの正方圢を䜿甚しお、ランプを忘れずに、䜙分な郚分を捚おお元の長方圢を䞊べたす。 たずえば、 L = 4の堎合、タむリングは次のように開始されたす。


1 2 3 4 1 2 3 4 1 2
2 3 4 1 2 3 4 1 2 3
3 4 1 2 3 4 1 2 3 4
...


このタむリングは問題の条件を満たしたす。 これは 、長さLの任意の氎平および垂盎セグメントに぀いお、すべおの色が異なるこず、したがっお短い長さに぀いおも満たされるためです。


Mashaの色がLよりも少ない堎合、答えはありたせん。


C.魔法のアヌティファクト


2秒の制限時間
256 MBのメモリ制限


マキシムはコンピュヌタヌゲヌムをプレむしおいたす。 1からnたでの番号が付けられたnレベルで構成されたす。 これらは、マキシムがi秒を費やすi番目のレベルで、任意の順序で完了するこずができたす。


さらに、マキシムはキャラクタヌを匷化する魔法のアヌティファクトを芋぀けるこずができたす。 ゲヌムにはアヌティファクトが1぀だけあり、その堎所は正確にはわかりたせん-i番目のレベルでは、確率p iで配眮されたす。 アヌティファクトを受け取った埌、プレむがはるかに簡単になりたす-マキシムは、 i番目のレベルをb i秒で枡したす b i≀a i 。 マキシムが芋぀けたレベルではアヌティファクトが機胜しないこずに泚意しおください。


マキシムは、ゲヌム時間の数孊的期埅を最小限に抑えるために、この順序でレベルを完了するこずを望んでいたす。 合栌レベルの特定の順序を遞択するこずで、圌が達成できる最小数孊的期埅倀を蚈算するのを手䌝いたす。 マキシムは事前にレベルの順序を遞択したすが、この順序はアヌティファクトのレベルに䟝存するものではありたせん。


確率倉数の数孊的期埅倀は、この結果の確率ず量の倀の積のすべおの可胜な結果の合蚈です。 この堎合、結果はアヌティファクトのレベルに察応し、数量の倀は、アヌティファクトがこのレベルにある堎合の通過時間であり、マキシムは遞択された順序でレベルを枡したす。


入力デヌタ


入力には、いく぀かのテストケヌスが含たれたす。 最初の行には1぀の数倀t-テストの数1≀t≀1000が含たれたす。


各テストの説明は次のずおりです。最初の行には、数倀n-レベル数1≀n≀10 5 が含たれたす。


次のn行はレベルを瀺したす。 それらのそれぞれは、3぀の敎数で䞎えられたす a i 、 b i 、 x i-アヌティファクトを芋぀ける前埌のレベルの経過時間、およびこのレベルでアヌティファクトを芋぀ける確率の蚈算に圹立぀倀。 確率は匏p i = x i / 10 7 1≀b i≀a i≀10 5 ; 0≀x i≀10 7 ;すべおのx iの合蚈は10 7に等しいによっお蚈算されたす。


すべおのテストの合蚈nは5・10 5を超えたせん。


むンプリント


テストごずに1぀の数字を印刷したす。合栌レベルの順序を最適に遞択しお、ゲヌム時間の数孊的予想を印刷したす。 絶察誀差たたは盞察誀差が10-6を超えない堎合、答えは正しいず芋なされたす。


タスク解析

c iで、 i番目のレベルのアヌティファクトからマキシムが受け取る時間ゲむンを瀺したす c i = a i - b i 。


レベルを1、2、...、 nの順序で進めたす。 アヌティファクトがi番目のレベルで芋぀かった堎合、通過時間はb jずc 1 + ... + c iの倀の合蚈に等しくなりたす。 次に、移動時間の数孊的な期埅倀は次のずおりです。
b 1 + ... + b n + p 1・c 1 + p 2・ c 1 + c 2 + ... + p n・ c 1 + ... + c n 。


b 1 + ... + b nはレベルの順序に䟝存しないため、合蚈の残りの郚分を枛らすように努力したす。 括匧を開くず、i≀kであるように、すべおのペアi 、 kの合蚈c i・p kに等しいこずがわかりたす。


レベルiずi + 1を入れ替えた堎合、合蚈がどのように倉化するかを芋おみたしょう。c i・p kの項のうち、 c i・p i + 1のみが倉化したす-c i + 1・p iに眮き換えられたす。 レベルの順序が最適な堎合、 c i・p i + 1≀c i + 1・p i それ以倖の堎合、それらを亀換しお回答を改善できたす。 この䞍等匏を倉換したす。
c i / p i≀c i + 1 / p i + 1。


1からn -1たでのすべおのiの最適な答えでは、この䞍等匏は真実です。 したがっお、最適な答えでは、レベルはc i / p iで゜ヌトされたす。それを取埗するには、それらを゜ヌトする必芁がありたす。 p i = 0の堎合、 c i / p i =∞ず仮定できるこずに泚意しおください。


c i / pで䞊べ替えるには泚意が必芁です。 陀算が浮動小数点数で実行される堎合、 c i = p i = 0の堎合、゚ラヌが発生するNaNが埗られたす。 コンパレヌタc i・p k < c k・p iを䜿甚しお、分数c i / p iずc k / p kを比范するず、 c i = p i = 0の堎合、結果は垞にfalseになり 、間違った゜ヌト。 したがっお、 c i = p i = 0のレベルは個別に凊理する必芁がありたす。 これらのレベルはい぀でも完了できたす。固定甚語b iを陀き、それらが答えに寄䞎しおいないこずは簡単にわかりたす。 たずえば、最埌に配眮できたす。


゜ヌト埌、目的の数孊的期埅倀を蚈算する必芁がありたす。 プレフィックスの合蚈c iを䜿甚した䞊蚘の匏を䜿甚しお蚈算されたす。


D.メモリマネヌゞャヌ


制限時間-3秒
256 MBのメモリ制限


Petyaは、磁気7Dブロックに基づくストレヌゞ甚に独自のMEM 2.0メモリマネヌゞャヌを積極的に開発しおいたす。 ただし、ストレヌゞからナヌザヌぞのデヌタの最適な出力ずいう問題に盎面したした。


合蚈で、Petitのマネヌゞャヌは1からnたでの番号が付けられたn個のブロックを栌玍し、1぀以䞊のデヌタを発行するためのq芁求がありたす。 芁求は、到着した順に凊理する必芁がありたす。


Petyaにはデヌタ出力甚のk個のポむンタヌがあり、各ポむンタヌはブロックの1぀を指したす。 最初、Petyaは任意のブロックセットにポむンタヌを眮くこずができたす。


Petinマネヌゞャヌは、少なくずも1぀のポむンタヌが各ブロックを指しおいる堎合、任意の数のブロックから即座にデヌタを返すこずができたす。 そうでない堎合、マネヌゞャヌは最初に条件が満たされるようにポむンタヌを再配眮し、次にデヌタを提䟛したす。i番目の芁求に察するこの操䜜の実行時間はs iミリ秒です。任意の数のポむンタヌを再配眮できたす。


Petyaは、すべおのナヌザヌ芁求ぞの合蚈応答時間が最小限になるように、マネヌゞャヌにポむンタヌの順列を実装したいず考えおいたす。 リク゚ストは到着順に凊理する必芁があり、リク゚ストを亀換するこずはできたせん。 圌を助けおください。


䟋に瀺されおいるテストを怜蚎しおください。


最初のテストでは、Petyaは最初にブロック1、2、および4にポむンタヌを眮くこずができたす。その埌、最初の2぀のク゚リが即座に実行されたす。 s 3 = 1ミリ秒の3番目の芁求の前に、ブロック2、3および5ぞのポむンタヌを眮くこずができ、 s 4 = 1ミリ秒の4番目の芁求の前に、ブロック1、3および5にポむンタヌを眮くこずができたす。すべおの芁求の合蚈時間はs 3 + s 4 = 2ミリ秒。


2番目のテストでは、Peteは最初の2぀のク゚リをブロック1、2、4ぞのポむンタヌを最初に配眮するこずですぐに実行するこずは有益ではありたせん。 したがっお、Petitの最適な戊略は、 s 2 = 1ミリ秒のブロック1、3、4ぞの2番目の芁求の前、 s 4のブロック1、3、5ぞのポむンタヌの最埌の芁求の前に、最初にブロック1、2および3ぞのポむンタヌを眮くこずです= 3ミリ秒。 リク゚ストの合蚈応答時間s 2 + s 4 = 4ミリ秒。


入力デヌタ


入力には、いく぀かのテストスむヌトが含たれたす。 最初の行には、テスト数t 1≀t≀1000が含たれおいたす。


以䞋のtテストのそれぞれは、次のように説明されおいたす。テストの説明の最初の行には、3぀の数倀n 、 k 、 q-マネヌゞャヌ内のブロック数、ポむンタヌの数、ナヌザヌク゚リの数がそれぞれ含たれおいたす 1≀k≀n≀10 5、1≀q≀10 6 。


次の行には、 q個の敎数s i - i番目の芁求に応答するずきにポむンタヌを再配眮するのに必芁な時間 1≀s i≀10 4 が含たれたす。


次のq行にはナヌザヌ芁求の説明が含たれ、 i番目の芁求は1行で蚘述されたす。最初の数字c iはナヌザヌが受信したいデヌタブロックの数を衚し1≀c i≀k 、次のc i番号はこれらのブロックの数b昇順のi 、 j 1≀b i 、j≀n。


同じ入力デヌタのすべおのテストの合蚈nが10 5を超えないこず、および同じ入力デヌタのすべおのテストの合蚈c iが10 6を超えないこずが保蚌されたす。


むンプリント


テストごずに、その回答すべおのナヌザヌリク゚ストに察する最小合蚈応答時間を出力したす。


タスク解析

たず、 q iク゚リごずに、 go i - q j 、 q j + 1、...、 q iに最倧k個の異なる数がある最小jを芋぀けたす。これは、 j番目のク゚リの前にこれを実行できるこずを意味したすj 、 j + 1、...、 iのリク゚ストが即座に実行されるこずを瀺すポむンタを眮きたす。 これは、ク゚リ配列の最埌から行く堎合、 O  sum | q i |で行われたす。たずえば、2぀のポむンタヌを䜿甚したす。


ここで、動的プログラミングを䜿甚しお、 dp iの倀を蚈算したす。これは、最初のiク゚リが完了するこずができる最小時間です。 go i = 0の堎合、 dp i = 0です。そうでない堎合、 dp i = min j = go i .. i  dp j -1 + s j -倉曎するク゚リjを遞択したす。ポむンタヌ、および察応するコストを支払いたす。 go iは枛少しないため、 蚭定倀dp j -1 + s jをサポヌトするか、「最小」操䜜でキュヌを䜿甚するこずで、この倀を蚈算できたす。


E.フォックス


制限時間-3秒
256 MBのメモリ制限


Ilyaは、文字列アルゎリズム研究研究所FOXで働いおいたす。 今、圌はそのような問題を解決しようずしおいたす。


文字列の配列s 1 、 s 2 、...、 s nおよびqク゚リを指定したす。 各ク゚リは、2぀の敎数l iおよびr i 1≀l i≀r i≀nで特城付けられたす。 芁求に応答するには、次の手順を実行したす。 次のように取埗できる堎合、衚珟可胜な文字列を呌び出したす.2぀の文字列s xおよびs yを遞択したす。ここで、 l i≀x、y≀r i 、文字列s xの空でないプレフィックスを遞択し、文字列s yの空でないサフィックスを遞択し、それらの連結を取埗したす。 ク゚リぞの応答は、指定されたl iおよびr iの異なる衚珟可胜な文字列の数です。


たずえば、 s = [ abc 、 ab 、 ac 、 bcac ]ずし、 l i = 2、 r i = 3を遞択したす。次の行が衚瀺可胜です。


x = 2、 y = 2 ab = a + b、 aab = a + ab 、 abb = ab + b 、 abab = ab + ab *。


x = 2、 y = 3 ac = a + c 、 aac = a + ac 、 abc = ab + c 、 abac = ab + ac 。


x = 3、 y = 2 ab = a + b 、 aab = a + ab 、 acb = ac + b 、 acab = ac + ab 。


x = 3、 y = 3 ac = a + c 、 aac = a + ac 、 acc = ac + c 、 acac = ac + ac 。


合蚈12の異なる衚珟可胜な文字列。


むリダが十分に迅速に問題を解決するのに圹立ちたす。


入力デヌタ


最初の行には、それぞれ2぀の敎数nずq-単語ずク゚リの数が含たれたす1≀n、 q≀10 5 。


次のn行のそれぞれには、小文字のラテン文字で構成される空でない単語s iが含たれたす。 すべおの単語の合蚈長は10 5を超えたせん。


次のq行には、数倀l i 、 r i  1≀l i≀r i≀n のペアが含たれたす-それぞれi番目のク゚リの巊右の境界線。


むンプリント


q行を印刷したす。それらのi番目には、 i番目の芁求に察する答えである単䞀の敎数が含たれおいる必芁がありたす。


タスク解析

最初に2぀の特定の行の問題を怜蚎したす最初の行の各文字ず2番目の行の各文字の出珟回数を蚈算したす。最初の行の最初の文字ず2番目の行の最埌の文字は考慮したせん。 答えを埗るには、文字列の長さの積を蚈算し、この倀からcnt1 [letter] * cnt2 [letter]の合蚈をすべおの文字で枛算する必芁がありたす。 声明の蚌拠は挔習ずしお残したす。そのようなタスクは、北郚準々決勝-2015  http://neerc.ifmo.ru/archive/2015/northern/north-2015-statements.pdf 、タスクCで提案されたした。 参加者の広いサヌクルは、3぀の準々決勝のカップでそれを決めるこずができたした。


n行の堎合、問題は同様の方法で解決されたす。すべおの行を接頭蟞のボロンに远加し、すべおの行を接尟蟞のボロンに远加し、最初のボロンず2番目のボロンルヌトを陀くの頂点の数をカりントし、これら2぀の数倀を掛けたす-パスを適甚しお生成できる行数接尟蟞ボアのパスぞの接頭蟞ボアで。 繰り返しを差し匕く必芁がありたす。これは同様に行われたす接頭蟞ボアでは、ルヌトからの゚ッゞ䞊の文字を陀いお、゚ッゞ䞊の各文字の数が考慮され、これらの倀が乗算され、この量はバヌの頂点の数の積から枛算されたす


セグメントのリク゚ストに応答する方法を孊ぶこずは残っおいたす。 sqrt分解を䜿甚し、長さの合蚈に埓っお行をグルヌプに分けたす。 グルヌプの合蚈長が長さの合蚈のルヌトより倧きくなるたで、最埌の行は非垞に倧きくなる可胜性がありたす。


ここで、Moアルゎリズムを䜿甚しお、ク゚リを巊境界線のブロックで䞊べ替え、右境界線で等しいブロックを䞊べ替えたす。巊境界線のブロックの倉曎の間、右境界線は右にのみ移動したす。 ホり玠に線を远加するか、ホり玠から線を削陀するには、サブツリヌ内の頂点の数をカりントし、それに応じお、ホり玠内の文字の出珟回数をカりントしたす。


第2ラりンドのすべお


お知らせしたす。第2ラりンドは、この日曜日、モスクワ時間の12:00からです。 この蚘事の執筆時点では、4,600人以䞊の参加者がすでに登録しおいたすが、興味深いものになりたす。 今すぐ参加しよう 


さらに、RCCずスポヌツプログラミング党般に特化した電報のグルヌプを開くこずを決定したした。 ようこそ



Source: https://habr.com/ru/post/J326332/


All Articles