すべおのタスクずYandex.Algorithmの結果の分析

ほんの数時間前、オヌプンプログラミングチャンピオンシップYandex.Algorithm 2013はサンクトペテルブルクで終了したした。 競争は、各100分のオンラむンラりンドで構成され、84か囜の3,000人を超えるプログラマヌが勝利を目指しお戊いたした。 3回の予遞ラりンドの結果によるず、䞊䜍25䜍が決勝に達したした。

画像

ファむナリストは、6぀のアルゎリズムの問​​題を100分で解決する必芁がありたした。 最初の堎所は、NRU ITMO Gennady KorotkevichツヌリストのチヌムでACM ICPC 2013の最近の勝者が撮圱したもので、ペナルティタむムが最も短くなりたした。 2䜍は、NRU ITMOのYevgeny Kapun卒業生です。 3䜍は、台湟の代衚であるShi Bixunが獲埗したした。

いく぀かの囜からの専門家が、遞手暩のタスクの準備に参加したしたロシア、ベラルヌシ、ポヌランド、日本。 䞻なタスクコンパむラは、ダンデックスミンスクオフィスの開発者でしたすべおの䌚瀟の埓業員ず同様に、コンテストぞの参加は蚱可されおいたせんでした。 すべおの著者に、Yandex.Algorithmの参加者のために準備したタスクを解析するように䟝頌したした。 ずころで、誰もすべおの問題を解決するこずはできたせんでした。最良の結果-3぀の解決された問題-は3人の参加者のみを瀺したした。

画像

タスクA.カット


問題ず構文解析ダクブ・パチョッキ、ワルシャワ倧孊

入力ファむル名 stdin
出力ファむル名 stdout
制限時間 8秒
メモリ制限 512 MB

通垞、チヌムプログラミングコンペティションでは、倧孊の正匏名称に加えお、略称が䞎えられたす。 ある非垞に暩嚁のある競技䌚では、チヌムは2぀のチヌムのうち、蟞曞線集的に最小の略称を持぀チヌムがビュッフェの近くに座るように座りたす。 これを念頭に眮いお、各倧孊のトレヌナヌは結果が蟞曞線集的に最小限になるように倧孊の名前を短くしようず努力しおいたす。

倧孊名の空でない郚分文字列を単語ずしお指定したす。これは文字で構成され、この郚分文字列の盎前の蚘号も盎埌の蚘号も文字ではありたせん。 倧孊名の略語が単語の接尟蟞をドット蚘号 "。"で眮き換えるこずが蚱可されおいる堎合。

この堎合

䞀般的に倧孊の名前を短くしないで、そのたたにしおおくこずは蚱可されおいたす。
名前を比范するず、すべおの非ラテン文字が削陀され、すべおの倧文字のラテン文字が察応する小文字に眮き換えられ、結果の文字列が互いに比范されたす。

入力ファむルの圢匏。 入力ファむルの最初の行には、倧孊の名前が含たれおいたす。 名前には、倧文字ず小文字のラテン文字、スペヌス、コンマ "、"およびハむフン "-"を含めるこずができたす。
行がスペヌスで始たり、スペヌスで終了せず、2぀の連続したスペヌスが含たれないこずが保蚌されたす。 入力ファむルの文字数スペヌスを含むは10 6を超えたせん。

出力ファむル圢匏。 倧孊の蟞曞線集䞊最小の略称を印刷したす。 元の名前ず比范しお、文字の倧文字ず非文字蚘号の䜍眮を倉曎するこずは犁止されおいたす。 蟞曞線集的に最小の堎合
いく぀かの略語、任意を印刷したす。

暙準暙準
ワルシャワ倧孊ナニ Wの
サンクトペテルブルク囜立研究倧孊、機械および光孊セむン。 Pe。 な リサヌチナニ I、M、Oの
むリノむ倧孊アヌバナシャンペヌン校ナニ I. of U.-C
、カヌネギヌ-、-メロン-、-、--倧孊-、Ca .--、-MelloN-、-、-U.-
りドムルティアン倧孊Udm。 U.


ご泚意 「ナニ。 文字列「uniofw」は、他のバリ゚ヌションに察応する文字列よりも蟞曞匏に小さいため、「W。of of」は「ワルシャワ倧孊」の蟞曞線集䞊最小の略語です。たずえば、「uow」、「uniofwa」、「universityofwarsaw」です。

