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

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

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


質問1:ガウスの日記

タイトル説明
偉大な数学者ガウスには良い習慣があります。とにかく日記をつけてください。
彼の日記には違いがあります。彼は年、月、日を記録せず、代わりに整数を使用しました。たとえば、4210以降、
人々は整数が日付であることを知り、その日は翌日であると言いました。ガウスが生まれました。これも良い習慣かもしれませんが、飼い主にいつも思い出させてくれます。1日が経過しましたが、どれだけの時間が無駄になっているのでしょうか。
ガウスは1777年4月30日に生まれました。
ガウスによって発見された重要な定理の日記には、5343と記されているため、1791年12月15日と計算できます。
ガウスが博士号を取得した日の日記には、8113と記され
ています。ガウスの博士号の日付を計算してください。
回答を送信するための形式は次のとおりです:yyyy-mm-dd、例:1980-03-21

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



質問2:排他的な平方数

タイトルの説明
シャオミンはぼんやりと203879番を見つめています。
結局のところ、203879 * 203879 = 41566646641
これの魔法は何ですか?注意してください。203879は6桁の数字であり、それぞれの数字の数字は異なり、正方形の後のすべての数字を構成する数字はありません。
このような特徴を持つ6桁の数字が他にもありますので、ぜひご覧ください!
フィルタリング要件を要約します。1。6
つの正の整数
2.各桁の数値が異なり
ます3.平方数の各桁に元の数値の構成桁が含まれていません
答えは6桁の正の整数です。
トピック分析
トピックコード



質問3:中国の活性化

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



4番目の質問:逆価格

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

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



質問5:接頭辞の判断

タイトルの説明
次のコードは、needle_startが指す文字列がhaystack_startが指す文字列のプレフィックスであるかどうかを判別し、そうでない場合はNULLを返します。
例:「abcd1234」にはプレフィックスとして「abc」が含まれています

char* prefix(char* haystack_start, char* needle_start)
{
    
    
	char* haystack = haystack_start;
	char* needle = needle_start;

	
	while(*haystack && *needle){
    
    
		if(______________________________) return NULL;  //填空位置
	}
	
	if(*needle) return NULL;
	
	return haystack_start;
}

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



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

タイトル説明
通常の式は中置式と呼ばれます。演算子は中央にあり、主に人間が読むためのものであり、機械で解くのは便利ではありません。
次に例を示します。3+ 5 *(2 + 6)-1
さらに、操作の順序を変更するために括弧を使用する必要がある場合がよくあります。
逆に、逆ポーランド式(接頭辞式)で表すと、上記の式は次のようになります。-
+ 3 * 5 + 2 6 1
括弧が不要になり、再帰的に簡単に解くことができます。 。
簡単にするために、次のように仮定します。

  1. +-* 3つの演算子のみ
  2. 各オペランドは、10未満の負でない整数です。

次のプログラムは、逆ポーランド表現文字列を評価します。
戻り値は構造体です。最初の要素は評価結果を表し、2番目の要素は解析した文字数を表します。

struct EV
{
    
    
	int result;  //计算结果 
	int n;       //消耗掉的字符数 
};

struct EV evaluate(char* x)
{
    
    
	struct EV ev = {
    
    0,0};
	struct EV v1;
	struct EV v2;

	if(*x==0) return ev;
	
	if(x[0]>='0' && x[0]<='9'){
    
    
		ev.result = x[0]-'0';
		ev.n = 1;
		return ev;
	}
	
	v1 = evaluate(x+1);
	v2 = _____________________________;  //填空位置
	
	if(x[0]=='+') ev.result = v1.result + v2.result;
	if(x[0]=='*') ev.result = v1.result * v2.result;
	if(x[0]=='-') ev.result = v1.result - v2.result;
	ev.n = 1+v1.n+v2.n;

	return ev;
}

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



質問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
164 178 108 109 180 155 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 161 134 162 190
149 138 142 146 199 126 165 156 153 193 144 166 170 121 171 132 101 194 187 188
113 130 176 154 177 120 117 150 114 183 186 181 100 163160167147198111119

プログラム出力:
105 120

リソース合意:
ピークメモリ消費量<64MCPU
消費量<1000ms

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



質問8:利用できない金額

タイトル説明
シャオミンはお菓子屋をオープンしました。彼は独創的です:フルーツキャンディーを4個と7個の2つのパックに詰めます。キャンディーは開梱して販売することはできません。
子供がお菓子を買いに来るとき、彼はこれらの2つのパッケージを組み合わせて使用​​します。もちろん、10個のキャンディーなど、組み合わせられないキャンディーもあります。
コンピューターでテストできます。このパッケージの場合、利用できない最大数量は17です。17より大きい任意の数は、4および7と組み合わせることができます。
この質問の要件は、2つのパッケージの数量がわかっている場合に組み合わせることができない最大数を見つけることです。

入力:
各パッケージの砂糖の数を示す2つの正の整数(1000以下)

必要な出力:
購入できない砂糖の最大数を示す正の整数

解決できない状況を考慮する必要はありません

例:
ユーザー入力:
4 7
プログラムは次のように出力する必要があります:
17

別の例:
ユーザー入力:
3 5
プログラムは次のように出力する必要があります:
7
質問分析
質問コード



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

タイトルの説明
図p1.jpgに示すように、いくつかの整数は3 x3グリッドに入力されます。
写真の赤い線に沿ってカットし、2つの部分を取得しました。各部分の合計は60です。
この質問の要件は、指定されたmxnグリッドの整数を2つの部分に分割して、これら2つの領域の数値の合計が等しくなるかどうかを判断するようにプログラムするように依頼することです。
複数の解がある場合は、左上のグリッドを含む領域に含まれるグリッドの最小数を出力してください。
除算できない場合は0を出力します

プログラムの入力および出力形式の要件:
プログラムは、最初にスペース(m、n <10)で区切られた2つの整数mnを読み取り
、テーブルの幅と高さを示します。
次は、スペースで区切られたm個の正の整数を持つn行です。各整数は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 1100

プログラム出力:
10

(p2.jpgを参照)

リソースの合意:
ピークメモリ消費
量<64MCPU消費量<5000ms

ここに画像の説明を挿入
ここに画像の説明を挿入

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



質問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

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



おすすめ

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