2019年の第10回ブルーブリッジカップグループBのトピックに関する個人的な考え

空欄を埋める

最初の質問では、暴力とdfsは大丈夫です、20 ^ 5、人との位置が2つを超えないように注意してください。答えは490、5人は97、99、98、98、98です。

2番目の質問は10進数から26に変換することです。0を表す値が見つからないのは奇妙に感じますが、影響はそれほど大きくありません。答えは暴力的な計算でのBYQなので、気にしません。

第三题、dp [i] =(dp [i-1] + dp [i-2] + dp [i-3])%10000;

4番目の質問では、合計は2019年の3つの異なる数値であり、スキーム2と4の数は表示されません。それでも暴力、繰り返さないために、私はa∈[2019 / 3,2017]、b∈[1、a)を列挙し、c <b && c> 0と3つの数字がタイトルの要件を満たす場合、cは2019-abであり、解決策++を数え、答え40785を計算します。

5番目の質問では、emmソリューションは1種類しかないようです。したがって、dfsも機能します。
パスを記録するためにbfs +を使用しましたが、それは大物が言及した186と同じようです。

手順に関する質問

6番目の質問、ビット数を判断して合計し、次の質問。

7番目の質問、完全なバイナリツリー、そして順番にn = 2 ^ k-1を説明し、i∈[1、k]の場合、x∈[2は(i-1)乗、2はi乗-1 ] 1つのレベルであり、それを合計して結果を判断します。2つの注意点:①答えは否定的かもしれません②長い長い時間が必要です。

8番目の質問、2つの場合
①すべてが同じである場合、nを出力します(これは競争では予期されません)
。②違いがある場合、それは通常の算術シーケンスであり、順序でソートされ、隣接する項間の違いを計算し、gcdを取りますはい、アイテム数=(最後のアイテム-最初のアイテム)/許容値+1;

9番目の質問は、質問の意味がわかりません。いろいろな意見があります。自分の考えを話し、並べ替えて、mの数を引いて、次の数を足してください。OK、例は終わりです。それでおしまい。

10番目の質問、質問の意味はあなたにn個の数字を与えることです。無制限の数の操作を実行できます。操作はi∈[2、n-1]を取り、i + aiの両側を作成し、次にai- = 2aiを作成し、最終シーケンスの絶対値を尋ねます。最大数と最小数はいくつですか?
(個人的な考え)

最初に文を翻訳します。ai-= 2ai <=> ai = -ai;
データ範囲ai∈[0,1e9]、n範囲3e5、最悪の時間の複雑さもnlognであることを示します。これは、バイナリ回答に関連付けることができますが、必要です。 O(n)時間でチェックイン。

確認するには、最初にいくつかの数学的なことを計算する必要があります。
バイナリ回答の結果をmidに設定し、Aiの絶対値がmidより大きいと仮定します。次に、Aiの問題を解決し、Aiの絶対値を正の方向から減らす必要があると仮定します(逆方向も同様です)。 )、次の2つの方法があります
。①sgn(Ai + 1)= -sgn(Ai)の場合、Ai + 1を1回操作できます
。②sgn(Ai + 1 + Ai + 2)= -sgn(Ai)の場合、Ai + 1、Ai + 2、Ai + 1を操作できます。具体的な簡略化プロセスについては詳しく説明しませんが、変更後、Ai〜Ai +3は以下の状況になります。

愛+1 愛+2 愛+3
Ai + Ai + 1 + Ai + 2 -愛+2 -愛+1 Ai + Ai + 3 + 1 + Ai + 2

上記の2つの方法では、同じ方法で再度実行すると、変換を削除できることがわかります。これは、修正を行うのに役立ちます(詳細は後で説明します)。

上記は、少なくとも私の意見では、すでに一方向の変更方法をカバーすることができます。いくつかの質問があるかもしれませんが、私はそれらに一つずつ答えます:
Ⅰ。そのような変更の後、②の場合のように他の状況があるようです。現時点では、Ai + 1の変更は新しい状況ですが、検討してみませんか?
修正すると、Aiは再び小さくなります。現在、Aiの問題をよりよく解決するためです。絶対値が大きすぎるAiの問題を解決した後、影響を押し戻して、次の問題を検討することができます。これには、この方法が実行可能だと思う理由も含まれます。現在の方向で問題が解決しない場合は、現在の方向だけでは問題を解決できないことを意味します。反対方向にのみ変更できます。反対方向に変更が失敗した場合、解決策はありません;
Ⅱ。最後の質問を入力した後、それを忘れて、忘れて、考えて、もう一度やり直してください。この記事について質問がある場合は、私と個人的にチャットしてください。

公式の問題解決策はまだ出ていないので、実行可能だとしましょう:
Ⅰ。操作のステップから、②のステップは①を含み、最初に①を判断し、次に②を判断することができます;
Ⅱ。それを達成する方法は、最初に方向にスイープすることです。もう一度やり直して、正の方向(最後を含む)で削除できない値があり、反対方向でもう一度スキャンします。この時点でそれらの値を削除できない場合は、解決策がないことを意味します。それ以外の場合は、すべての値に到達して成功します。

上記の方法が妥当であれば、O(n)チェックが可能であることを意味しますが、もちろん定数の問題を解決する必要があるかもしれませんが、結局、評価機は良くないと感じています。

診察室のコード、、、、どうしたらいいかわからないので、解決策がまだ出ている間にベン・コニャックに質問から抜け出させてください。

再印刷が必要な場合は、ブロガーと個人的にチャットしてください。ありがとうございます。再印刷されたコンテンツのソースを示してください。

おすすめ

転載: blog.csdn.net/aiqiyizz/article/details/88785244