2013年第4回JavaグループAブルーブリッジカップ州大会本当の質問

ブルーブリッジカップの長年にわたるトピックコラムです。更新され、前年度からの実際の質問と回答が公開されます。友達を歓迎して私に注意を払ってください。あなたの好きなものと注意が私にとって最高の動機です!
毎日1つの本当の質問を更新するので、お楽しみに

Lanqiaoカップの過去の論文と詳細な回答


質問1:世紀末の週

タイトルの説明
1999年12月31日が世界の終わりであると主張するカルトがありました。もちろん、噂は自滅的です。将来のある世紀の終わりの12月31日が月曜日だと言う人もいます...
興味深いことに、世紀の終わりのどの年の12月31日も月曜日になることはできません!!
だから、「噂のメーカー「再び日曜日に変更されました... 1999年の12月31日は金曜日です。質問してもいいですか:将来の最も近い世紀(つまりxx99)のどれが12月31日の日曜日(つまり日曜日)になるでしょうか?
(これだけ4つの整数を書くなど、12月31日追加情報を書き込みません)年にお答えください
主題分析
コードと題し



質問2:中国の活性化

トピックの説明
XiaoMingは、学校の楽しいスポーツ大会に参加しました。その1つは、ジャンプグリッドです。以下に示すように、地面にいくつかのグリッドを描き、各グリッドに単語を書きます:( p1.jpgも参照)
私から始めて、私から始めて
、活性化から
始めて、活性化から
始めて、中国の
競争の活性化から始めて、最初に左上隅に立つ「from」という単語が書かれているグリッドでは、隣接するグリッドに水平または垂直にジャンプできますが、斜めのグリッドやその他の位置にはジャンプできません。常に「华」という単語の最後にジャンプします。
スキップを要求されたルートは、「私から中国を活性化するために出発する」というフレーズを構成しているにすぎません。
XiaoMingが合計でいくつの可能なジャンプルートを計算するのを手伝ってください。
答えは整数です。ブラウザから直接数値を送信してください。
注:回答プロセスやその他の補足説明コンテンツを送信しないでください。
トピック分析
トピックコード



質問3:メルセンヌ素数

タイトルの説明
数値のすべての真の因子の合計がそれ自体に等しい場合、それは「完全数」または「完全数」と呼ばれます。例:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
早くもAD 300年以上前、ユークリッドは完全数を決定するための定理を与えました
。2^ n-1が素数の場合、2 ^(n-1)*(2 ^ n-1)は完全数。その中で、^は「パワー」演算を意味し、パワーの優先順位は4つの算術演算よりも高くなります。たとえば、2 ^ 3 = 8、2 * 2 ^ 3 = 16、2 ^ 3-1 = 7ですが、人はすぐにnが非常に大きい場合でも、多数が素数であるかどうかを判断するのは難しいことを発見しました。フランスの数学者メイソンの予想のため、私たちは次の形式の素数を呼ぶことに慣れています:2 ^ n-1:メルセンヌ素数。2013年2月の時点で、48個のメルセンヌ素数しか見つかりませんでした。新しく見つかったメルセンヌ素数は大きすぎて、一般的なプログラミングのアイデアで全体像を把握できないため、タスクの難易度を少し下げます。1963年、米国イリノイ大学で23番目のメルセンヌ素数nを記念します。 = 11213彼らが見つけた、「2 ^ 11213-1は素数です」という言葉は、発送されるすべての封筒に印刷されています。2 ^ 11213-1この数はすでに非常に大きい(3000桁を超える)ので、この素数の10進表現の最後の100桁を見つけるようにプログラムしてください。
トピック分析
トピックコード



4番目の質問:逆価格

