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

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

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


質問1:スコア

タイトル説明
1/1 / 1/2 + 1/4 + 1/8 + 1/16 +…
各項目は前の項目の半分です。合計20項目の場合
、合計と結果は次のように表されます。スコア。
同様:
3/2
もちろん、これは最初の2つの項目を追加するだけです。分子と分母は互いに素でなければなりません。

注:
提出する必要のあるスコアは、サブスクライブされたスコアであり、中央にスペースを入れることはできません。
余分な単語や記号は入力しないでください。
トピック分析
トピックコード



質問2:月曜日

タイトル説明
20世紀全体(1901年1月1日から2000年12月31日まで)で、月曜日は何回ありましたか?
(今日が何日かわからないと言わないでください)

注:提出する必要があるのは整数のみであり、余分なコンテンツや説明テキストを入力しないでください。
トピック分析
トピックコード



3番目の質問:複雑な力

タイトルの説明
私を虚数単位とします。任意の正の整数nの場合、(2 + 3i)^ nの実数部と虚数部は両方とも整数です。
(2 + 3i)^ 123456はどのくらいですか?これは(2 + 3i)の123456の累乗です。この数値は非常に大きく、正確な表現が必要です。

答えは「実数部±虚数部i」の形式で書かれています。実数部と虚数部はどちらも整数であり(科学的記数法では表現できません)、中央にスペースは追加されず、前に正符号は追加されません。本当の部分はポジティブです。(2 + 3i)^ 2は次のように記述されます:-5 + 12i、
(2 + 3i)^ 5は次のように記述されます:122-597i
質問分析
質問コード



4番目の質問:正方形を数える

タイトルの説明
図p1.pngに示すように、2次元平面には無数の1x1の小さな正方形があります。
小さな正方形の頂点を中心として、半径50000の円を描きます。
この円の中に完全な小さな正方形がいくつあるか計算できますか?
注:送信する必要があるのは整数です。余分なコンテンツは入力しないでください。
ここに画像の説明を挿入

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



質問5:グラフィックを印刷する

タイトルの説明
次のプログラムは、コンソールにフラクタルグラフ(つまり、全体的および部分的な自己相似グラフ)を描画します。

n = 1,2,3の場合、出力は次のようになります。
プログラムを注意深く分析し、下線部分に欠落しているコードを入力してください。

n = 1時間:
 o 
ooo 
 o 

n = 2時間:
    o     
   ooo    
    o     
 ooo 
ooooooooo 
 ooo 
    o     
   ooo    
    o     

n = 3時間:
             o              
            ooo             
             o              
          ooo           
         ooooooooo          
          ooo           
             o              
            ooo             
             o              
    ooo     
   ooo ooo ooo    
    ooo     
 ooooooooo
ワイパー
 ooooooooo 
    ooo     
   ooo ooo ooo    
    ooo     
             o              
            ooo             
             o              
          ooo           
         ooooooooo          
          ooo           
             o              
            ooo             
             o             
            
public class Main
{
    
    
    static void show(byte[][] buf){
    
    
        for(int i=0; i<buf.length; i++){
    
    
            for(int j=0; j<buf[i].length; j++){
    
    
                System.out.print(buf[i][j]==0? ' ' : 'o');
            }
            System.out.println();
        }
    }
    
    static void draw(byte[][] buf, int x, int y, int size){
    
    
        if(size==1){
    
    
            buf[y][x] = 1;
            return;
        }
        
        int n = ________________________ ;  // 填空
        draw(buf, x, y, n);
        draw(buf, x-n, y ,n);
        draw(buf, x+n, y ,n);
        draw(buf, x, y-n ,n);
        draw(buf, x, y+n ,n);
    }
    
    public static void main(String[] args){
    
    
        final int N = 3;
        int t = 1;
        for(int i=0; i<N; i++) t *= 3;
        
        byte[][] buf = new byte[t][t];
        draw(buf, t/2, t/2, t);
        show(buf);
    }
}

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



質問6:飛行時間

タイトルの説明
Xiaohは、Blue Bridge InternationalCupに参加するために米国に行きました。シャオHのガールフレンドは、シャオHが午前10時に出発し、午前12時に米国に到着したことを発見したため、「飛行機は今とても速く飛んでおり、米国に到着するのに2時間かかる」とため息をついた。

XiaoHは超音速飛行を非常に恐れています。注意深く観察した結果、航空機の離着陸時間はすべて現地時間であることが判明した。北京と米国東部の間には12時間の時差があるため、航空機には合計14時間の飛行時間が必要です。