問題Aの解決策

入力を解析した埌、タスクは次のように芁玄されたす。

合蚈長N の n行s 1 、... s nに぀いお 、 次のような空でない接頭蟞p 1 、...、 p nを芋぀ける

p 1 p 2 ... p n

蟞曞線集的に最小です。


文字列p k + 1 p k + 2 ... p nが蟞曞線集的に最小であるようなp k + 1 、...、 p nをすでに芋぀けたず仮定したす。 このp k + 1 、...、 p nの遞択は、 p 1 、...、 p kの任意の遞択に最適であるこずに泚意しおください。 これは、2぀の文字列tずt 'でt < t'が真である堎合、任意の行wで wt < wt 'であるずいう事実に基づいおいたす。

䞎えられたp k + 1 、....、 p nから最適なプレフィックスp kを効果的に芋぀ける方法
t = p k + 1 p k + 2 ... p nを入力したす。 文字列ptが蟞曞的に最小限になるように、文字列s kの空でない接頭蟞pを芋぀ける必芁がありたす。

ハッシュを䜿甚しおpt 文字列ずp't文字列を効果的に比范できるアルゎリズムがありたす。

ランダム化されたハッシュを䜿甚するず、アルゎリズムはlog N に察しお非垞に高い確率で機胜したす。
p kを芋぀けるには、|を実行する必芁がありたす。 s k | -1 p kを蚈算する時間| s k | log N を䞎えるそのような比范。 すべおのs kを合蚈するず、アルゎリズムの実行時間 N log N が埗られたす。

問題B. Anyutaず「ビット単䜍のAND」


問題ず分析の著者は、アレクセむ・トルスティコフずロヌマ・りドビチェンコです。
入力ファむル名 stdin
出力ファむル名 stdout
制限時間 2秒
メモリ制限 512 MB

Little Anyutaは、数倀のビット挔算を怜蚎するこずにしたした。 今日、圌女は「ビット単䜍AND」挔算を研究したした。 ビット単䜍のANDは、オペランドのバむナリ衚珟の同じ䜍眮にあるビットの各ペアに論理ANDを適甚するこずず同じですバむナリ衚珟では先行れロを䜿甚できたす。 ぀たり、オペランドの察応するビットが䞡方ずも1である堎合、結果のバむナリビットは1です。 ペアの少なくずも1぀のビットが0の堎合、結果のバむナリビットは0です。

驚いたこずに、ちょうど今日、Anyutaの䞡芪は仕事から2組の数字を持ち蟌んだ。 お父さんは仕事からP番号で構成されるセットAを持っおきお、母はM番号で構成されるセットBを持っおきたした。 セット内のすべおの数倀は、負ではなく、65535を超えない敎数でした。さらに、セット内の番号には1から始たる番号が付けられおいたした。

うれしそうなアニヌはすぐに、研究した操䜜をこれらのセットの数字に適甚し始めたした。 圌女の䞡芪を怒らせないために、圌女はビットのAndをそれらの数字のペアに適甚したした。そのうちの1぀は私の父のセットのもので、もう1぀は私の母のセットのものでした。

アニヌはコンピュヌティングに情熱を傟けおいたしたが、圌女の䞡芪は嚘がXを獲埗する方法はいく぀あるのだろうかず考えたした。 異なる方法の数は、1≀i≀P、1≀j≀M 、A i AND B j = Xずなるように、異なるペアi、jの数ずしお蚈算できたす。 Anyutaの䞡芪は嚘よりも奜奇心が匷いため、1぀の数字Xだけでなく、すぐにKの数字X iに぀いお必芁な数のりェむを芋぀けたいず考えおいたす。 芪を助けお

入力ファむルの圢匏。 最初の行には、スペヌスで区切られた3぀の敎数P 、 M 、およびK 1≀P、 M 、K≀10 5 が含たれおいたす-それぞれ、父芪のセットの数字の数、母芪のセットの数字の数、および芪が関心のある数字の数。 2行目には、スペヌスで区切られたP個の数字A iが含たれおいたす-お父さんが持っおきた数字のセット。 3行目には、スペヌスで区切られたM個の数字B iが含たれおいたす。ママが持っおきた数字のセットです。 4行目には、スペヌスで区切られたK個の数倀X iが含たれたす。これは、必芁なペアの数を蚈算する必芁がある䞀連の数倀です。 セットA 、 B 、およびXのすべおの数倀は敎数で、負ではなく、65535を超えたせん。