タイトル説明
XiaoLiのストアは、他のストアの棚にあるサンプルTVを専門としています。サンプルTVストアと呼ぶことができます。価格は4桁(つまり、数千元)です。価格を明確で便利にするために、Xiao Liは、色付きのペンで数字を描いている限り、デジタルチューブに似た既製の値札を使用しました(p1.jpgを参照)。この種の値札には特徴があり、一部の数字では、それを逆に見るのが合理的です。例:1 2 5 6 8 90は大丈夫です。このように、ブランドが逆さまにぶら下がっている場合、それは完全に別の価格に変わる可能性があります。逆方向に読みます。たとえば、1110 0を開始番号として使用できないため、元に戻すことはできません。ある日、ついに悲劇が起こった。店員が誤って2つの値札を店に掛けました。そして、この2つの価格ブランドのテレビが販売されました!幸いなことに、価格差は大きくありません。一方の値札は200以上を失い、もう一方の値札は800以上を獲得しました。合計すると、さらに多くなりました。558元。
この情報に基づいて計算してください:お金を失った値札の正しい価格はいくらですか?
答えは4桁の整数です。ブラウザから直接番号を送信してください。
注:回答プロセスやその他の補足説明コンテンツを送信しないでください。
ここに画像の説明を挿入

トピック分析
トピックコード



5番目の質問:3つの部分でソート

タイトルの説明
クイックソート、ヒルソートなど、一般的なソートには多くの古典的なアルゴリズムがあります。
しかし、実際のアプリケーションでは、多くの場合、多かれ少なかれ特別な要件があります。これらの古典的なアルゴリズムを適用する必要はありません。実際の状況に基づいて、より優れたソリューションを構築できます。
たとえば、整数配列の数値を並べ替えて並べ替えます。
すべての負の数を左に、正の数を右に、0を中央に配置します。問題の特徴は、負の領域と正の領域で順序が必要ないことです。この機能を使用すると、1回の線形スキャンで戦闘を終了できます!!
次のプログラムはこの目標を達成しました。

	static void sort(int[] x)
	{
    
    
		int p = 0;
		int left = 0;
		int right = x.length-1;
		
		while(p<=right){
    
    
			if(x[p]<0){
    
    
				int t = x[left];
				x[left] = x[p];
				x[p] = t;
				left++;
				p++;
			}
			else if(x[p]>0){
    
    
				int t = x[right];
				x[right] = x[p];
				x[p] = t;
				right--;			
			}
			else{
    
    
				_________________________;  //代码填空位置
			}
		}
	}

配列が指定されている場合:
25,18、-2,0,16、-5,33,21,0,19、-16,25、-3,0
、並べ替え後:
-3、-2、-16、 -5,0,0,0,21,19,33,25,16,18,25

コードロジックを分析し、下線でコードを推測して、ウェブページから送信してください。
注:不足しているコードのみを回答として使用し、余分なコード、記号、説明テキストは入力しないでください。
トピック分析
トピックコード



質問6:逆ポーランド記法

タイトル説明
通常の式は中置式と呼ばれます。演算子は中央にあり、主に人間が読むためのものであり、機械で解くのは便利ではありません。次に例を示します。3+ 5 *(2 + 6)-1さらに、操作の順序を変更するために括弧を使用する必要がある場合がよくあります。逆に、逆ポーランド式(接頭辞式)で表すと、上記の式は次のようになります。-+ 3 * 5 + 2 6 1
括弧は不要で、再帰的に簡単に解くことができます。
簡単にするために、次のように仮定します
。1.3つの演算子+-*があります
。2。各オペランドは10未満の負でない整数です。
次のプログラムは、逆ポーランド表現文字列を評価します。
戻り値は配列です。最初の要素は評価結果を表し、2番目の要素は解析した文字数を表します。

	static int[] evaluate(String x)
	{
    
    
		if(x.length()==0) return new int[] {
    
    0,0};
		
		char c = x.charAt(0);
		if(c>='0' && c<='9') return new int[] {
    
    c-'0',1};
		
		int[] v1 = evaluate(x.substring(1));
		int[] v2 = __________________________________________;  //填空位置
		
		int v = Integer.MAX_VALUE;
		if(c=='+') v = v1[0] + v2[0];
		if(c=='*') v = v1[0] * v2[0];
		if(c=='-') v = v1[0] - v2[0];
		
		return new int[] {
    
    v,1+v1[1]+v2[1]};
	}

