ブルーブリッジカップの長年にわたるトピックコラムです。更新され、前年度からの実際の質問と回答が公開されます。友達を歓迎して私に注意を払ってください。あなたの好きなものと注意が私にとって最高の動機です!!!
毎日1つの本当の質問を更新するので、お楽しみに
目次
質問1:ネチズンの年齢
トピックの説明
新しい友達がネチズンに会いました。
年齢について尋ねられたとき、彼のネチズンは
「私の年齢は2桁の数字です。私は息子より27歳年上です。
私の年齢の2桁を入れ替えると、息子の年齢になります。」と
計算してください。ネチズンの年齢には、いくつの状況が考えられますか?
注意:30歳は可能性の1つです。
考えられる状況の数を記入してください。
トピック分析
トピックコード
質問2:バースデーキャンドル
タイトルの説明
ある人は、ある年から毎年誕生日会を開いており、そのたびに年齢と同じ数のろうそくを吹き消しています。
今数えて、彼は合計236本のろうそくを吹き消しました。
すみません、彼は何歳で誕生日パーティーを始めましたか?
彼が誕生日パーティーを始めた年齢を記入してください。
トピック分析
トピックコード
質問3:四角に記入してください
トピックの説明
次のように10グリッド
(表示に問題がある場合は、[図1.jpg]も参照してください)
0から9までの数字を入力してください。要件:2つの連続した番号を隣接させることはできません。
(左と右、上と下、および対角線はすべて隣接していると見なされます)
可能な充填スキームはいくつありますか?
プラン数を表す整数を入力してください。
トピック分析
トピックコード
4番目の質問:クイックソート
トピックの説明
並べ替えは、さまざまな状況でよく使用されます。
クイックソートは、非常に一般的に使用されている効率的なアルゴリズムです。
アイデアは次のとおりです。最初に「ルーラー」を選択し、
それを使用してキュー全体をふるいに
かけ、左側の要素がそれより大きくなく、右側の要素がそれより小さくないことを確認します。
このように、ソートの問題は2つのサブインターバルに分割されます。
次に、サブインターバルを個別にソートします。
次のコードは実装です。下線部分の欠落しているコードを分析して入力してください。
#include <stdio.h>
void swap(int a[], int i, int j)
{
int t = a[i];
a[i] = a[j];
a[j] = t;
}
int partition(int a[], int p, int r)
{
int i = p;
int j = r + 1;
int x = a[p];
while(1){
while(i<r && a[++i]<x);
while(a[--j]>x);
if(i>=j) break;
swap(a,i,j);
}
______________________;
return j;
}
void quicksort(int a[], int p, int r)
{
if(p<r){
int q = partition(a,p,r);
quicksort(a,p,q-1);
quicksort(a,q+1,r);
}
}
int main()
{
int i;
int a[] = {
5,13,6,24,2,8,19,27,6,12,1,17};
int N = 12;
quicksort(a, 0, N-1);
for(i=0; i<N; i++) printf("%d ", a[i]);
printf("\n");
return 0;
}
トピック分析
トピックコード
質問5:最後のものを削除する
タイトルの説明
次のコードは、整数のバイナリ表現の右端の連続する1を0に
変更します。最後の桁が0の場合、元の数値は変更されません。
コードでテストデータを使用すると、次のように出力されます
。0000000000000000000000000110011100000000000000000000000001100000
00000000000000000000000000001100 00000000000000000000000000001100
プログラムを注意深く読み、下線部分に不足しているコードを記入してください。
#include <stdio.h>
void f(int x)
{
int i;
for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1);
printf(" ");
x = _______________________;
for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1);
printf("\n");
}
int main()
{
f(103);
f(12);
return 0;
}
トピック分析
トピックコード
6番目の質問:冬の宿題
トピックの説明
今、小学校の数学の問題はそれほど楽しいものではありません。
この冬の宿題を見てください:
□+□=□□
-□=
□□×□=
□□÷□=□
(表示されない場合は【図1.jpg】をご参照ください)
各正方形は1から13までの特定の数を表しますが、繰り返すことはできません。
例:
6 + 7 = 13
9-8 = 1
3 * 4 = 12
10/2 = 5
そして:
7 + 6 = 13
9-8 = 1
3 * 4 = 12
10/2 = 5
2つの解決策ですら。(加算と乗算は可換法則の後の異なるスキームです)
いくつの解決策を見つけましたか?
プラン数を表す整数を入力してください。
トピック分析
トピックコード
質問7:切手を切る
タイトルの説明
[写真1.jpg]に示すように、12個の星座がつながった12個のスタンプがあります。
今、あなたはそれから5枚のシートを切り取らなければなりません、要件は接続されなければなりません。
(片隅を接続するだけでは接続とはみなされません)例えば
、[写真2.jpg]、[写真3.jpg]では、ピンク色で表示されている部分が修飾カットです。
さまざまなクリッピング方法がいくつあるかを計算してください。
プラン数を表す整数を入力してください。
トピック分析
トピックコード
質問8:4平方和
タイトルの説明
ラグランジアン定理としても知られる4つの平方和定理:
各正の整数は、最大4つの正の整数の2乗の合計として表すことができます。
0を含めると、4つの数値の2乗の合計として表すことができます。
例:
5 = 0 ^ 2 + 0 ^ 2 + 1 ^ 2 + 2 ^ 2
7 = 1 ^ 2 + 1 ^ 2 + 1 ^ 2 + 2 ^ 2
(^記号は電力を意味します)
与えられた正の整数に対して、二乗和の複数の表現が存在する可能性があります。
次の4つの数値を並べ替える必要があります:
0 <= a <= b <= c <= d
可能なすべての表現を、ジョイント主キーとしてa、b、c、dの昇順で並べ、最後に最初の表現を出力します。
プログラム入力は正の整数N(N <5000000)で
あり、4つの非負の整数を出力し、小さいものから大きいものへと並べ替え、スペースで区切る必要があります。
たとえば、入力:
5
、プログラムは出力する必要があります:
0 0 1 2
別の例として、入力:
12
、プログラムは出力する必要があります:
0 2 2 2
別の例として、入力:
773535
、プログラムは次のように出力する必要があります:
1 1 267 838
リソースの合意:
ピークメモリ消費
量<256MCPU消費量<3000ms
質問分析
質問コード
質問9:パスワードの紛失
タイトルは
、惑星Xの考古学者が多くの古代のコードを発見したことを説明しています。
これらのコードは、4つの植物A、B、C、およびDの種子で構成されるシーケンスです。
注意深く分析すると、これらのパスワード文字列は対称的である必要があることが明らかになりました(つまり、ミラー文字列と呼ばれるもの)。
年齢により、種子の多くが脱落し、鏡像特性を失う可能性があります。
あなたの仕事は次のとおりです。
現在表示されているパスワード文字列を指定して、現在の状態になる前に元の状態から削除する必要のあるシードの数を計算します。
現在表示されているパスワード文字列(長さが1000以下)
には、少なくともドロップされるシードの数を示す正の整数が必要であることを示す行を入力します。
たとえば、入力:
ABCBA
、プログラムは出力する必要があります:
0
別の例として、入力:
ABDCDCBABC
、プログラムは次のように出力する必要があります:
3
リソースの合意:
ピークメモリ消費量<256MCPU
消費量<1000ms
質問分析
質問コード
質問10:最大比率
タイトルは
、Mレベルの賞を受賞したPlanetXでの特定のグランプリについて説明しています。各レベルのボーナスは正の整数です。
また、隣接する2つのレベル間の比率は固定値です。
つまり、すべてのレベルのボーナス数は等比数列を構成します。例:等しい比率が3/2である
16,24,36,54
今、私たちはいくつかの勝者の賞数をランダムに調査しました。
これに基づいて可能な最大の比率を計算してください。
入力形式:
最初の行は数値N(0 <N <100)です。これは、次の行にN個の正の整数が含まれていることを意味します
。2番目の行には、スペースで区切られたN個の正の整数Xi(Xi <1 000 000 000 000)が含まれています。 。各整数は、調査対象の誰かのボーナスの額を表します
必要な出力:
A / Bの形式のスコアで、AとBが互いに素である必要があります。可能な最大のスケールファクターを表します
テストデータは、入力形式が正しく、最大比率が存在することを確認します。
たとえば、入力:
3
1250 200 32
プログラムは出力する必要があります:
25/4
別の例では、入力:
4
3125 32 32 200
プログラムは次のように出力する必要があります:
5/2
別の例として、次のように入力します
3
549755813888 524288 2
プログラムは出力する必要があります:
4/1
リソースの合意:
ピークメモリ消費
量<256MCPU消費量<3000ms
質問分析
質問コード