出力ファむル圢匏。 それぞれ1぀の数字を含むK行を印刷したす。 i番目の行の数は、条件に蚘述された芏則に埓っおセットAずBからの数にビット単䜍のAND挔算を適甚するこずにより数X iを取埗する方法の数ず等しくなければなりたせん。

䟋
暙準暙準
4 4 4
1 2 3 4
1 2 3 4
1 2 3 4
3
3
1
1
1 2 3
0
1 2
0 1 2
2
0
0


問題Bの解決策

2 16たでの非負の敎数で構成される2぀の配列AずBが䞎えられたす。 たた、最倧2 16たでの数倀を含むQク゚リの配列も提䟛されたす。 各ク゚リkに぀いお、 Ai AND Bj = Qkずなるようなペア i 、 j の数を指定する必芁がありたす。

各配列の芁玠の数は最倧100kですただし、2 16を超えないこずがすぐにわかりたすが、同じものを凊理する必芁があるため、最倧100kの配列がありたす。

すべおのリク゚ストに぀いおすぐに回答を怜蚎したす。

以䞋の衚蚘f  x 、 S を導入したす-xからのすべおのビットを含むシヌケンスSからの芁玠のセットず、堎合によっおはそれ以䞊぀たり、 x  y = xのような数倀y 。
a∈f  x 、 A およびb∈f x 、 B の堎合、  a  b  x = x 、すなわち a  bにはxず同じビットがすべお含たれたすが、いく぀かの远加ビットが含たれおいる可胜性がありたす。

g  x をA i  B j = xずなるようなむンデックスのペアの数 i 、 j ずするず、 。 したがっお、むンデックスの可胜なすべおのペアから、 A i  B j > xのペアを枛算したす。

Bを入力の数倀の最倧ビット数ずしたす。 その埌| f  x 、 S | すべおのxに぀いお時間O| S | + 3 B で蚈算できたす xのビットのすべおのサブセットを列挙する方法を䜿甚。 g  x の倀は時間O3 B で蚈算できたすが、この堎合、ビットxのすべおのサブセットではなく、すべおのスヌパヌセットの列挙を䜿甚する必芁がありたす。

説明されおいる゜リュヌションの合蚈動䜜時間はO P + M + K + 3 B  B = 16です。

画像

問題C.ミツバチ


問題の著者-jakubrJakub Radoszewski
入力ファむル名 stdin
出力ファむル名 stdout
制限時間 5秒
メモリ制限 512 MB

逊蜂家バむタザヌルの趣味は、ミツバチによっおもたらされた蜂蜜によっお蜂の巣に圢䜜られる人物の研究です。 このような各図は、偎面1の六角圢セルの接続セットを衚し、内郚には「穎」はありたせん。

より正匏には、 「穎」のない図圢を通垞の六角圢グリッドの単䜍六角圢のサブセットず呌び、それに属する任意の2぀の単䜍六角圢がパスで接続され、そのすべおの六角圢もこのセットに属し、任意の2぀の隣接するこのパスの意味で六角圢が共通の偎面を持぀、このサブセットに属さない2぀のナニット六角圢は、このセットに属するセルの1぀ではなく、パス2぀の隣接するこのパスの意味の六角圢によっお接続されおいたす 長老には共通の偎面がありたす。

バむタザヌルは、可胜な境界倀ずそのようなパタヌンのセル数の完党なリストを䜜成したいず考えおいたす。 圌は、䞎えられた2぀の数字nずpを䜿甚しお、境界がpであるn個のセルで構成される「穎」のない図圢が存圚するかどうかを調べるプログラムを䜜成するように䟝頌したした。

たずえば、次の図では、 n = 4、 p = 18です。

画像

入力ファむルの圢匏。 入力の最初の行には、テストケヌスの数T 1≀T≀1000が含たれたす。 次のT行はそれぞれテスト䟋を瀺し、2぀の敎数nずp 1≀n、p≀1000-図の必芁な面積ず呚囲長を含みたす。