コードロジックを分析し、下線でコードを推測して、Webから送信してください。
注:不足しているコードのみを回答として使用し、余分なコード、記号、説明テキストは入力しないでください。
トピック分析
トピックコード



質問7:間違ったチケット

タイトル説明
ある秘密関連ユニットが特定の種類の請求書を発行し、年末に回収する必要があります。
各チケットには一意のID番号があります。年間を通してすべての請求書のID番号は連続していますが、IDの開始番号はランダムに選択されます。スタッフの過失により、ID番号の入力時にエラーが発生し、IDの番号が不足し、別のIDが重複していました。あなたの仕事は、プログラミングを通して壊れた番号のIDと繰り返された番号のIDを見つけることです。最大数と最小数の間で壊れた数が発生することはないと想定します。プログラムは、最初に整数N(N <100)を入力して、データ行の数を示す必要があります。
次に、N行のデータを読み込みます。データの各行の長さはさまざまで、スペースで区切られた正の整数(100000以下)の数(100以下)です。各整数はID番号を表します。プログラムは、スペースで区切られた2つの整数mnを含む1行を出力する必要があります。
その中で、mは壊れたIDを表し、nは繰り返されるIDを表します。
例:
ユーザー入力:
2
5 6 8 11 9
10 12 9
次にプログラム出力:
7 9
別の例:
ユーザー入力:
6
164178108109180155 141 159 104 182 179 118 137 184 115 124 125 129 168 196
172 189 127 107 112 192 103 131 133 169 158
128 102 110 148 139 157 140 195 197
185 152 135 106 123 173 122 136 174 191 145 116 151 143 175 120 161134162190
149 138 142 146 199 126 165 156 153 193 144 166 170 121 171 132 101 194 187 188
198 111 119 113 130 176 154 177 120 117 150 114 183 186 181 100 163 160 167 147
プログラム出力:
105 120
リソース契約:
ピークメモリ消費量(仮想マシンを含む)
<64MCPU消費量<2000ms

要件に厳密に従って出力し、「入力してください...」のような余分なコンテンツを過剰に印刷しないでください。

すべてのコードは同じソースファイルに配置されます。デバッグに合格したら、ソースコードをコピーして送信します。
注:packageステートメントは使用しないでください。jdk1.6以降の機能は使用しないでください。
注:メインクラスの名前はMainである必要があります。そうでない場合、無効なコードとして処理されます。
トピック分析
トピックコード



質問8:混合数

タイトルの説明
100は混合番号として表すことができます:100 = 3 + 69258/714は次のように表すこともできます:100 = 82 + 3546/197注機能:混合番号では、番号1〜9は別々に1回だけ表示されます(0を含まない)。このような混合数の100の11の表現があります。質問の要件:
標準入力から正の整数N(N <1000 * 1000)を読み取ると、
プログラムは、混合数で表されるすべての数を繰り返さずに、1〜9の数の数を出力します。
注:すべての表現を出力する必要はありません。表現の数を数えるだけです。
例:
ユーザー入力:
100
プログラム出力:
11
別の例:
ユーザー入力:
105
プログラム出力:
6
リソース規則:
ピークメモリ消費量(仮想マシンを含む)<64M
CPU消費量<3000ms
必要に応じて厳密に出力し、過剰に印刷しないでください「入力してください...」のようなもの
すべてのコードは同じソースファイルに配置されます。デバッグに合格したら、ソースコードをコピーして送信します。
注:packageステートメントは使用しないでください。jdk1.6以降の機能は使用しないでください。
注:メインクラスの名前はMainである必要があります。そうでない場合、無効なコードとして処理されます。
トピック分析
トピックコード



質問9:グリッドをカットする

