CSDNプログラミングコンテスト 33問

大会概要

CSDN プログラミング コンテスト 33:コンテストの詳細 (csdn.net)

競争ソリューション

トピック 1. 奇偶ソート

整数の配列が与えられた場合、配列の左側が奇数で右側が偶数になるように配列を並べ替えます (奇数と偶数の順序は、入力数値の順序に従って配置されます)。

第7回大会の原題。

多くの解決策があります。

解決策 1: 奇数に遭遇した場合は直接出力し、偶数に遭遇した場合はそれを保存し、最後に一様に出力します。

解決策 2: 奇数と偶数を 2 つのリストに格納し、最後にそれらをまとめて出力します。

解決策 3: 安定した並べ替えアルゴリズムを使用する (安定しているとは、アルゴリズムの結果が固定されていることを意味するのではなく、並べ替え時に要素の相対的な順序が変更されないことを意味します。たとえば、同じレベル 1 の 2 つの文字が異なる ID を持ち、安定したソートアルゴリズムを使用する場合、レベルでソートする場合、同じレベルの 2 つのロールの ID は、ソート後も元の順序ではなく元の順序を維持します。小さい方の ID を前に付けます)。バブルの並べ替えを魔法のように変更して、この質問を完了することができます。

解決策 4: 自分で掘り下げてみましょう。本当に多くの方法があり、アクティブな思考で多くの方法を思いつくことができます。

この質問には多くの解決策がありますが、ブロガーはより短い時間でこの質問に合格できるように、より単純な書き方を選択しました。

トピック 2. Xiaoyi が文字列を適応させる

文字列 str が与えられた場合、少なくとも str が回文になる文字数を追加します。

第8回大会の原題。

この質問の考え方は、古典的な文字列動的計画法の問題に多少似ていると思いますか?

そうです、古典的な LCS (longest common subsequence) 問題では、状態遷移方程式もこのようになります。

この問題では、元の文字列を文字列 1、反転した結果を文字列 2 として、LCS の結果を計算します。

最終的な答えは、文字列の長さから LCS の結果を引いたものです。

なぜこれが可能なのかについては、読者が自分で考えてください。理由は複雑ではありませんが、急に理解したくなったとき、悟りの感覚があります。

トピック 3. 会社の新しいテーブル

会社の特徴を強調するためです。n-ary テーブルがインストールされます。新しいテーブルの時刻は H:M であることがわかっています。時間の法的定義は、H<=23 && M<=59 です。時間を定義し、それらを順番に出力する方法はいくつありますか。-1 を出力する解が無限にある場合、出力 0 はありません。

第13回大会のオリジナルタイトル。

bool match (std::string str, int base) {
    int time [2] = {0, 0}, t = 0;
    for (int i = 0; i < str.length (); i++) {
        if (str [i] == ':') {
            t = 1;
            continue;
        }
        int x = (str [i] >= '0' && str [i] <= '9') ? (str [i] - '0') : (str [i] - 'A' + 10);
        if (x < base) time [t] = time [t] * base + x; else return false;
    }
    return time [0] < 24 && time [1] < 60;
}

最小の基数はバイナリです。時間の場合、最大値は基数 60 です。2~60まで順番にチェックし、条件にあった値を記録してください。すべての判定が終了した後、リストが空なら0を出力し、base60があれば-1(無数の解があることを示す)を出力し、そうでなければテスト結果を順番に出力します。

トピック4.宿を選ぶ

漓江のそばに n 軒の特徴的な旅館があり、その場所に応じて 1 から n までの番号が付けられています。各旅館は、特定の色 (0 から k-1 の整数で表される合計 k 種類) に従って装飾されています。また、各旅館には喫茶店があり、各喫茶店には独自の最低消費量があります。2 人の観光客が一緒に麗江に旅行しましたが、同じ色調が好きで、2 つの異なる旅館を試してみたいので、同じ色調の 2 つの旅館に住むことにしました。夕方、彼らはコーヒーを飲む喫茶店を選ぶ予定であり、その喫茶店は彼らが住んでいる2つの旅館の間に位置する必要があり(彼らが住んでいる旅館を含む)、喫茶店の最低消費量はpを超えてはならない.元。彼らは合計でいくつの宿泊施設があるかを知りたがっており、夜の少人数の集まりに最低消費額が p 元以下のコーヒー ショップを見つけることができることを保証できます。

第15回大会のオリジナルタイトル。

NOIPの元の質問は、コードが投稿するのが面倒で、自分で検索すると多くのコードを見つけることができます.

おすすめ

転載: blog.csdn.net/x1051496412/article/details/129319415