出力ファむル圢匏 。 各テストケヌスに぀いお、入力ファむルに衚瀺される順序で、個別の行に回答を出力したす。 指定されたパラメヌタヌを持぀図が存圚しない堎合は、「NO」を出力したす。 それ以倖の堎合は、「L」ず「R」で構成されるp文字の文字列を出力したす。これは、図の呚囲時蚈回りたたは反時蚈回りに沿ったパスを定矩したす。「L」は巊折を瀺し、「R」は右を瀺したす。

正解が耇数ある堎合は、それらのいずれかを印刷したす。

暙準暙準
3
4 18
3 18
3 12
RLRRRRLRLRLRRRRRRLRL
いや
LRRRLRRRLRRR


問題Cの解決策

課題は、六角圢の栌子に倚角圢を構築するこずです。
n個のナニットセルずp蟺で構成されるか、これらのパラメヌタヌを持぀ポリゎンが存圚しないこずを確認しおください。

セルの数nを固定し、 p蟺を持぀ポリゎンが存圚するようにpの可胜な倀を調べたす。 明らかに、 pは偶数でなければなりたせん。

たた、 pが4 n + 2行のn個のセルで構成され、蟺に接するポリゎンの呚囲。このポリゎンをチェヌンず呌びたすより倧きくするこずはできたせん。

䞀方、最小境界のポリゎンは䞀皮の倧きな六角圢であるこずは、䞀般的な考慮事項から明らかです。 正匏には、その境界は次の匏で䞎えられたす 。

これらの制限は必芁なだけでなく、十分であるこずがわかりたす。

構築アルゎリズムは次のずおりです。n個のセルで構成され、最倧境界を持぀チェヌンから始めたす。 さらに、倚角圢の呚囲がpより倧きい間、倚角圢の「尟」から1぀のセルを削陀し、このセルを「頭」に远加しお、倧きな六角圢をレむダヌごずに構築したす図の矢印1を参照。



この移動により、境界線が2、4、たたは6枛少したす。そのため、最終的に境界線を2たたは4増加させる必芁がありたすたずえば、図の矢印2に埓っお「尟」からセルを移動したす。

䞀郚の実装では、 nの小さい倀の堎合ず、特定のnの境界が最小倀に近い堎合のケヌスを個別に分析する必芁がありたす。

画像

問題D.アニヌずキュヌブ


問題ず分析の著者はRoman Udovichenkoです。

入力ファむル名 stdin
出力ファむル名 stdout
制限時間 2秒
メモリ制限 512 MB

リトルアニヌはキュヌブで遊ぶのが倧奜きです。 圌女は1からNたでの番号が付けられた行に配眮されたN個のポゞションがあり、キュヌブからタワヌを構築するのが奜きです。
タワヌずは、いく぀かの立方䜓が重なり合っおいるこずです。 塔の高さは、その䞭の立方䜓の数です。 タワヌ番号は、このタワヌが建蚭されおいる䜍眮番号に察応しおいたす。

最初は、すべおのポゞションが空です。 毎分、次のこずが起こりたす。
  1. Anyutaは、 N -1から1たでの数字の䜍眮を順番に調べたす。
  2. 任意の䜍眮iにキュヌブがあり、タワヌの高さが䜍眮i + 1のタワヌの高さ以䞊である堎合、Anyutaはi番目の䜍眮から i + 1番目にダむを1぀シフトしたす。
  3. Anyutaはすべおのポゞションを確認した埌、ポゞション番号1のタワヌにダむスを1぀远加したす。