その後すぐに、シャオHのガールフレンドは交換のために中東に行きました。リトルhは中東と北京の時差を知りません。しかし、シャオHは、ガールフレンドの往復飛行の離着陸時間を取得しました。リトルhは彼のガールフレンドの飛行の飛行時間を知りたがっています。

[問題の説明]
タイムゾーンを越える可能性のあるフライトの場合、特定の往復の離着陸時間。飛行機の飛行時間が同じであると仮定して、飛行機の飛行時間を見つけます。

【入力形式】
標準入力からデータを読み込みます。

1つの入力に複数のデータセットが含まれます。

入力の最初の行は正の整数Tで、入力データグループの数を表します。

データの各グループには2つの行が含まれ、最初の行は往路の離着陸時間であり、2番目の行は復路の離着陸時間です。

離着陸時間の形式は以下のとおりです。

h1:m1:s1 h2:m2:s2
または
h1:m1:s1 h3:m3:s3(+1)
または
h1:m1:s1 h4:m4:s4(+2)
は、フライトがh1、m1にあることを意味します。現地時間は1秒で離陸し、

最初の形式は、現地時間の日のh2、m2分、s2秒に着陸することを意味します

2番目の形式は、現地時間の翌日のh3時間、m3分、およびs3秒に着陸することを意味します。

3番目の形式は、現地時間の3日目にh4、m4:s4に着陸することを意味します。

この質問でhⓂ️sの形式で与えられたすべての時間について、それは保証されます(0 <= h <= 23、0 <= m、s <= 59)。

【出力フォーマット】
標準出力に出力します。

データのセットごとに、時間hh:mm:ssの行を出力します。これは、飛行時間がhh時間mm分ss秒であることを意味します。

時刻が1桁の場合、先行ゼロを埋める必要があることに注意してください。たとえば、3時間、4分、5秒は03:04:05と書く必要があります。

[入力例]
3
17:48:19
21:57:24 11:05:18
15:14:23 17:21:07 00:31:46(+1)
23:02:41 16:13:20( +1)
10:19:19 20:41:24 22:19:04 16:41:09
(+1)

【サンプル出力】
04

09 0512 10 39 14:22:05

[制限と合意]
入力時間が合法であり、飛行時間が24時間を超えないことを確認してください。

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

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



質問7:三体攻撃

タイトル説明
トリソラランは地球に攻撃を仕掛けます。攻撃に抵抗するために、地球人はA×B×Cの軍艦を送り、A層、B行、C列の立方体に配置しました。その中で、i番目の層のj番目の行とk番目の列の戦艦(戦艦(i、j、k)と表記)の寿命値はd(i、j、k)です。

Trisolaransは、地球上でmラウンドの「キューブ攻撃」を開始します。各攻撃は、小さなキューブ内のすべての軍艦に同じダメージを与えます。具体的には、攻撃のt番目のラウンドは、7つのパラメーターlat、rat、lbt、rbt、lct、rct、htで記述されます。
すべてi∈ [lat、rat]、j∈[lbt、rbt]、k∈[lctを満たす、rct]の戦艦(i、j、k)はhtによってダメージを受けます。戦艦が受けるダメージの合計が防御力を超えると、戦艦は爆発します。

地球の司令官は、最初に爆発した軍艦がどの攻撃ラウンドで爆発したかを彼に伝えてほしいと思っています。

【入力形式】
標準入力からデータを読み込みます。
最初の行には4つの正の整数A、B、C、m
が含まれ2番目の行にはA×B×Cの整数が含まれます。ここで、th((i − 1)×B +(j − 1))×C +(k − 1)+1の数はd(i、j、k)です
。3行目からm + 2行目では、(t − 2)行目に7つの正の整数lat、rat、lbt、rbt、lct、rct、htが含まれます。

【出力フォーマット】
標準出力に出力します。
その後、最初の爆発した戦艦が爆発しました。そのような軍艦がなければならないことが保証されています。

【サンプル入力】22
2 3
1 1 1 1 1 1 1 1
1 2 1 2 1 1 1
1 1 1 2 1 2 1
1 1 1 1 1 1 2

【サンプル出力】
2

【説明例】
2回目の攻撃後、戦艦(1,1,1)は合計2ポイントのダメージを受け、防御力を超えて爆発した。

[データ合意]データの
10%の場合、B = C = 1;
データの20%の場合、C = 1;
データの40%の場合、A×B×C、m≤10,000;データ
の70%の場合データ、A、B、C≤200;
すべてのデータについて、A×B×C≤10^ 6、m≤10^ 6、0≤d(i、j、k)、ht≤10^ 9。

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

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



