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

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

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


質問1:迷路

タイトル説明

惑星Xの迷路の遊び場は小さな丘の中腹に建てられています。
それは10x10の相互接続された小さな部屋で構成されています。
部屋の床に大きな手紙が書かれています。
プレーヤーが上り坂を向いて立っていると仮定すると、
Lは左側
の部屋に行くことを意味しRは右側
の部屋に行くことを意味しUは上り坂の方向に
部屋に行くことを意味しDは上の部屋に行くことを意味します。下り坂方向。
惑星Xの住民は少し怠惰で、一生懸命考えたくありません。
彼らは運のゲームをすることを好みます。このゲームにも同じことが言えます!

当初、ヘリコプターは100人のプレイヤーを小さな部屋に入れました。
プレイヤーは地面の文字に従って移動する必要があります。

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

UDDLUULRUL
UURLLLRRRU
RRUURLDLRD
RUDDDDUUUU
URUDLLRRUU
DURLRLDLRL
ULLURLLRDU
RDLULLRDDD
UUDDUDUDLL
ULRDLUURRR


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

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

ゲームのルールがわからない場合は、簡略化された4x4の迷路のイラストを参照できます:
p1.png
ここに画像の説明を挿入

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



2番目の質問:9の数式

タイトルの説明
次の式に従ってください。

9213 x 85674 = 789314562

左側の乗数と被乗数は、1から9までのすべての数値を1回ずつ使用します。
そして、製品はたまたま1から9までのすべての数字を使用し、毎回1回です。

コンピューターの強力な計算能力を使用して、上記の要件を満たす9つの数式がいくつあるかを調べてください。

注意:

  1. 総数には、タイトルに記載されている例が含まれています。
  2. 乗数と被乗数は同じプランとして交換されます。
    トピック分析
    トピックコード


質問3:ルービックキューブのステータス

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

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

フロント:オレンジ
右:グリーン
トップ:イエロー
左:グリーン
下:オレンジ
バック:イエロー

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

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

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

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



4番目の質問:グリッド分割

タイトルは、
グリッドの端に沿って2つの部分にカットされ6x6グリッドについて説明しています。
2つのパーツの形状は完全に同じである必要があります。

図に示すように、p1.png、p2.png、p3.pngは実行可能なセグメンテーション方法です。

計算してみてください:
これらの3つの除算方法を含めて、合計でいくつの異なる除算方法がありますか?
注:回転対称性は同じ除算方法に属します。

整数を送信してください。余分なコンテンツや説明文は入力しないでください。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

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



質問5:文字列

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

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

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

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

public class A
{
    
    
    // a个A,b个B,c个C 字母,能组成多少个不同的长度为n的串。
    static 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 ________________________________;  //填空
    }
    
    public static void main(String[] args)
    {
    
    
        System.out.println(f(1,1,1,2));
        System.out.println(f(1,2,3,3));
    }
}

上記テストデータのために、暁の経口計算の結果は次のようになります。
6
19

注:下線部分に不足しているコードのみを入力し、冗長なコンテンツや説明テキストを送信しないでください。
トピック分析
トピックコード



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

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

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

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

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

public class Main
{
    
    
    static int f(String s1, String s2)
    {
    
    
        char[] c1 = s1.toCharArray();
        char[] c2 = s2.toCharArray();
        
        int[][] a = new int[c1.length+1][c2.length+1];
        
        int max = 0;
        for(int i=1; i<a.length; i++){
    
    
            for(int j=1; j<a[i].length; j++){
    
    
                if(c1[i-1]==c2[j-1]) {
    
    
                    a[i][j] = __________________;  //填空 
                    if(a[i][j] > max) max = a[i][j];
                }
            }
        }
        
        return max;
    }
    
    public static void main(String[] args){
    
    
        int n = f("abcdkkk", "baabcdadabc");
        System.out.println(n);
    }
}

注:不足しているコードのみを送信し、既存のコードと記号は送信しないでください。説明文を提出しないでください。
トピック分析
トピックコード



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

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

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

入る

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

出力

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

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

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

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

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

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



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

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

すべてのコードは同じソースファイルに配置されます。デバッグに合格したら、ソースコードをコピーして送信します。
packageステートメントは使用しないでください。jdk1.7以降の機能は使用しないでください。
メインクラスの名前はMainである必要があります。そうでない場合、無効なコードとして扱われます。
プログラムを提出するときは、希望する言語タイプとコンパイラタイプの選択に注意してください。
トピック分析
トピックコード



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

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

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



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

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

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



おすすめ

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