䟋 。 䜍眮の数をN = 6ずし、塔の高さを5 0 1 3 4 1 1からNたでの巊から右ぞの番号付けずしたす。 その埌、次の数分で次のこずが起こりたす。
  1. Anyutaは䜍眮5を芋たすその䞭の塔の高さは4で、次の䜍眮の塔の高さは1です。Anyutaは䜍眮5から䜍眮6に1぀のダむスを移動したす。塔の高さは5 0 1 3 3 2になりたす。
  2. Anyutaは䜍眮4を芋るその䞭の塔の高さは3であり、次の䜍眮の塔の高さは3である。Anyutaは䜍眮4から䜍眮5に1぀のダむスを移す。塔の高さは5 0 1 2 4 2になる 。
  3. 䜍眮3から䜍眮4たでのAnyutaは、䜍眮4のタワヌの高さが䜍眮3のタワヌの高さよりも倧きいため、キュヌブを転送したせん。
  4. 䜍眮2から䜍眮3たで、Anyutaはダむスを転送したせん。䜍眮2にはダむスがないためです。
  5. 最埌に、䜍眮1から䜍眮2たで、Anyutaは1぀のダむスを転送したす。 塔の高さは4 1 1 2 4 2に等しくなりたす。
  6. これらのアクションの埌、Anyutaは䜍眮番号1にキュヌブを1぀远加し、タワヌの高さは5 1 1 2 4 2に等しくなりたす。



䞊蚘の䟋でタワヌの高さを1分で倉曎する

か぀お、アニヌはプレヌにうんざりしおいたので、䞀定の数分埌に特定の䜍眮にいく぀のキュヌブがあるかを蚈算するこずにしたした。 Anyutaはただ小さく、キュヌブがたくさんあるので、圌女はあなたに助けを求めたした。
より正匏には、「 B i分埌にS iからF iたでの数字の塔の合蚈にいく぀のキュヌブがあるか」などのQク゚リに答える必芁がありたす。 芁求は独立しおいたす。各芁求では、最初はすべおの䜍眮が空であるず芋なされ、その埌i> B i分が経過したす。

入力ファむルの圢匏 。 入力の最初の行には、2぀の敎数NずQ 2≀N≀10 18、1≀Q≀100 000-タワヌの䜍眮の数ず芁求の数がそれぞれ含たれおいたす。 次のQ行のそれぞれには、3぀の敎数S i 、 F i 、およびB i 1≀S i≀F i≀N 、1≀B i≀10 18 が含たれおいたす-芁求の開始䜍眮ず終了䜍眮、および経過埌の分数パンゞヌアクションの始たり。

出力ファむル圢匏 。 ク゚リごずに1行、Q行を印刷したす。 各行に1぀の数字を印刷したす-リク゚ストぞの回答。 入力に衚瀺される順序で芁求に応答したす。

䟋
暙準暙準
10 3
1 1 1
1 10 100
10 10 11
1
100
2
1,000,000,000,000 2
1 1234 412412314
100000000000 999999999999
1000000000010
1234
900000000006


問題Dの解決策

たず、キュヌブがどのように䜍眮を移動するかを理解する必芁がありたす。 たずえば、 N = 5の堎合を考えたす。

最初の5分間で、各䜍眮に1぀のキュヌブが衚瀺され、タワヌの高さが[1、1、1、1、1]になるたで、キュヌブは䜍眮番号1から䜍眮Nたで1぀ず぀「クリヌプ」したす。
6分目に、立方䜓は4番目の䜍眮から5番目に移動し、巊偎の立方䜓は1぀の䜍眮に右に移動し、䜍眮番号1に新しい立方䜓[1、1、1、1、2]が衚瀺されたす。
7分目に、キュヌブはそれぞれ䜍眮3,2,1から䜍眮4,3,2にのみ移動し、高さは[1、1、1、2、2]になりたす。

8分で、キュヌブは䜍眮1〜4から移動したす[1、1、1、2、3]。

シミュレヌションを続けるず、以䞋が埗られたす。

さらに4分埌、塔の高さは等しくなりたす[1、2、3、4、5]。 さらに5分埌、高さは[2、3、4、5、6]になり、さらに5〜-[3、4、5、6、7]になりたす。

したがっお、次のパタヌンに気付くこずは難しくありたせん。
  1. 最初のN分では、塔の高さは[1、...、1、0、...、0]です。
  2. さらに、塔の高さの圢匏は[1、...、1、2、3、...、 x ]、たたは[1、...、1、2、3、...、 k -1、 kのいずれかです 。 k 、 k + 1、...、 x ];
  3. 埌 塔の高さの始たりから数分埌の圢匏は[1、2、3、...、 N -1、 N ]です。
  4. その埌、1぀のサむコロがすべおのタワヌに远加されたす。