質問8:地球温暖化

タイトルの説明
以下に示すように、NxNピクセルの特定の海域の写真があります。「。」は海を意味し、「#」は陸を意味します。


。##…
。##
……##。
…####。
…###。

その中で、「上、下、左、右」の4方向につながった土地が島を形成しています。たとえば、上の写真には2つの島があります。

地球温暖化により海が上昇したため、科学者たちは、今後数十年で島の端のピクセル領域が海水に沈むと予測しています。具体的には、陸のピクセルが海に隣接している場合(上下、左、右の4つの隣接するピクセルの間に海がある場合)、水没します。

たとえば、上の写真の海域は、将来的に次のようになります。

...
...
...
...
...#...
...
...

計算してください:科学者の予測によると、写真の島の数は完全に水没します。

【入力形式】
1行目に整数Nが含まれています。(1 <= N <= 1000)
次のN行とN列は、海域の写真を表しています。

この画像は、最初の行、最初の列、N番目の行、およびN番目の列のピクセルがすべて海であることを保証します。

【出力形式】
整数は答えを表します。

【入力例】
7

。##…
。##
……##。
…####。
…###。

【サンプル出力】
1

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

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

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



質問9:倍数

トピックの説明
誰もが知っているように、Xiao Congは計算が得意であり、特に1つの数値が別の数値の倍数であるかどうかの計算が得意です。しかし、ネギは2つの数字しか得意ではなく、数字が多いとさらに苦しみます。Scallionからn個の数が与えられました。これらのn個の数から3個の数を見つけて、これら3個の数の合計がKの倍数になり、この合計が最大になることを願っています。データ保証には解決策が必要です。

【入力形式】
標準入力からデータを読み込みます。
最初の行には、2つの正の整数n、Kが含まれています。
2行目では、n個の正の整数が指定されたn個の数値を表しています。

【出力フォーマット】
標準出力に出力します。
合計を表す整数を行に出力します。

【サンプル入力】
4 3
1 2 3 4

【サンプル出力】
9

【説明例】
2、3、4を選択してください。

[データ合意]データの
30%について、n <= 100。
データの60%について、n <= 1000。
データの他の20%については、K <= 10です。
100%データの場合、1 <= n <= 10 ^ 5、1 <= K <= 10 ^ 3であり、指定されたn個の数値は10 ^ 8を超えません。

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

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



質問10:支払いの問題

タイトル説明
何人かが一緒に外食するのが一般的です。しかし、チェックアウトの間に、しばしばいくつかの論争があります。

現在、外食している人はn人で、合計でS元を消費しています。その中で、i番目の人がaiyuanを持ってきました。幸いなことに、誰もが持ってくる合計金額は請求書を支払うのに十分ですが、今問題は、一人一人がいくら支払うかということです。

公平を期すために、支払い総額が正確にSであるという前提で、すべての人の最終支払いの標準偏差が最小になることを願っています。ここで、各人が支払う金額は、負でない実数にすることができます。つまり、1セントの整数倍にすることはできません。最小の標準偏差を出力する必要があります。

標準偏差の概要:標準偏差は、複数の数値とそれらの平均の差の2乗平均であり、通常、これらの数値間の「偏差の大きさ」を表すために使用されます。正式に言えば、i番目の人がbi yuanを支払うとすると、標準偏差は次のようになります。[p1.pngを参照]

【入力形式】
標準入力からデータを読み込みます。
最初の行には2つの整数nとS
が含まれ2番目の行にはn個の非負の整数a1、…、anが含まれます。

【出力フォーマット】
標準出力に出力します。
小数点以下4桁に丸められた最小の標準偏差を出力します。
10 ^ -9を加算または減算した後、正解によって丸められた結果が変更されないことを確認してください。

[入力例]
5 2333
666 666 666 666 666

【サンプル出力】
0.0000

【説明例】
誰もが2333/5元、標準偏差0で支払う。

別の例:
[サンプル入力]
10 30
2 1 4 7 4 8 3 6 4 7

【サンプル出力】
0.7928

[データの
一致]データの10%の場合、すべてのaiが等しい
、データの30%の場合、すべての非ゼロaiが等しい
、データの60%の場合、n≤1000
、データの80%の場合、n ≤10^ 5;
すべてのデータについて、n≤5×10 ^ 5、0≤ai≤10 ^ 9。

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

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

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

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



おすすめ

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