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

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

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


質問1:迷路

タイトルは
、丘の中腹に建てられた惑星Xの迷路の遊び場を表しています。

それは10x10の相互接続された小さな部屋で構成されています。

部屋の床に大きな文字が書かれています。

プレーヤーが上り坂を向いて立っていると仮定すると、次のようになります。

Lは左側の部屋に行くことを意味し、

Rは右側の部屋に行くことを意味します。

Uは上り坂の部屋に行くことを意味します。

Dは下り坂の部屋に行くことを意味します。

惑星Xの住民は少し怠惰で、一生懸命考えたくありません。

彼らは運のゲームをすることを好みます。このゲームにも同じことが言えます!

当初、ヘリコプターは100人のプレイヤーを小さな部屋に入れました。

プレイヤーは地面の文字に従って移動する必要があります。

迷路マップは次のとおりです。


UDDLUULRUL

UURLLLRRRU

RRUURLDLRD

RUDDDDUUUU

URUDLLRRUU

DURLRLDLRL

ULLURLLRDU

RDLULLRDDD

UUDDUDUDLL

ULRDLUURRR


最終的に、何人のプレイヤーが迷路から抜け出すかを計算してください。

輪になって回る代わりに。

迷路から出たプレイヤーの数を示す整数を送信してください。余分なコンテンツは入力しないでください。

それでもゲームのルールがわからない場合は、簡略化された4x4の迷路の図を参照できます。
ここに画像の説明を挿入

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



質問2:バッタをジャンプする

タイトル説明
円形に配置された9枚のプレートがあります。

プレートの8つには8つのバッタが含まれ、そのうちの1つは空でした。

これらのバッタに時計回りに1〜8の番号を付けます

各バッタは、隣接する空のプレートにジャンプできます。

もう少し力を入れて、隣接するバッタを飛び越えて空の皿に入れることもできます。

バッタの形成を反時計回りに配置したい場合は、計算してください。

そして、空のディスクの位置を変更せずに(つまり、1-8転置、2-7転置など)、少なくとも何回ジャンプする必要がありますか?

注:必要な提出物は整数です。冗長なコンテンツや説明テキストを入力しないでください。
ここに画像の説明を挿入

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



3番目の質問:ルービックキューブシミュレーション

タイトルの説明
2次ルービックキューブは、2層のみのルービックキューブで、8つの小さなピースのみで構成されています。

シャオミンはとてもやんちゃで、3色しか好きではないので、自宅で2次ルービックキューブを次のように塗り直しました。

フロント:オレンジ

右:緑

上:黄色

左:緑

下:オレンジ

戻る:黄色

そのようなルービックキューブが破壊された後、いくつの異なる状態があるかを計算してください。

ルービックキューブが全体的に回転した後の2つの状態で、すべての辺の色が同じである場合、同じ状態と見なされます。

州の数を表す整数を提出してください。冗長な内容や説明文は記入しないでください。
ここに画像の説明を挿入

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



4番目の質問:ブロック分割

タイトルは、
グリッドの端に沿って2つの部分にカットされ6x6グリッドについて説明しています。
2つのパーツの形状は完全に同じである必要があります。
図4-1、4-2、4-3に示すように、これは実行可能な除算方法です。
計算してみてください:
これらの3つの除算方法を含めて、合計でいくつの異なる除算方法がありますか?
注:回転対称性は同じ除算方法に属します。
整数を送信してください。余分なコンテンツや説明文は入力しないでください。
ここに画像の説明を挿入

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



質問5:文字列

タイトルの説明
A、B、Cの3文字は、多くの文字列を形成できます。
例:「A」、「AB」、「ABC」、「ABA」、「AACBB」…

今、シャオミンは質問を考えています:
各文字の数が制限されている場合、既知の長さの文字列をいくつ形成できますか?

彼は良い友達に助けを求め、すぐにコードを入手しました。
解決策は非常に簡単でしたが、最も重要な部分は不明確でした。

ソースコードを注意深く分析し、下線部分に不足しているコンテンツを入力してください。

#include <stdio.h>

// a个A,b个B,c个C 字母,能组成多少个不同的长度为n的串。
int f(int a, int b, int c, int n)
{
    
    
    if(a<0 || b<0 || c<0) return 0;
    if(n==0) return 1; 
    
    return ______________________________________ ;  // 填空
}

int main()
{
    
    
    printf("%d\n", f(1,1,1,2));
    printf("%d\n", f(1,2,3,3));
    return 0;
}

上記テストデータのために、暁の経口計算の結果は次のようになります
6
19er
問題分析
問題のコード



質問6:最大の共通部分文字列

タイトルの説明
共通部分文字列最大長の問題は、
2つの文字列のすべての部分文字列間で一致できる最大長はどれくらいかということです。

例:「abcdkkk」と「baabcdadabc」では
、検出できる最長の共通部分文字列は「abcd」であるため、共通部分文字列の最大長は4です。

次のプログラムは、文字列サイズが大きくない場合に比較的効果的な解決策である行列法によって解決されます。

ソリューションのアイデアを分析し、下線部分に不足しているコードを入力してください。
トピック分析
トピックコード



7番目の質問:定期的な問題

タイトルの説明
単純な正規表現
、つまりx()|のみで構成される正規表現について考えてみます。
Xiao Mingは、この正規表現が受け入れることができる最長の文字列の長さを見つけたいと考えています。

たとえば、((xx | xxx)x |(x | xx))xxは、最長の文字列xxxxxxを受け入れることができ、長さは6です。