䞊蚘を考えるず、各芁求に答えるために、たず塔の高さの皮類を蚈算し、次に数列に関連するいく぀かの簡単な数匏を適甚する必芁がありたす。



タスクE.数孊マゞック


タスクずレむバヌの䜜者はオレグ・クリステンコです
入力ファむル名 stdin
出力ファむル名 stdout
制限時間 2秒
メモリ制限 512 MB

か぀おノァシャは数孊オリンピアヌドの準備をしおいたしたが、眠りに萜ちたした。 Vasyaは、次のように蚀っおDavid Blaineを倢芋たした。

「今、数孊の魔法を瀺したす。 ここを芋おください私はボヌド䞊に1より倧きく2 63より小さいN個の正の敎数を曞いおいたす。 これらの番号の䞀郚は繰り返されたす。少なくずも1぀はシリヌズの他の番号ず同じです。 それらの䞋で、ボヌド䞊に、1より倧きく2 63より小さい䞀連のK < N正の敎数を曞き蟌みたす。これらの敎数のいく぀かも繰り返されたす。 䞡方のセットの数倀を乗算したす... 2番目のセットの数倀の積は、最初のセットの数倀の積よりも正確に1倧きくなりたす。

そしお今、䞊段の数字の繰り返しをいく぀か削陀したす。䞊段にある数字のセットは同じたたですが、シリヌズの少なくずも1぀の芁玠を消去したす。 䞀番䞋の行でも同じこずを繰り返したす...繰り返したすが、行の1぀の数字が完党になくなったわけではなく、䞀郚の数字が少なくなっおいたす。 繰り返したすが、セットを乗算したす...そしお、2番目のセットの数倀の積は、1番目のセットの数倀の積よりも正確に1倧きいこずがわかりたす。 マゞック」

Vasyaは目を芚たしたが、 Nしか芚えおいなかった。 圌が焊点を取り戻すのを助けおください。

入力ファむルの圢匏 。 入力ファむルの最初の行には、単䞀の敎数N 2≀N≀100が含たれおいたす。これは、David Blaineによっお最初に曞き蟌たれたセット内の数字の数です。

出力ファむル圢匏 。 最初の行では、David Blaineが最初に曞いたセットを印刷したす。2番目の行-3番目ず4番目の行の䞋に曞かれた行-Davidによる削陀埌のこれらのセットのバリアント。 各セット内の数倀は、降順で䞊べ替える必芁があり、1より倧きく、2 63-1を超えおはなりたせん。

条件ず制限を満たすセットがない堎合は、代わりに「Impossible」ずいう単語を1぀出力したす。 そのようなセットが耇数ある堎合は、それらのいずれかを印刷したす。

暙準暙準
2䞍可胜
32 2 2
3 3
2
3


解析問題E

N = 2の堎合、解はありたせん K < Nなので、1぀の数倀が䞋郚に曞き蟌たれ、倍数を越えるこずは䞍可胜です。 N = 3の堎合、解は8、9、2、3{222}、{33}、{2}、{3}であり、この解が䞀意であるこずを瀺すこずができたす。 N = 4の堎合、解はありたせん。 蚌明は分析の最埌に䞎えられたす。

N≥5の解を構築したす。

N > 4の堎合、数倀22 N -3 -1および2 N -1 2 N -3 -1をbおよびaずしお䜿甚したす。
明らかに、それらは特定の2の数ず2 N -3 -1の積ずしお衚すこずができ、 aはN因子の積ずしお衚され、 aはbで陀算されたす。 a +1ずb +1の条件をチェックしたす。 a + 1 =2 N -2-2 + 1 = 2 N -2-1 、およびb + 1 = 2 N -2 2 N -2-2 + 1 =2 N -2  2- 2 * 2 N -2 + 1 =2 N -2-1  2 、぀たりa + 1 = b +1 2ずなるため、
問題の条件を満たす2぀ず1぀の数字のセットをそれぞれ取埗したす。

5≀N≀65の堎合、この方法で生成された回答は自動的に適切です。

さらに、集合q 1 、...、 q kがN = kおよびq k = r 1・r 2の問題の解である堎合、集合q 1 、...、 q k-1 、 r 1 、 r 2は、 N = k + 1の問題の解決策です bの展開の数倀{ q k }は、数倀r 1ずr 2の積ずしお単玔に衚したす。 同様に、因子の1぀を2぀の小さい因子の積に分解するず、ペア  a +1 、  b +1も正しいペアになりたす。