タイトルの説明
図p1.jpgに示すように、いくつかの整数は3 x3グリッドに入力されます。
写真の赤い線に沿ってカットし、2つの部分を取得しました。各部分の合計は60です。この質問の要件は、指定されたmxnグリッドの整数を2つの部分に分割して、これら2つの領域の数値の合計が等しくなるかどうかを判断するようにプログラムするように依頼することです。複数の解がある場合は、左上のグリッドを含む領域に含まれるグリッドの最小数を出力してください。分割できない場合は、0
を出力します。プログラムの入力および出力形式の要件:
プログラムは、最初にスペース(m、n <10)で区切られた2つの整数mnを読み取り
、テーブルの幅と高さを示します。
次はn行です。それぞれにm個の正の整数があり、スペースで区切ります。各整数は10000以下です。
プログラム出力:すべてのソリューションで、左上隅のパーティションに含まれる可能性のあるグリッドの最小数。
例:
ユーザー入力:
3 3
10 1 52
20 30 1
1 2 3
プログラム出力:
3
別の例:
ユーザー入力:
4 3
1 1 1 1
1 30 80 2
1 1 1 100
プログラム出力:
10
(p2。jpgを参照) )
リソース合意:
ピークメモリ消費量(仮想マシンを含む)<64M
CPU消費量<5000ms
要件に厳密に従って出力し、「入力してください...」のような余分なコンテンツを過剰に印刷しないでください。
すべてのコードは同じソースファイルに配置されます。デバッグに合格したら、ソースコードをコピーして送信します。
注:packageステートメントは使用しないでください。jdk1.6以降の機能は使用しないでください。
注:メインクラスの名前はMainである必要があります。そうでない場合、無効なコードとして処理されます。
ここに画像の説明を挿入

トピック分析
トピックコード



質問10:大臣の旅費

タイトル説明
ずっと前に、王国Tは繁栄していました。国をよりよく管理するために、王国は首都と王国の主要都市を結ぶために多数の高速道路を建設しました。T国の大臣は、お金を節約するために、首都から直接、または他の大都市を経由して間接的にどの大都市にも到達できるように、考えた上で優れた建設計画を策定しました。同時に、大都市を繰り返し通過しないと、首都から各大都市への計画は独特です。JはT国の重要な大臣です。彼は人々の感情を理解するために主要都市間をパトロールします。したがって、ある都市から別の都市へのノンストップは、Jが行う最も一般的なこととなっています。彼は都市間の旅費を保管するための財布を持っています。賢いJは、特定の都市で修理をやめない場合、連続した旅の間に費やす旅費は、彼が移動した距離に関連しており、x番目のキロメートルからx +1番目まで1キロメートル歩いていることを発見しました。キロメートル中(xは整数)、彼の旅費はx +10です。つまり、1キロ歩くのに11、2キロ歩くのに23かかります。J大臣が知りたかったのは、ある都市から出発して休憩せずに別の都市に到着したときに費やす可能性のある旅費の最大額はいくらですか。
入力形式:入力
の最初の行には、首都を含むT王国の
都市の数を表す整数nが含まれています。都市には、1から順に番号が付けられ、最初の都市が首都です。
次のn-1行は、国Tの高速道路を示しています(国Tの高速道路はn-1である必要があります)。
各行には3つの整数Pi、Qi、Diがあり、都市Piと都市Qiの間に高速道路があることを示します。長さはDiキロメートルです。
出力形式:
J大臣が道路で最も多く費やした金額を示す整数を出力します
サンプル入力:
5
1 2 2
1 3 1
2 4 5
2 5 4

サンプル出力:
135

説明の例:
大臣Jは、都市4から都市5への移動に135の通行料を費やします。

リソースの制約に基づいて、可能な限り大きなデータスケールをサポートすることを検討してください。

リソース合意:
ピークメモリ消費量(仮想マシンを含む)
<64MCPU消費量<5000ms

要件に厳密に従って出力し、「入力してください...」のような余分なコンテンツを過剰に印刷しないでください。

すべてのコードは同じソースファイルに配置されます。デバッグに合格したら、ソースコードをコピーして送信します。
注:packageステートメントは使用しないでください。jdk1.6以降の機能は使用しないでください。
注:メインクラスの名前はMainである必要があります。そうでない場合、無効なコードとして処理されます。
トピック分析
トピックコード



おすすめ

転載: blog.csdn.net/kiwi_berrys/article/details/111831810