入る

x()|で構成される正規表現。入力長は100を超えず、正当です。

出力

この正規表現が受け入れることができる最長の文字列の長さ。

たとえば、次のように
入力します:
((xx | xxx)x |(x | xx))xx

プログラムは次のように出力する必要があります:
6

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

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



質問8:パンが数を構成します

タイトル説明
シャオミンはほぼ毎朝パン屋で朝食を食べます。この蒸しパンはN種類の蒸し器で買われており、そのうちi番目の蒸し器で愛パンを入れることができた。蒸し器の種類ごとにたくさんのバスケットがあり、無限のバスケットと見なすことができます。

顧客がX個の蒸し饅頭を購入したいときはいつでも、蒸し饅頭を販売する叔父はすぐにいくつかの蒸し饅頭を選択するので、これらのいくつかのケージには正確にX本の蒸し饅頭があります。たとえば、3種類のスチーマーがあり、3、4、5個のバンズを入れることができます。

顧客が11個のパンを購入したい場合、叔父は3個のケージ2個と5個のケージ1個(または3個のケージ1個と4個のケージ2個)を選択します。

もちろん、包子おじさんが顧客が購入したい金額を補えないこともあります。たとえば、4、5、6個のバンズを収納できる3種類のスチーマーがあります。顧客が7つのパンを購入したいと思ったとき、叔父はそれをまとめることができませんでした。

シャオミンは、バオおじさんが何種類の数字を作ることができなかったか知りたがっていました。

入る

最初の行には整数Nが含まれています。(1 <= N <= 100)
次のN行のそれぞれに整数Aiが含まれています。(1 <= Ai <= 100)

出力

整数は答えを表します。補うことができない数が無限大の場合は、INFを出力します。

たとえば、
入力:
2
4
5

プログラムは次のように出力する必要があります:
6

別の例では、
入力:
2
4
6

プログラムは次のように出力する必要があります:
INF

サンプルの説明:
サンプル1の場合、未完成の数値には1、2、3、6、7、11が含まれます。
たとえば、2のように、すべての奇数を構成することはできないため、無限に多くなります。

リソース合意:
ピークメモリ消費量(仮想マシンを含む)<256MCPU
消費量<1000ms
トピック分析
トピックコード



質問9:チョコレートを割る

トピックの説明
子供の日、K人の子供たちがシャオミンの家を訪れました。シャオミンは子供たちを楽しませるためにチョコレートのコレクションを取り出しました。
Xiao Mingには合計N個のチョコレートがあり、そのうちi番目のチョコレートはHi xWiの正方形で構成される長方形です。

公平を期すために、シャオミンは子供たちと共有するためにチョコレートのN個からK個のチョコレートを切り取る必要があります。カットチョコレートは満たす必要があります:

  1. 形は正方形で、辺の長さは整数です
  2. 同じサイズ

たとえば、6x5チョコレートを6個の2x2チョコレートまたは2個の3x3チョコレートにカットできます。

もちろん、子供たちは皆、手に入るチョコレートができるだけ大きいことを望んでいます。リトルハイが最大の辺の長さを計算するのを手伝ってくれませんか。

入力
最初の行には、2つの整数NとKが含まれています。(1 <= N、K <= 100000)
次のN行のそれぞれには、2つの整数HiとWiが含まれています。(1 <=こんにちは、Wi <= 100000)
各子供が少なくとも1x1のチョコレートを手に入れることができるように入力します。

出力
カットされたスクエアチョコレートの可能な最大辺の長さを出力します。

サンプル入力:
2 10
6 5
5 6

サンプル出力:
2

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

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



質問10:ペイントエリア

タイトルは、
惑星Xの考古学ロボットのグループが廃墟で考古学を行っていることを説明しています。
この地域の地面は岩のように硬く、鏡のように平らです。
管理スタッフは、便宜上、標準の直交座標系を確立しています。

各ロボットには、独自の専門性と独自のスキルがあります。彼らはまた、さまざまなコンテンツに興味を持っています。
さまざまな測定の後、各ロボットは1つ以上の長方形の領域を優先的な考古学的領域として報告します。

長方形の形式は(x1、y1、x2、y2)で、長方形の2つの対角点の座標を表します。

目を引くために、本部はロボットによって選択されたすべての長方形の領域を黄色のペンキで塗ることを要求しました。
Xiao Mingは画家である必要はありませんが、消費される塗料の量を計算する必要があります。

実際、すべての長方形がカバーする総面積が計算されている限り、これは難しくありません。
長方形が重なる場合があることに注意してください。

この質問の入力は長方形の数であり、それらがカバーする総面積を出力する必要があります。

入力形式:
最初の行である整数nは、
次のn行にある長方形の数(1 <= n <10000)を示します。各行には、スペースで区切られた4つの整数x1 y1 x2 y2があり、2組の長方形を示します。角の頂点座標。
(0 <= x1、y1、x2、y2 <= 10000)

出力形式:
1行に1つの整数で、長方形で覆われる総面積を表します。

たとえば、次のように
入力します
。31
5 10 10
3 1 20 20
2 7 15 17

プログラムは出力する必要があります:
340

別の例では、
入力:
3
5 2 10 6
2 7 12 10
8 1 15 15

プログラムは次のように出力する必要があります:
128

リソースの合意:
ピークメモリ消費量(仮想マシンを含む)
<256MCPU消費量<2000ms
質問分析
質問コード



おすすめ

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