したがっお、 2 N -3-1を2 63-1を超えない係数に分解し、 N + 1からN + D-1の数の同じ解から埗ようずしたす。Dは2 Nの玠数の数です。 -3-1 。 N > 65の堎合でも、 2 2 N -2-1を2 63-1を超えない係数に分解する必芁がありたす。

Nの剰䜙が0モゞュロ6の堎合、 N -2は2で陀算され、 N -3は3で陀算されるため、 2 N -2-1は2  N -2/ 2-1 2  N -2/ 2 + 1および2 N -3-1- 2  N -3/ 3-1 2 2 N -6/ 3 + 2  N -3/ 3 + 1 。 N≀95の堎合、䞡方の係数が2 63-1を超えないこずがわかりたす。 その堎合、その埌のすべおの分解も問題の芁件を満たしたす。

Nの剰䜙が5モゞュロ6の堎合、 N -2は3で割り切れ、 N -3は 2で割り切れたす。同様の分解を䜿甚したす。

したがっお、 N = 632 60 -1は倚数の芁因に分解される必芁があり、 2 61 -1は問題の芁件を満たしたすで開始し、96を超えないすべおのNを反埩凊理し、6で割るず0たたは5になりたす前の段萜で説明した方法での2 N -3-1の最初の因数分解その埌、各芁因<<ストップ>>に展開、およびこの方法に埓っお、 2 N -2-1を2぀の芁因に因数分解したす。 さらに、セットa + 1の因子Kの数は4に等しくなり数の2乗は2぀の数の積の2乗になりたす、条件K < Nが満たされたす。列挙の結果、次のようになりたす。



したがっお、アルゎリズムはすべおのN≀100の解を芋぀けたす。

N = 4の解の䞍可胜性の蚌明

N = 4なので、問題の条件により、 a + 1は3぀以䞋の芁因に分解されたす。 䜕かを消すには、少なくずも2぀を繰り返す必芁がありたす。 たた、問題の条件により、 aはbで陀算されたす。぀たり、 a = x b 、 x > 1です。

たず、 a + 1のすべおのセットオプションおよびb + 1の察応するセットを分析したす。

  1. u 2 、 〜u ;
  2. u 3 、 〜u ;
  3. uv 2 、 uv ;
  4. u 3 、 u 2 。


ケヌス3では、 a + 1 = uv 2です。 それからb + 1 = uv ; x b + 1 = uv 2 、枛算uv  v -1= b  x -1 。 uvずbは互いに玠であるため、 v -1はbで割り切れたす。v > 1の堎合、 v -1 = y b≥b nobr>、v≥b + 1です。 u > 1 なので 、 uv > v≥b +です。 論争。

この匕数ではuvは䜿甚されなかったため、ケヌスa + 1 = u 3およびb + 1 = u 2が自動的に考慮されたす。

ケヌス1 u 2 、 〜u および2 u 3 、 〜u  は残りたす。 それらに぀いおは、aの4぀の因子のセットずbの察応するセットのオプションを怜蚎したす。

I. a = x 2 y z 、 b = x y z ;

II。 a = x 2 y 2 、 b = x y 2 ;

III。 a = x 3 y 、 b = x 2 y ;

IV。 a = x 4 、 b = x 3 ;

V. a = x 2 y 2 、 b = x y ;

VI。 a = x 4 、 b = x 2 ;

VII。 a = x 3 y 、 b = x y ;

Viii。 a = x 4 、 b = x 。

オプションIIからIVは、オプションIからそれぞれz = y 、 z = x 、およびz = y = xを代入するこずにより取埗されたす。 同様に、オプションVIはオプションVの特殊なケヌスです。

オプションIで 、 y zをtに眮き換えたす 。

1.x 2 t + 1 = v 2 、 x t + 1 = v 、whence x 2 t + 1 = x 2 t 2 + 2 x t +1。すべおの項が正であり、 x 2 t 2 > x 2 t  t > 1であるため、右偎が巊偎より倧きくなりたす。

2.x 2 t + 1 = v 3 、 x t + 1 = v 。 同様の括匧の眮換ず拡匵により、 x 2 t = x ^ 3 t 3 + 3 x 2 t 2 + 3 x tを取埗したす。すべおの項は正で、 x 2 t < x 3 t 3です。

オプションV

1.x 2 y 2 + 1 = v 2 。 敎数x 、 y 、 v > 1の堎合、すぐには発生したせん。

2.x 2 y 2 + 1 = v 3 、 x y + 1 = v 。 それらを眮き換えお削枛するず、合蚈 x y  3 + 2 x y  2 + 3 x yは0になりたす。これはx 、 y > 1では䞍可胜です。

オプションVII

1.x 3 y + 1 = v 2 、 x y + 1 = v、 x 3 y + 1 = x 2 y 2 + 2 x y + 1 、次にx y  x 2 - x y = 2ずしお曞き換える。 2がx yで陀算され、 x > 1およびy > 1の堎合は陀算できないこずがわかりたす。

2.x 3 y + 1 = v 3 、 x y + 1 = v 。 代わりに、 x 3 y = x 3 y 3 + ... ドットは明らかに正の数を瀺したすを取埗したす。これはy > 1では䞍可胜です。

オプションVIII

x 4 + 1をx + 1で陀算したす。ただし、 x 4 + 1 = x + 1 x -1 x 2 + 1+ 2 、぀たり2をx + 1で陀算したす。これは矛盟しおいたすx > 1になるように。

すべおのケヌスを調べたしたが、どこでも矛盟が生じたした。぀たり、 N = 4の堎合、解決策はありたせん。

問題F.カバのシマりマずストラむプ


タスクず論文の著者はrng58副島真
入力ファむル名 stdin
出力ファむル名 stdout
制限時間 2秒
メモリ制限 512 MB

ヒッポシマりマは10 18個のストリップを持ち、0〜10 18-1の連続した敎数で番号が付けられおいたす。時間0では、番号5⋅10 17のストラむプのみが黒で、残りは癜です。 時間 t  t > 0で、ストラむプの色は次のルヌルを満たしたす。


時間tでの10 9 + 7を法ずするシマりマの可胜な異なる色の数を蚈算したす。 少なくずも1぀のストリップの色が異なる堎合、2぀のシマりマの着色ペヌゞは異なるず芋なされたす。

入力ファむルの圢匏 。 入力の最初で唯䞀の行には、スペヌスで区切られた2぀の敎数tずD1≀t≀10 9、1≀D≀50が含たれおいたす。

出力ファむル圢匏 。 単䞀の敎数-時間tで可胜な色の数を10 9 + 7で割った䜙り

䟋

暙準暙準
5 136
2 31849


タスクFの分析

察称性の考慮から、シマりマの色の数はその右半分の色の数の2乗であるこずは明らかです。 したがっお、シマりマの右半分のみを怜蚎したす。 単玔化するために、ストリップの番号を次のように倉曎したす。500,000,000,000,000,000,000+xth xthずしお番号を付けたす。

: , t , . :

0, A .

:

.

, t A .

f ( a 1 , a 2 ,..., a k ) — ,
A ={ a 1 , a 2 ,..., a k }.

{ a 1 , a 2 ,..., a k } , :


f ( a 1 , a 2 ,..., a k ) = 2 a 1 -1 + a 1 + a 2 -D-1 + a 2 + a 3 - D -1 +... .

, f ( a 1 , a 2 ,..., a k ) ( k ≀ T ).

dp [ t ][ a ] ( t ≀ T, a ≀ D ) — f ( a 1 , a 2 ,..., a t-1 , a).

:



1 + dp [1][ D ] +
 + dp [ T ][ D ], O(TD) .

, . v t — ( dp [ t ][0],
, dp [ t ][ D ]) . , v t+1 = v t · A t ( A —
( D +1) × ( D +1)).

v 0 ⋅ ( A + A 2 +
 + A T ) , .

— O( D 3 ⋅ log T ).

画像

. ACM ICPC 2013 (Niyaz Nigmatullin) (mikhailOK), Facebook Hacker Cup, Google Code Jam . 2011, (Petr), - VK Cup 2012 (s-quark) .

, , , , , , . — Google, «» Facebook.

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


All Articles