Niuke.com-HUAWEI 筆記試験 面接 機械試験 オンライン演習
Deco Machine Test のすべての投稿 1 つ星の質問
マシンテストジングルキャット - Huaweiマシンテストの実際の質問
GavenHwang のブログ - Huawei マシン テスト
coder Mingxuan ブログ - Huawei Machine Test 23 の質問のまとめ
目次
Deco Machine Test のすべての投稿 1 つ星の質問
28. [文字列に含まれる厳密に増加しない連続した数字の最長シーケンスの長さ]
44.【不等式の集合が制約を満たすか判定し、最大差を出力する】
1.【身長が近い子を探す】
【身長が似ている子を探す】今年小学1年生になったシャオ・ミンさんは、新しいクラスに入ってから、他の子たちの身長がバラバラであることに気づき、身長差で並べ替えたいと思いました。子供たちと彼自身. 彼がソートを実現するのを手伝ってください.
説明を入力してください:
最初の行は正の整数 H と N で、0<H<200、Xiao Ming の身長、0<N<50、新しいクラスの他の子供の数です。2 行目は N 個の正の整数 H1 ~ HN で、これは他の子の身長であり、値の範囲は 0<N<50 で、これは新しいクラスの他の子の数です。2 行目は、他の子の身長である N 個の正の整数 H1-HN であり、値の範囲は 0><Hi<200 (1<=i<=N) であり、N 個の正の整数は異なります。
出力の説明:
ソート結果を出力します。それぞれの正の整数はスペースで区切られます。シャオ・ミンとの身長差の絶対値が最も小さい子が1位、シャオ・ミンとの身長差の絶対値が最も大きい子が最後にランク付けされ、2人の子供とシャオ・ミンの身長差が同じ場合、小さい子が最初にランク付けされます。
例 1:
入力
100 10
95 96 97 98 99101 102 103 104 105
出力
99 101 98 102 97103 96 104 95 105
2.【マーシャン・コンピューティング】
【火星の計算】 火星人が使用する演算子は # と $ であることが知られており、地球上の演算子と同等の式は次のとおりです。
x#y = 2x+3y+4
x$y = 3*x+y+2
このうち、x と y は符号なし整数です.
Earthman 式は C 言語の規則に従って計算されます
. Martian 式では $ が # より優先度が高くなります. 同じ演算子が既存の Martian 文字列を左から右に順に計算します.メッセージ、翻訳して結果を計算してください。
説明を入力してください:
Martian 文字列式 (キャリッジ リターンと末尾の改行なし)
**入力文字列の説明: **
文字列は、符号なし整数と演算子 (#、$) のみで構成されます
計算式を作成しました。例: 123#45#6778
このユース ケースでは、文字列内のオペランドと演算子の間に区切り文字がないことが保証されています。
ユース ケースは、オペランドの値の範囲が 32 ビットの符号なし整数であることを保証します。
入力と計算結果が整数オーバーフローしないことを保証します。
入力文字列が正当な評価メッセージであることを確認してください。例: 123#45#6778 次のよう
な文字列などの不正な評価メッセージがないことを確認してください:
#4$5 //Missing operand
4$5# // Missing operand
4#$5 //オペランドがありません
4 $5 //スペースがあります
3+4-5*6/7 //他の演算子があります
12345678987654321$54321 //32 ビット整数演算オーバーフロー
出力の説明:
入力された火星文字列に応じて計算結果を出力する(末尾の改行・改行なし)
例
入力:
7#6$5#12
出力:
226
命令:
7#6$5#12=7#(3*6+5+2)#12
=7#25#12
=(2*7+3*25+4)#12
=93#12
=2*93+3 *12+4
= 226
3. [欠損度を特定する最長母音列]
[指定された欠陥度の最長母音列] 指定された欠陥度の最長母音部分列 | 制限時間: 1 秒 | メモリ制限: 262144K | 言語制限: 先頭と末尾の任意の母音 ( aeiouAEIOU ) は母音列であり
、非母音文字の混在数が欠損度である。例:
"a" と "aa" は母音列で、欠陥は両方とも 0 です。
・「aiur」は母音列ではない(母音文字なしで終わる)
・「あびら」は欠陥度2の母音列
文字列が与えられた場合、指定された欠陥度を持つ最長の母音部分文字列を見つけてその長さを出力し、条件を満たす母音部分文字列が見つからない場合は 0 を出力します。
部分文字列: 文字列内の連続する文字で構成される部分列は、文字列の部分文字列と呼ばれます。
Collapse
入力の説明:
最初の行の入力は整数で、予想される傷の程度を示し、値の範囲は [0, 65535] です。
次の行は文字 az と AZ のみからなる文字列で、文字列の長さは (0, 65535] です。
出力の説明:
出力は、条件を満たす母音文字部分文字列の長さを表す整数です。
例 1
入力
0
asdbuiodevauufgh
出力
3
説明
条件を満たす最長母音文字部分文字列は uio と auu の 2 つあり、長さは 3 です。
例 2
入力
2
aueeo
と出力
0 は、条件に一致する母音文字部分文字列がないことを
意味し、出力 0例 3入力1 aabeebuu出力5は、条件に一致する 2 つの最長母音文字部分文字列、つまり aabee と eebuu が存在することを示します。長さは 5
4.【マッチマッチゲーム】
[その他のゲーム] ゲームのルール: 英字のみの文字列を入力し、文字列内の 2 つの文字が隣接して同一である場合、それらを消去できます。
除去が続行できなくなるまで、ストリングでの除去アクションを繰り返します。この時点でゲームは終了します。
結果の文字列の長さを出力します。
5.【判定文字列部分列】
【文字列部分列の判定】文字列targetとsourceが与えられたとき、targetがsourceの部分列かどうかを判定する。ターゲットとソースには英語の小文字のみが含まれ、文字列ソースは非常に長く、長さは ~=500,000 であり、ターゲットは短い文字列で、長さは <=100 であると考えることができます。文字列のサブシーケンスは、残りの文字の相対位置を変更せずに元の文字列からいくつかの (またはまったく) 文字を削除することによって形成された新しい文字列です。たとえば、'abc' は 'aebycd' のサブシーケンスであり、'ayb' です。いいえ。最後のシーケンスの開始位置を見つけてください。
入力例:
abc
abcaybec
出力例: aybec の abc の a は、文字列全体で 3 の位置インデックスを持っているため、
3
6. [整数ペアの最小和]
[整数ペアの最小和] 2 つの整数配列array1 と array2 が与えられた場合、配列要素を昇順に並べます。array1 と array2 からそれぞれ 1 つの要素を取得すると要素のペアを形成できると仮定すると、k ペアの要素を取得し、取得したすべての要素を合計し、合計の最小値を計算する必要があります。
注: 2 つの要素のペアが、array1 と array2 の同じ 2 つの添字に対応する場合、それらは同じ要素のペアと見なされます。
入力説明
配列 array1、array2 の 2 行を入力、各行の最初の数字は配列のサイズ size(0<size<=100) 0
<array1[i]<=1000
0<array2[i]<=1000
次の行は正の整数 k
0<k<=array1.size()*array2.size()
出力の説明
要件を満たす最小合計
例 1
输入
3 1 1 2
3 1 2 3
2
输出
4
7. [区間ごとに記事の断片を反転]
タイトル説明:
英語の記事の断片を入力し、指定された範囲の単語の順序を逆にし、句読点を通常の文字として扱います。
たとえば、文字列「I am a developer.」を入力すると、区間 [0,3] は「developer. a am I」を出力します。
説明を入力してください:
改行を使用して 3 つのパラメーターを区切ります。
最初のパラメーターは英語の記事の内容、つまり英語の文字列です。2
番目のパラメーターは反転した開始単語の添字で、添字は 0 から始まります。3 番目のパラメーターは
末尾です。ワード添え字、および
出力の説明は次のとおりです。
反転した英語の記事の断片、すべての単語は半角スペースで区切られて出力されます
示例
输入:
I am a developer.
1
2
输出:
I a am developer.
输入:
Hello world!
0
1
输出:
world! Hello
说明:
输入字符串可以在前面或者后面包含多余的空格,但是反转后的不能包含多余空格。
输入:
I am a developer.
0
3
输出:
developer. a am I
说明:
如果两个单词见有多余的空格,将反转后单词间的空格减少到只含一个。
输入:
Hello!
0
3
输出:
EMPTY
说明:
指定反转区间只有一个单词,或无有效单词则统一输出EMPTY。
8.【最長連続方形波信号】
【最长方连续方波信号】最长方连续方波信号 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
输入一串方波信号,求取最长的完全连续交替方波信号,并将其输出,如果有相同长度的交替方波信号,输出任一即可,方波信号高位用1标识,低位用0标识,如图:
说明:
1) 一个完整的信号一定以0开始然后以0结尾,即010是一个完整信号,但101,1010,0101不是
2)输入的一串方波信号是由一个或多个完整信号组成
3) 两个相邻信号之间可能有0个或多个低位,如0110010,011000010
4) 同一个信号中可以有连续的高位,如01110101011110001010,前14位是一个具有连续高位的信号
5) 完全连续交替方波是指10交替,如01010是完全连续交替方波,0110不是
输入描述: 输入信号字符串(长度>=3且<=1024): 0010101010110000101000010 注:输入总是合法的,不用考虑异常情况
输出描述: 输出最长的完全连续交替方波信号串: 01010 若不存在完全连续交替方波信号串,输出 -1
示例1
输入
00101010101100001010010
输出
01010
备注:
输入信号串中有三个信号:0 010101010110(第一个信号段) 00 01010(第二个信号段) 010(第三个信号段)
第一个信号虽然有交替的方波信号段,但出现了11部分的连续高位,不算完全连续交替方波,在剩下的连续方波信号串中01010最长
9.【数组拼接】
现在有多组整数数组需要将他们合并成一个新的数组
合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组,取完的内容会删除掉,如果改行不足固定长度,或者已经为空,则直接取出剩余部分的内容放到新的数组中继续下一行
入力の説明
1 行目は各読み取りの固定長です.
長さ 0<len<10
2 行目は整数
配列の数 0<num<10000
3 行目から n 行目はマージする必要がある配列です.
異なる配列はカンマを使用して、 最大 100 個の要素
を区切ります
出力の説明
コンマで区切られた新しい配列を出力します
例 1
入力
3
2
2,5,6,7,9,5,7
1,7,4,3,4
出力
2,5,6,1,7,4,7,9,5,3,4, 7
説明 長さ 3 と配列の数 2 を取得するには、
最初の行をトラバースして 2、5、6 を取得し、
次に 2 番目の行をトラバースして 1、7、4 を取得し、
最初の行に戻って 7 を取得します。 9、5、
次に 2 行目をトラバースして 3、4 を取得します。
最初の行に戻って 7 を取得します。
例 2
入力
4
3
1,2,3,4,5,6
1,2,3
1,2,3,4
出力
1,2,3,4,1,2,3,1,2,3,4 ,5,6
10.【駐車場の車両統計】
タイトルの説明:
特定のサイズの駐車場は、配列 cars[] で表されます。1 は車があることを意味し、0 は車がないことを意味します。
車両にはさまざまなサイズがあり、乗用車は 1 つの駐車スペース (長さ 1) を占有し、トラックは 2 つの駐車スペース (長さ 2) を占有し、トラックは 3 つの駐車スペース (長さ 3) を占有します。
駐車場に駐車できる最小台数を数え、具体的な台数を返します。
入力の説明:
整数文字列配列 car[]。1 は車があることを意味し、0 は車がないことを意味し、配列の長さは 1000 未満です。
出力の説明:
最小駐車台数を示す整数の数値文字列。
例 1:
入力
1, 0, 1
および出力
2 は、1 台の車が第 1 駐車スペースを占有し、第 2 駐車スペースが空であり、1 台の車が第 3 駐車スペースを占有していることを
意味します.少なくとも 2 台の車があります. 例 2:
入力
1, 1, 0, 0 , 1, 1, 1, 0, 1
と出力
3
は、
1 台のトラックが 1 番目と 2 番目の駐車スペースを占有し、1 台のトラックが
1 番目と 2 番目の駐車スペースを占有し、
1 台のトラックが 5 番目の駐車スペースを占有することを示します。第6、第7駐車場
第8駐車場は空車
、第9駐車場は1台、
3台以上
11.【順不同の整数列の2つの数の和の絶対値が最小】
タイトル: 2 つのランダムな整数列の和の絶対値が最小 | 制限時間: 1 秒 | メモリ制限: 262144K | 言語制限: 無制限
ランダムな整数 (正と負の整数が存在する可能性があります) 配列 nums を指定すると、配列内で絶対値 (|nums[x]+nums[y]|) が最小値である 2 つの数値を見つけて、2 つの数値を返します (昇順で返される) と絶対値。
各入力は 1 つの回答にのみ対応します。ただし、配列内の同じ要素を 2 回使用することはできません。
説明を入力してください:
スペースで区切られた順序付き整数シーケンス文字列で、最大 1000 個の整数で、整数の値の範囲は [-65535, 65535] です。
出力の説明:
2 つの数値の合計の最小絶対値
例 1
入力
-1 -3 7 5 11 15
出力
-3 5 2
例証する
|nums[0] + nums[2]| = |-3 + 5| = 2 が最小であるため、-3 5 2 を返します。
12.【ブラケットの最大深さ】
既存の文字列は ( , ) , { , } , [ , ] の 6 種類の括弧のみで構成されています。文字列が次の条件のいずれかを満たす場合、それは無効な文字列です:
1. 任意のタイプの左右の大括弧の数が等しくない;
2. 正しい順序で閉じられていない大括弧がある (左が最初、次に右)。
ブラケットのネストの最大深さを出力します。文字列が無効な場合は 0 を出力します。0
<=文字列の長さ<=100000
入力の説明:
( , ) , { , } , [ , ] のみを含む文字列。
出力の説明:
整数、ブラケットの最大深さ
例 1:
入力: []
出力: 1
13.【印刷タスクの仕分け】
トピックの説明
プリンターは、印刷キューに従って印刷タスクを実行します。印刷タスクは、1 ~ 9 の数字で表される 9 つの優先度レベルに分けられ、数字が大きいほど優先度が高くなります。プリンターは、毎回キューの先頭から最初のタスク A を取り出し、キューに残っているタスクの中に A よりも優先度の高いタスクがあるかどうかを調べます。の場合、タスク A をキューの最後に置きます。そうでない場合は、タスク A の印刷を実行します。入力された印刷キューに従って、実際の印刷順序を出力するプログラムを作成してください。
入力の説明
関数プロトタイプ: void printOrder
(const int input[], int len, int output[])
頭。C/C++ パラメーター len は入力配列の長さを表すため、パラメーターは正当かつ有効であると見なされます。
14.【ワードソリティア】
タイトル説明:
ワード ソリティアのルールは次のとおりです。
ソリティアで使用する単語の最初の文字は、前の単語の最後の文字と同じでなければなりません; 同じ
頭文字の単語が複数ある場合は、最も長い単語を採用し、長さが等しい場合は、辞書式順序が最も小さい単語;
すでに参加しているソリティアの単語は繰り返し使用できません。
ここで、すべて小文字で構成される単語配列のセットが与えられ、単語の 1 つが単語ソリティアを実行する開始単語として指定されます。
最も長い単語列を出力してください. 単語列は、間にスペースを入れない単語で構成されています.
説明を入力してください:
入力の最初の行は負でない整数で、配列内の開始単語のインデックス K を示します (0 <= K < N)。
入力の 2 行目は、単語数 N を表す非負の整数です。
次の N 行は、それぞれ単語配列内の単語を表します。
出力の説明:
最終的に連結された単語文字列を表す文字列を出力します。
述べる:
単語数 N の値の範囲は [1, 20] です
1 つの単語の長さの値の範囲は [1, 30] です
15. [配列の重複排除とソート]
题目描述:
给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。
输入描述:
一个数组
输出描述:
去重排序后的数组
示例 1:
输入
1,3,3,3,2,4,4,4,5
1
输出
3,4,1,2,5
1
备注
数组大小不超过100 数组元素值大小不超过100
16.【找最小数】
题目描述:
给一个正整数num1,计算出新正整数num2,num2为num1中移除N位数字后的结果,需要使得num2的值最小
输入:
1.输入的第一行为一个字符串,字符串由0-9字符组成,记录正整数num1,num1长度小于32
2.输入的第二行为需要移除的数字的个数,小于num1长度
示例
10
1
输出0
10200
1
输出200
2615371
4
输出131
17.【按身高和体重排队】
题目描述:
某学校举行运动会,学生们按编号(1、2、3…n)进行标识现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列,对于身高体重都相同的人,维持原有的编号顺序关系。
请输出排列后的学生编号
输入描述:
两个序列,每个序列由N个正整数组成,(0<n<=100)。
第一个序列中的数值代表身高
第二个序列中的数值代表体重
输出描述:
排列结果,每个数值都是原始序列中的学生编号,编号从1开始,身高从低到高,身高相同体重从轻到重,体重相同维持原来顺序。
示例:
输入:
4
100 100 120 130
40 30 60 50
输出:
2134
输入:
3
90 110 90
45 60 45
输出:
132
18.【勾股数元组】
题目描述:
如果三个正整数A B C ,A²+B²=C²则为勾股数
如果ABC之间两两互质,即A与B A与C B与C均互质没有公约数,
则称其为勾股数元组。
请求出给定n m 范围内所有的勾股数元组
输入描述
起始范围 1<n<10000 n<m<10000
输出目描述
abc 保证a<b<c输出格式 a b c
多组勾股数元组 按照a升序b升序 c升序的排序方式输出。
给定范围内,找不到勾股数元组时,输出 Na
ケース 1
入力
1
20
出力
3 4 5
5 12
13 8 15 17
ケース 2:
入力
5
10
出力
Na
19.【順不同の整数列で2つの数の和の絶対値が最小】
タイトル説明:
制限時間: 1 秒 | メモリ制限: 262144K
ランダムな整数 (正と負の整数が存在する可能性があります) 配列 nums を指定すると、配列内で絶対値 (|nums[x]+nums[y]|) が最小値である 2 つの数値を見つけて、2 つの数値を返します (昇順で返される) と絶対値。
各入力は 1 つの回答にのみ対応します。ただし、配列内の同じ要素を 2 回使用することはできません。
説明を入力してください:
スペースで区切られた順序付き整数シーケンス文字列で、最大 1000 個の整数で、整数の値の範囲は [-65535, 65535] です。
出力の説明:
2 つの数値の合計の最小絶対値
例 1
入力
-1 -3 7 5 11 15
出力
-3 5 2
例証する
|nums[0] + nums[2]| = |-3 + 5| = 2 が最小であるため、-3 5 2 を返します。
20.【メッセージ解凍】
タイトルの説明:
メッセージの解凍 | 制限時間: 1 秒 | メモリの制限: 262144K | 言語の制限: 無制限
データ転送の効率を向上させるために、送信されるメッセージは圧縮されます。圧縮されたメッセージを入力し、解凍された元のメッセージを返してください。
圧縮規則: n[str] は、角括弧内の str が正確に n 回繰り返されることを意味します。n は正の整数 (0 < n <= 100) であり、異常な状態に関係なく、str には小文字の英字のみが含まれることに注意してください。
" "入力の説明:
圧縮されたメッセージを入力してください:
1) 無効な入力に関係なく、メッセージには余分なスペースがなく、角括弧は常に形式要件を満たしています;
2) 元のメッセージには数字が含まれておらず、すべての数字は繰り返し回数 n、例えば、5b や 3[8] のような入力はありません; 出力の
説明:
解凍後の元のメッセージ
注:
1) 元のメッセージの長さは、異常な状況に関係なく、1000 を超えません
例1
入力
3 [k]2[mn]
出力
kkkmnmn
、説明
k を 3 回繰り返し、mn を 2 回繰り返し、最後に kkkmnmn を取得例
2
入力
3[m2[c] ]
出力
mccmccmcc 、3回繰り返すのはmcccmccmcc」
21.【データ分類】
データ a を分類するための分類方法は次のとおりです: このデータ a の 4 バイト (4 バイトのサイズ) を特定の値 b に追加し、得られた結果が特定の値 c より小さい場合、この結果はデータ a の型; 得られた結果が c 以上の場合、無効な結果は、データ a の型が無効であることを意味します。たとえば、データ a=0x01010101, b=3 は、分類方法 (0x01+0x01+0x01+0x01)%3=1 に従って計算されるため、c=2 の場合、a のタイプは 1 です。 1 の場合、これ a の型が無効です。12個のデータを入力し、最初のデータをc、2番目のデータをb、残りの10個のデータを分類対象のデータaとする。最もデータの多いタイプ(有効なタイプ)のデータ数を計算します。
入力の説明:
12 個のデータを入力します。最初のデータは c、2 番目のデータは b、残りの 10 個のデータは分類が必要なデータ a です。
出力の説明:
データが最も多い型 (有効な型) に含まれるデータの数を計算します。
例 1
入力
5、2、1、2、3、4、5、6、7、8、9、10
出力
5
22.【射撃競技結果統計】
タイトル説明
複数の選手による複数のショットのスコアを含む射撃競技の成績証明書が与えられた場合、各選手を最高 3 つのスコアの合計に従って降順にランク付けし、降順でランク付けされたプレーヤーの ID シーケンスを出力してください。
条件は次のとおりです。
選手はシュートの成績で複数のマークを持つことができ、順序は固定されていません。
プレイヤーのスコアが 3 未満の場合、そのプレイヤーのスコアはすべて無効と見なされ、そのプレイヤーはランキングから除外されます。
プレイヤーのスコアの合計が等しい場合、スコアの合計が等しいプレイヤーは ID の降順に並べ替えられます。
説明を入力してください:
最初の行に整数 N を入力します。これは、ゲームで合計 N 回のショットが行われ、N 個のスコアが生成されたことを示します (2<=N<=100)。
2 行目には、各射撃に参加しているプレイヤーの ID を表す長さ N の整数シーケンスを入力します (0<=ID<=99)。
3 行目に長さ N の整数シーケンスを入力し、各射撃に参加するプレーヤーの対応するスコア (0<=スコア<=100) を示します。
出力の説明:
質問で設定された条件を満たす、降順でランク付けされたプレーヤー ID のシーケンス。
例 1
入力
13
3,3,7,4,4,4,4,7,7,3,5,5,5
53,80,68,24,39,76,66,16,100,55,53,80,55
出力
5,3,7,4
例証する
射撃大会は13回行われ、参加選手は{3,4,5,7}でした。プレーヤー番号 3 のスコア:
53、80、55、最高 3 つのスコアの合計: 80+55+53=188。
プレーヤー番号 4 のスコア: 24、39、76、66、最高 3 つのスコアの合計: 76+66+39=181。
プレイヤー番号 5 のスコア: 53、80、55、最高 3 つのスコアの合計: 80+55+53=188。
プレーヤー番号 7 のスコア: 68、16、100、最高 3 つのスコアの合計: 100+68+16=184。
各選手の成績上位3位の合計を比較すると、3位=5位>7位>4位。出力は次のとおりです。5、3、7、4
23.【サーバーブロードキャスト】
トピック: サーバー接続方法には、直接接続と間接接続があります。A と B が直接接続され、B と c が直接接続され、次に A と c が間接的に接続されます。直接接続と間接接続の両方でブロードキャストを送信できます。
N 個のサーバーを表す N * N 配列の場合、matrix[i][j] == 1 は、i と j が直接接続されていることを意味し、1 に等しくない場合、i と j が直接接続されていないことを意味します。matrix[i][i]== 1 、つまり、self と self が直接接続されています。マトリックス[i][j]==マトリックス[j][i] . 最初の計算では、すべてのサーバーがブロードキャストを受信できるように、複数のサーバーにブロードキャストする必要があります。
入力の説明: n * n 行列、
[[1,1,0],[1,1,0],[0,0,1]]
1
出力の説明: 整数
2
24.【最頻値と中央値を求める】
タイトルの説明:
1. 最頻値とは、データ セット内で最も多く出現する数を指し、最頻値は複数の場合もあります 2. 中央値とは、
小さいデータから大きいデータへと並べられたデータ セットの中央の数を指し、このグループのデータの数が奇数で、中央の
データが中央値である場合 このグループのデータの数が偶数の場合、中央の 2 つの数値の合計を 2 で割った結果が中央値
3.整数配列の要素のモードを見つけて、新しい配列を形成し、新しい配列の中央値を見つけます入力の説明
:
1次元整数配列を入力します。配列のサイズ範囲は0 < N < 1000です。要素の値の範囲 0 < E < 1000
出力の説明:
モード番号で構成される新しい配列の中央値を出力します
例 1: 10 11 21 19 21 17 21 16 21 18 15 を
入力し、21 25 を出力します。
タイトル説明:
Xiao Ming はキャンディー ボックスからランダムに一握りのキャンディーをつかみます. Xiao Ming がキャンディーの半分を取り出してクラスメートに配布するたびに. キャンディーが 1 つだけになるまで、ハンドのキャンディーを何回分割する必要がありますか? ?
例: 入力: 15 出力: 5 入力: 4 出力: 2
26.【欠損度を特定する最長母音列】
タイトル説明:
指定された欠陥度を持つ最長の母音部分文字列 | 制限時間: 1 秒 | メモリ制限: 262144K | 言語制限:
無制限 非母音文字の数が欠陥度です。例:
"a" と "aa" は母音列で、欠陥は両方とも 0 です。
・「aiur」は母音列ではない(母音文字なしで終わる)
・「あびら」は欠陥度2の母音列
文字列が与えられた場合、指定された欠陥度を持つ最長の母音部分文字列を見つけてその長さを出力し、条件を満たす母音部分文字列が見つからない場合は 0 を出力します。
部分文字列: 文字列内の連続する文字で構成される部分列は、文字列の部分文字列と呼ばれます。
Collapse
入力の説明:
最初の行の入力は整数で、予想される傷の程度を示し、値の範囲は [0, 65535] です。
次の行は文字 az と AZ のみからなる文字列で、文字列の長さは (0, 65535] です。
出力の説明:
出力は、条件を満たす母音文字部分文字列の長さを表す整数です。
例 1
入力
0
asdbuiodevauufgh
出力
3
説明
条件を満たす最長母音文字部分文字列は uio と auu の 2 つあり、長さは 3 です。
例 2
入力
2
aueeo
と出力
0 は、条件に一致する母音文字部分文字列がないことを
意味し、出力 0例 3入力1 aabeebuu出力5は、条件に一致する 2 つの最長母音文字部分文字列、つまり aabee と eebuu が存在することを示します。長さは 5
27.【私たちはチーム[コンピュータルーム]】
タイトル説明:
总共有n个人在机房,每个人有一个标号(1<=标号<=n),他们分成了多个团队,需要你根据收到的m条消息判定指定的两个人是否在一个团队中,具体的:
1、消息构成为a b c,整数a、b分别代表两个人的标号,整数c代表指令
2、c == 0代表a和b在一个团队内
3、c == 1代表需要判定a和b的关系,如果a和b是一个团队,输出一行'we are a team',如果不是,输出一行'we are not a team'
4、c为其他值,或当前行a或b超出1~n的范围,输出‘da pian zi'
输入描述:
1、第一行包含两个整数n,m(1<=n,m<100000),分别表示有n个人和m条消息
2、随后的m行,每行一条消息,消息格式为:a b c(1<=a,b<=n,0<=c<=1)
输出描述:
1、c ==1,根据a和b是否在一个团队中输出一行字符串,在一个团队中输出‘we are a team',不在一个团队中输出'we are not a team’
2、c为其他值,或当前行a或b的标号小于1或者大于n时,输出字符串‘da pian zi'
3、如果第一行n和m的值超出约定的范围时,输出字符串'Null'
输入:
5 7
1 2 0
4 5 0
2 3 0
1 2 1
2 3 1
4 5 1
1 5 1
输出:
We are a team
We are a team
We are a team
We are not a team
输入:
5 6
1 2 0
1 2 1
1 5 0
2 3 1
2 5 1
1 3 2
输出:
we are a team
we are not a team
私たちはチーム
da pian ziです
28. [文字列に含まれる厳密に増加しない連続した数字の最長シーケンスの長さ]
タイトル説明:
大文字と小文字と数字のみを含む文字列を入力します
文字列に含まれる非厳密に増加する連続数列の長さを求めます
例:
12234 は非厳密に増加する数列に属します
例:
入力
abc2234019A334bc
出力
4
説明:
2234は、厳密に増加しない最長の数列です。厳密に増加する連続した数列なので、長さは 4 です。
aaaaaa44ko543j123j7345677781
aaaaa34567778a44ko543j123j71
345678a44ko543j123j7134567778aa
29.【最長連続部分列】
タイトル説明:
N 個の正の整数から構成されるシーケンスがあります.
与えられた整数の合計から,合計が sumによって返される部分シーケンスの長さ
に等しくなるような最長の連続した部分シーケンスを見つけます.要件を満たすシーケンスがない場合は -1 を返します. 1:入力1, 2,3,4,2 6出力3分析: シーケンス 1,2,3 と 4,2 の両方が要件を満たすことができるため、最長の連続シーケンスは 1,2,3 であるため、結果は 3 です。
30.【出席情報】
タイトル説明:
この会社では、文字列を使用して従業員の出席情報を表しています。
不在:不在
遅い:遅い
leaveearly:早退
現在:普通に仕事に行く
ここで、従業員の出席情報に基づいて出席賞を取得できるかどうかを判断する必要があります. 出席賞を取得するための条件は次のとおりです。
欠席は1回以内、連続遅刻・早退禁止、連続7回出勤、欠席・遅刻・早退は3回以内
現在
現在欠席現在現在欠席早期現在欠席
出力の説明:
出席データ文字列に従って、出席報酬を取得できる場合は「true」を出力し、それ以外の場合は「false」を出力します。入力例の結果は次のようになります。
真/偽
31.【同じ部分文字列を探す】
タイトル説明:
2 つの文字列 t と p が与えられた場合、
t から p と同じ連続する部分文字列を見つけ、部分文字列の最初の文字の添え字を出力する必要があります 入力の
説明:
入力ファイルには、文字列 t と p をそれぞれ表す 2 行が含まれています。t
の長さが p より小さくなく
、t の長さが 1000000 を超えていないことを確認してください
。p の長さが 10000 を超えていません
。出力の説明:
p に等しい連続した部分文字列が t から見つかる場合、
t の部分文字列の最初の文字の添字を出力します。
添字は左から右に 1、2、3、... です。
そうでない場合は、"No "
そのような部分文字列が複数ある場合は、最初の文字の添字が最も小さい
例を出力します
入力:
AVERDXIVYERDIAN
RDXI
出力:
4
32.【条件を満たす数字の組み合わせがあるかチェック】
正の整数の配列が与えられた場合、規則 A=B+2C を満たす配列結合規則があるかどうかを確認します。
入力は、最初の行で出力配列の要素数を記述します 次の行は、スペースで区切られたすべての配列要素を出力します
出力説明 条件に合致する数字があればルール内のA/B/Cの値を同じ行に順番に出力 スペース区切り、出力がない場合は0
例 1: 入力 4 2 7 3 0 出力 7 3 2 説明: 7=3+2*2
例 2: 入力 3 1 1 1 および出力 0 は、条件を満たす組み合わせが見つからないことを意味します
Remarks: The length of the array is between 3 and 100. The array members are 0 to 65535. 配列メンバーは繰り返すことができますが、各メンバーは結果計算で 1 回しか使用できません。たとえば、配列メンバーは [0, 0,1,5] と 0 が 2 回表示されますが、式で 3 つの 0 が使用され、それぞれの要件を満たす解のセットが最大でも 1 つであることを確認するため、結果 0=0+2*0 は許可されません。数字のセット
33. [文字列のフィルターと並べ替え]
タイトルの説明: n 個の大文字と小文字からなる文字列を入力し、 ASCII コード値の小さい方から大きい方への並べ替え規則に従って、文字列内で
最小の ASCII コード値 (k >= 1 ) を持つ k 番目の文字を見つけて出力します。
文字列の位置インデックス (文字列の最初の文字の位置インデックスは 0)。
k が文字列の長さよりも大きい場合は、最大の ascii 値を持つ文字が配置されている文字列の位置インデックスを出力します。文字が繰り返されている場合は、文字の最小位置インデックスを出力します。
入力説明: 1 行目
に大文字と小文字で構成される文字列を入力します
2 行目に k を入力します。k は 0 より大きくなければならず、k は入力文字列の長さより大きくてもかまいません 出力説明: k 番目の最小の
ASCII
コード出力文字列の値 文字が配置されている文字列の位置インデックス。k が文字列の長さよりも大きい場合、
最大の ascii 値を持つ文字が配置されている文字列の位置インデックスを出力します; k 番目に小さい ascii コード値を持つ文字の繰り返しがある場合、最小位置インデックスを出力し
ます手紙の。
例 1:
入力
AbCdeFG
3
出力
5
34. [LISPライクな文字列操作]
题目描述
LISP语言唯一的语法就是括号要配对。
形如 (OP P1 P2 …),括号内元素由单个空格分割。
其中第一个元素OP为操作符,后续元素均为其参数,参数个数取决于操作符类型
注意:参数 P1, P2 也有可能是另外一个嵌套的 (OP P1 P2 …)
当前OP类型为add/sub/mul/div(全小写),分别代表整数的加减乘除法。简单起见,所以OP参数个数为2
举例
-输入:(mul 3 -7)输出:-21
输入:(add 1 2) 输出:3
输入:(sub (mul 2 4) (div 9 3)) 输出 :5
输入:(div 1 0) 输出:error
常规方法是用两个栈分别存放操作数和操作符,本文用一个栈来实现,首先从后往前提取操作数和操作符存放在vector,然后判断
35.【5键键盘的输出】
题目描述:
有一个特殊的五键键盘,上面有A、Ctrl-C、Ctrl-X、Ctrl-V、Ctrl-A A键在屏幕上输出一个字母A,Ctrl-C将当前所选的字母复制到剪贴板,Ctrl-X将当前选择的字母复制到剪贴板并清空所选择的字母,Ctrl-V将当前剪贴板的字母输出到屏幕,Ctrl-A选择当前屏幕中所有字母
条件如下:
クリップボードは最初は空です.
クリップボードに新しいコンテンツをコピーすると, 元のコンテンツが上書きされます
. 画面に文字がない場合, Ctrl-A は無効です.
文字が選択されていない場合, Ctrl-C と Ctrl-X は無効です
.文字が選択されている場合, A と Ctrl は無効です. 2 つの出力関数 -V のキーは, 最初に選択された文字をクリアしてから出力します. 一連の
キーボード入力が与えられると, 最終画面に文字数を出力します
. 入力の説明:
入力は 1 行です
. 分析を簡単にするために、数字 12345 を使用して、A、Ctrl-C、Ctrl-X、Ctrl-V、および Ctrl-A の入力を置き換えます. 数字はスペースで区切られています. 出力の
説明
:
画面上の文字の総数として数値を出力する
例 1
入力:
1 1 1
出力:
3
例 2
入力:
1 1 5 1 5 2 4 4
出力:
2
36.【メモリリソースの割り当て】
タイトル説明:
単純なメモリ プールがあります. メモリはサイズと粒度に応じて分類されます. 各粒度には利用可能なメモリ リソースがいくつかあります. ユーザーは一連のメモリを申請し、必要に応じてメモリ プールにリソースを割り当てる必要があります.成功したアプリケーションと失敗したアプリケーションのリスト。
割り当てのルールは次のとおりです:
割り当てられたメモリは、要求されたメモリ量以上でなければなりません. 要求を満たすメモリがあれば、それを割り当てる必要があります. 粒度の小さい割り当てを優先しますが、メモリは割り当てられません.分割して使用します。
申し込み順に割り当てが必要で、先に申し込んだ方が先に割り当てられます。
使用可能なメモリ割り当てがある場合、アプリケーションの結果は true になり、使用可能なメモリ割り当てがない場合は false が返されます。
注: メモリの解放は考慮されていません。
説明を入力してください:
最初の行は、メモリー粒度データ情報を含むメモリー・プール・リソースのリストです。粒度データはカンマで区切られ、内部粒度情報はコロンで区切られています。コロンの前はメモリー粒度のサイズです。コロンは量です。リソース リストは 1024 以下であり、各粒度の数は 4096 以下です。
2 行目はアプリケーション リストで、要求されたメモリ サイズはコンマで区切られています。アプリケーション リストは 100000 以下です。
好き:
64:2,128:1,32:4,1:128
50,36,64,128,127
1
2
出力の説明:
出力は、メモリ プールの割り当て結果です。
好き:
真、真、真、偽、偽
1
例
入力:
64:2,128:1,32:4,1:128
50,36,64,128,127
1
2
出力:
真、真、真、偽、偽
1
説明:
メモリ プール リソースには、合計 64K のメモリ リソース 2 つ、合計 128K のメモリ リソース 1 つ、合計 32K のメモリ リソース 4 つ、および合計 1K のメモリ リソース 128 が含まれます。
50、36、64、128、127 のメモリ アプリケーション シーケンスの場合、割り当てられるメモリは、64、64、128、NULL、NULL、
3回目のメモリ申請で128が割り当てられたので、出力結果は以下のようになります。
真、真、真、偽、偽
37.【猿の山登り】
ある日、頑固な猿が山のふもとから
山の頂上までn段のはしごを登ろうとしますが、この猿は一度に1段または3段しかジャンプしない癖がありますか
? サルはこのはしごをいくつ飛び越えることができるか
入力の説明:
数字を 1 つだけ入力 n 0<n<50
このはしごには複数のステップがあります
出力の説明:
ジャンプする方法の数
例:
入力
50
出力
122106097
入力
3
出力
2
38.【流行時間の計算】
疫病の拡散時間を計算 | 制限時間: 1 秒 | メモリ制限: 32768K | 言語制限: 無制限
マップ (マップは n*n エリアで構成されています) では、いくつかのエリアが細菌に感染しています。感染部位は、毎日周囲(上下左右)の4箇所に感染します。
与えられたマップに従って計算してください。何日後に全地域が感染しますか。
最初のマップのすべての領域が感染している場合、または感染した領域がない場合は、-1 を返して
折りたたまれます
入力の説明:
N*N の数字の行 (0、1 のみを含み、他の数字を含まない) は、数字の間のマップを表します、分割するために、0 は感染していない地域、1 は感染した地域を意味します。
各 N の数字はマップの行を表し、入力データは N 行 N 列の領域マップを表します。
たとえば、入力 1,0,1,0,0,0,1,0,1 はマップ
1,0,1
0,0,0
1,0,1を意味します
出力の説明:
何日かを示す整数has pass, all すべてのエリアが感染している.
例 1: 1,0,1,0,0,0,1,0,1
を入力し、2を出力. 1 日後、マップの中心点のみが感染していない.2 日後日、すべてが感染しています。例 2 : 0,0,0,0 を入力し、感染領域がないことを示す-1を出力します。感染者備考: 1<=N <200
39.【GPUの計算能力の計算】
GPU の計算能力をフルに発揮させるには,
実行のためにできるだけ多くのタスクを GPU に渡す必要があります.
タスク配列があり,
配列要素は内部に追加された新しいタスクの数を表します.これは 1 秒
であり、毎秒新しいタスクが発生します
.GPU が一度に最大 n タスクを実行でき、
1 回の実行に 1 秒かかる
と仮定します.GPU がアイドル状態でない場合、少なくともどれくらいの時間がかかりますか?実行を完了します。
入力の説明
最初のパラメーターは GPU によって実行されるタスクの最大数、
値の範囲は 1 ~ 10000、2
番目のパラメーターはタスク配列の長さ、
値の範囲は 1 ~ 10000、3
番目のパラメーターは
数です。タスク配列の範囲、1~10000
出力には、
すべてのタスクを実行するのにかかった秒数が示されます
入力 例
3
5
1 2 3 4 5
出力
6
一度に最大 3 つのタスクを実行でき、最小時間は 6 秒です。
例 2
入力
4
5
5 4 1 1 1
出力
5
一度に最大 4 つのタスクを実行でき、最小所要時間は 5 秒であることに注意してください。
40.【文字列変換最小文字列】
タイトル説明:
给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。
变换规则:交换字符串中任意两个不同位置的字符。
输入描述:
一串小写字母组成的字符串s
输出描述:
按照要求进行变换得到的最小字符串
备注:
s是都是小写字符组成
1<=s.length<=1000
示例
输入:
abcdef
输出:
abcdef
说明:
abcdef已经是最小字符串,不需要交换
输入:
bcdefa
输出:
acdefb
说明:
a和b进行位置交换,可以得到最小字符串
41.【篮球比赛】
篮球(5V5)比赛中,每个球员拥有一个战斗力,每个队伍的所有球员战斗力之和为该队伍的总体战斗力。现有10个球员准备分为两队进行训练赛,教练希望2个队伍的战斗力差值能够尽可能的小,以达到最佳训练效果。给出10个球员的战斗力,如果你是教练,你该如何分队,才能达到最佳训练效果?请输出该分队方案下的最小战斗力差值。
输入描述:
10个篮球队员的战斗力(整数,范围[1,10000]),战斗力之间用空格分隔,如:10 9 8 7 6 5 4 3 2 1
不需要考虑异常输入的场景。
输出描述:
最小的战斗力差值,如:1
示例1
输入
10 9 8 7 6 5 4 3 2 1
输出
1
说明
1 2 5 9 10分为一队,3 4 6 7 8分为一队,两队战斗力之差最小,输出差值1。备注:球员分队方案不唯一,但最小战斗力差值固定是1。
これは難しい動的計画問題であり、2 つのグループを 2 つのグループに分割する必要があるため、典型的なナップザック問題に変換するのは容易ではありません。
これが動的プログラミングの問題であると知る前に、私は自分なりの解決策を提示しました (現時点では、この解決策は間違っているはずですが、この解決策を覆すテスト ケースが見つからなかったので、この解決策は当分取っておきます)。であること)。
基本的な考え方は次のとおりです。
1. まず、戦闘能力に従ってプレイヤーを分類します。
2. 戦闘効果のバランスを確保するために、戦闘効果が最も強いグループと最も弱いグループを 1 つのグループに分けることができるため、最初の小さなグループ (最も強いグループと最も弱いグループ) が得られます。 、そしてそれらはグループAに分けられます
3. 残りのチームで、SA に最も近い戦闘力を持つ組み合わせを見つけ、グループ B に分けます。その戦闘力の合計が SB であり、次に最大と最小の組み合わせを見つけ、次に SA (または SB,これは中間にある必要があります (この組み合わせが SA または SB に適しているかどうかを比較します)。次に、最後のグループまで SA と SB の差が最小になるように、残りの組み合わせの中から 2 つの組み合わせを探します。
4. 最後のグループは特別な扱いが必要です, プレイヤーが2人しかいない可能性があるため. このとき, SAとSBの値に従ってメンバーを合理的に割り当て, 最終的にグループ化の結果を取得する必要があります.
42.【連続文字の長さ】
タイトル説明:
大文字のみを含む文字列が与えられた場合、同じ文字を含む部分文字列の中で k 番目に長い部分文字列の長さを見つけ、同じ文字を含む最も長い部分文字列のみを取得します。
説明を入力してください:
最初の行には、大文字のみを含む部分文字列 (1<length<=100) があります。
2 行目は k の値
出力の説明:
k 番目に回数が多い文字の連続出現回数を出力します。
例
入力:
AABAAA
2
出力:
1
説明:
同じ文字が一番多い A 3 回連続
2 番目に多いが 2 回 A が 3 回連続
入力:
AAAAHHHBBCDHHHH
3
出力:
2つの
指示:
A と H は同じ文字の連続回数が最も多く、
H は 2 番目に 4 回、3 回は
43 です。 [素数の積]
**トピック:
**RSA 暗号化アルゴリズムは、ネットワーク セキュリティの世界で広く使用されています。これは、非常に大きな整数の素因数分解の難しさを利用しています。データが大きいほど、セキュリティ ファクターが高くなります。与えられた 32 ビットの整数を素因数分解して調べてください。 2 つの素数の積です。
44.【不等式の集合が制約を満たすか判定し、最大差を出力する】
要件: 1 秒 65535k
不等式の集合が与えられた場合、それが真であるかどうかを判断し、不等式の最大の差を出力します (浮動小数点数の整数部分を出力します) 要件:
1
> 不等式の係数が double 型で、2 次元配列
2> 不等式の変数の型は int 型で、これは a 3
> 不等式のターゲット値は double 型で、これは 1 次元配列です
4> 不等式の制約は文字列配列で、これは">"、">="、"="、"<="、"< "
入力説明: a11, a12, a13, a14, a15; a21, a22, a23, a24, a25; a31, a32, a33, a34, a35; *1, *2, *3, *4, *5; b1, b2,b3,b4,b5;<=,<=,<=
出力の説明:
true または false、最大差
45.【出力文字列にはすべての整数の最小和が含まれる】
タイトル説明:
入力文字列 s 出力 s には、すべての整数の最小合計が含まれています
。
文字列 s には、az、AZ、+、- のみが含まれます。
有効な整数には、0、2、3,002、102 個の
負の整数などの 1 つ以上の 0 ~ 9 の正の整数が含まれます。負の符号で始まり、数値の部分は次のようになります。 -2、-012、-23、-00023 などの 0 ~ 9 の構成 入力の
説明:
数字を含む文字列
出力の説明:
すべての整数の最小合計
例
入力:
bb1234aa
出力:
10
入力:
bb12-34aa
出力:
-31
説明:
1+2-(34)=-31
46.【定員】
与えられた非負の整数のセットを並べ替えて、最大の整数を形成します。
例 1:
入力: [10,2]
出力: 210
例 2:
入力: [3,30,34,5,9]
出力: 9534330
説明: 出力が非常に大きくなる可能性があるため、整数ではなく文字列を返す必要があります。
47.【友達募集】
学校では N 人の子供がチームで立ち、i 番目の子供の身長は height[i] であり、自分より背が高い最初の子供 j は i 番目の子供に見える場合、j は親友です。 i の (j > i が必要です)。
リストを再生成してください.対応する位置の出力は,各子供の仲の良い友達の位置です.良い友達が表示されない場合は0に置き換えてください.
子の数の範囲は [0, 40000] です。
説明を入力してください:
1 行目に N を入力すると、N は N 個の子が存在することを意味します。2 行目には、N 個の子の高さ height[i] を入力します。これらはすべて整数です。
出力の説明:
N 人の子供の仲の良い友達の場所を出力する
例 1: 2
を入力します。
100 95
出力
0 0
48.【キャラの統計と並び替え】
[文字の統計と並べ替え] スペースを含まない文字のみの文字列が与えられた場合、文字列内の各文字 (大文字と小文字を区別) の出現回数をカウントし、文字の出現回数を最大から最小に並べ替えます。各文字とその文字列を出力します
。の順序での出現回数。回数が同じ場合は自然順序でソートし、小文字が大文字より前に来るようにします。
説明を入力してください:
文字のみを含む文字列である行を入力します。
出力の説明:
末尾のセミコロンに注意し、英字のセミコロンで区切り、英字の出現回数が多い順に各文字と文字数を出力します。
例 1:
入力
xyxyXX
出力
x:2;y:2;X:2
49.【ランダムな整数列の2つの数の和の絶対値が最小】
要件: 1 秒 262144k
ランダムな整数配列 (正負の整数を含む) が与えられた場合、その中から 2 つの数値を見つけ、それらの合計の絶対値が最小値であり、2 つの数値を小さいものから大きいものまで返し、その絶対値を返します。 . 各入力は 1 つの回答にのみ対応します。ただし、配列内の同じ要素を 2 回使用することはできません
入力: スペースで区切られた整数の順序付けられたシーケンス、最大 1000、範囲 (-65535、65535)
出力: 2 つの数値の合計の最小絶対値
例:
入力: -1 -3 7 5 11 15
出力: -3 5 2
50.【テキサスホールデム】
5 枚のカードで、各カードはカード サイズとスートで構成され、カード サイズは 2 ~ 10、J、Q、K、A で、カード スートはハート、スペード、クラブ、ダイヤの 4 つのスートのいずれかです。判定カードの種類:
カード タイプ 1、ストレート フラッシュ: ハート 2 ハート 3 ハート 4 ハート 5 ハート 6 など、同じスートのストレート。
カード タイプ 2、フォー オブ ア カインド: 同じ数字の 4 つ + ハート A スペード A クラブ A ダイヤ A + スペード K などの 1 枚のカード。
カード タイプ 3、フルハウス: 3 つの同一の数字 + ペア (ハート 5 スペード 5 クラブ 5 + ダイヤ 9 クラブ 9 など)。
カードタイプ 4、フラッシュ: ダイヤ、3 ダイヤ、7 ダイヤ、10 ダイヤ、J ダイヤ、Q など、同じスート。
牌型5,顺子:花色不一样的顺子,如红桃2黑桃3红桃4红桃5方块6。
牌型6,三条:三张相同 + 两张单。
牌型7,其他。
说明:
1)五张牌里不会出现牌大小和花色完全相同的牌。
2)前面的牌型比后面的牌型大,如同花顺比四条大,依次类推。
输入描述:
输入由5行组成
每行为一张牌大小和花色,牌大小为2~10、J、Q、K、A,花色分别用字符H、S、C、D表示红桃、黑桃、梅花、方块。
输出描述:
输出牌型序号,5张牌符合多种牌型时,取最大的牌型序号输出
示例1
输入:
2 H
3 C
6 S
5 S
4 S
输出:
5
51.【靠谱的车】
程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。
出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。
比如:
-
23再多一块钱就变为25;
-
39再多一块钱变为50;
-
399再多一块钱变为500;
Xiao Ming は運転手のトリックを見抜いており、彼の知識を利用して運転手の陰謀を打ち負かそうとしていました。
メーターの表示値が与えられた場合、実際のコストを返します.
入力の説明:
数値 N の 1 つの行だけが、オドメーターの表示値を示します。(1<=N<=888888888)。
出力の説明:
実際に発生したコストを表す数値。キャリッジ リターンで終了します。
例 1:
入力 5
出力 4
説明: 5 はメーターの表面読み取り値を意味します。4 は、実際の費用が実際にはわずか 4 元であることを意味します。
例 2:
入力 17
出力 15
説明: 17 は、メーターの表面読み取り値を意味します。15は、実際の費用がわずか15元であることを意味します。
例 3:
100 を入力し
て 81 を出力
説明: 100 は課金メーターの表面読み取り値を意味します。81は、実際の費用がわずか81元であることを意味します。
52.【VLANリソースプール】
タイトル説明:
***VLAN***はLAN機器を論理的に分割する技術で、異なるVLANを識別するためにVLAN ID(1~4094の整数)という概念が導入されています。
VLAN ID のリソース プール (以下、VLAN リソース プールと呼びます) を定義します. リソース プール内の連続する VLAN は開始 VLAN-終了 VLAN で表され、非連続の VLAN は単一の整数で表されます. すべての VLAN は英語のコンマで接続されます. . これで
VLANリソースプールができたので、事業者はリソースプールからVLANを申請する必要があり、申請したVLANをVLANリソースプールから外して、リソースプールを出力する必要があります。
説明を入力してください:
1行目は文字列形式のVLANリソースプール、2行目は事業者が申請するVLAN、VLANの値の範囲は[1,4094]までの整数です。
出力の説明:
適用された VLAN を入力 VLAN リソース プールから削除した後の文字列形式の VLAN リソース プール。出力要件はトピックの説明の形式を満たし、VLAN の昇順で出力されます。
適用された VLAN が元の VLAN リソース プールにない場合は、元の VLAN リソース プールの昇順で並べ替えられた文字列をそのまま出力します。
述べる:
The value range of the number of VLANs in the input VLAN resource pool is an integer between [2-4094]. リソース プール内の VLAN は繰り返されておらず、有効です ([1,4094] の間の整数)。の。
例
入力:
1-5
2
出力:
1,3-5
説明:
元の VLAN リソース プールには VLAN 1、2、3、4、および 5 があり、リソース プールから 2 を削除すると、VLAN 1、3、4、および 5 が残ります。結果は、タイトルの説明に従って昇順になります。フォーマットは 1,3 -5 です。
入力:
20-21,15,18,30,5-10
15
出力:
5-10,18,20-21,30
命令:
元の VLAN リソース プールには VLAN 5、6、7、8、9、10、15、18、20、21、および 30 があり、リソース プールから 15 を削除すると、リソース プール内の残りの VLAN は 5 になります。 , 6, 7, 8, 9, 10, 18, 20, 21, 30, タイトルの記述形式に従って、昇順の結果は 5-10, 18, 20-21, 30.
入力:
5,1-3
10
出力:
1-3,5
解説:
元のVLANリソースプールにVLAN1、2、3、5があり、適用したVLAN10は元のリソースプールにない 元のリソースプールをタイトルの記述形式に従って昇順に並べ替えた後の出力結果は 1 ~ 3,5 です。
53.【タスク最適スケジューリング】
【タスク最適スケジューリング】 システムが実行するタスクのリストを表す正の整数群を与え、配列の各要素がタスクを表し、要素の値がタスクの種類を表します。すべてのタスクを完了するのに必要な最小時間を計算します。
タスクの実行規則は次のとおりです。
1. タスクは任意の順序で実行でき、各タスクの実行時間は 1 時間単位です。
2. 同じタイプの 2 つのタスクの間に N 単位の冷却時間が必要です.たとえば、N が 2 で、タイプ 3 のタスクが時間 K で実行される場合、K+1 と K+2 は実行できません。 3つのタスク。
3. システムは任意の単位時間でタスクを実行または待機できます。注: 配列の最大長は 1000 で、最大速度は 1000 です。
入力内容:
1行目は半角カンマ区切りの配列を記録. 配列の長さは1000以下, 配列要素の値は1000以下. 2行目はタスクの冷却時間を記録. Nは正の整数、および N<=100。
出力の説明:
出力は、すべてのタスクを実行するのに必要な最小時間です。
例:
入力
2,2,2,3
2
出力
7
54.【終わりを探せ】
55.【スプライシングURL】
タイトル説明:
URL プレフィックスと URL サフィックスを指定すると、分割して完全な URL に接続する必要があります。
プレフィックスの末尾とサフィックスの先頭に / がない場合は、/ コネクタを自動的に追加する必要があります
。プレフィックスの末尾とサフィックスの先頭は / であり、自動的にする必要があります 重複排除の
制約: プレフィックスとサフィックス URL の無効性を考慮する必要はありません
入力の説明:
URL プレフィックス (長さが 100 未満の文字列) URL サフィックス (長さが 100 未満の文字列)
出力の説明:
スプライシング後のURL の
例
入力:
/acm、/bb
出力:
/acm/bb
入力:
/abc/,/bcd
出力:
/abc/bcd
入力:
/acd,bef
出力:
/acd/bef
入力:
、
出力:
/
56.【マトリックス最大値】
タイトルの説明:
0 と 1 のみを含む N*N の 2 次元行列が与えられた場合、その 2 次元行列の最大値を計算してください. 計算規則は次のとおりです:
各行の要素は、添字の順序で 2 進数を形成し (添字が大きいほど、順序が低くなります)、2 進数の値が行の値になります。行列の行の値の合計が行列の値です。
行内の個々の要素の位置を変更するには、各行の要素全体を循環的に左または右に移動します。例:
[1,0,1,1,1] は全体として 2 ビット右に移動して [1,1,1,0,1] になり、2 進数は 11101 で、値は 29 です。
[1,0,1,1,1]は全体で2ビット左に移動して[1,1,1,1,0]となり、2進数は11110、値は30となります。
入力の説明:
入力の最初の行は正の整数で、N のサイズを記録します。0 < N <= 20 です。
入力行 2 ~ N+1 は 2 次元の行列情報で、行内の要素は半角カンマで区切られています。
出力の説明:
マトリックスの最大値。
例 1:
5を入力
1,0,0,0,1
0,0,0,1,1
0,1,0,1,0
1,0,0,1,1
1,0,1,0,1
1
2
3
4
5
6
出力
122
1
説明:
1 行目を全体として 1 ビット右にシフトし、この行の最大値 [1,1,0,0,0] を取得します。2 進数で 11000、24 です。 10進数で。
2 行目は、全体で 2 ビット右に移動して、この行の最大値 [1,1,0,0,0] を取得します。これは、2 進数で 11000、10 進数で 24 です。
3 行目は全体として 1 ビット左に移動し、この行の最大値 [1,0,1,0,0] を取得します。これは、2 進数で 10100、10 進数で 20 です。
4 行目は、全体で 2 ビット右に移動して、この行の最大値 [1,1,1,0,0] を取得します。これは、2 進数で 11100、10 進数で 28 です。
5 行目は全体として 1 ビット右に移動して、この行の最大値 [1,1,0,1,0] を取得します。これは、2 進数で 11010、10 進数で 26 です。
合計は 24+24+20+28+26=122 です。
57.【最小伝送遅延】
問題の説明:
M*N ノード マトリックスがあり、各ノードは 8 方向 (上、下、左、右、および 4 つのスラッシュ方向) にデータ パケットを転送できます。各ノードは、転送時に固定遅延を消費します。遅延値 (つまり、連続して同じ遅延転送を持つ K ノードがある場合、K-1 遅延値を減らすことができます)、左上隅 (0, 0) を見つけて、データ パケットを右下隅 (M -1, N- 1) を転送し、最短の遅延を転送します。
入力:
最初の行に 2 つの数値 M、N があり、その後に M 行が続きます。各行には、M*N の行列を表す N 個のデータがあります。
出力:
最短遅延値。
例 1:
3 3
0 2 2 1
2
1 2 2 1
出力: 3
例 2:
3 3
2 2 2 2
2 2
2 2
出力: 4 (2 + 2 + 2 - (3-1))
58.【効率的なタスクプランニング】
タイトルの説明:
1 ~ n の番号が付けられた n 台のマシンがあり、それぞれがジョブを完了する必要があり、マシンは構成後に独立してジョブを完了することができます。i 番目のマシンをセットアップするのに B 分かかる必要があるとします。その後、実行を開始し、J 分後にタスクを完了します。ここで、すべてのタスクが最短時間で完了するように、タスクを配置する順序を選択する必要があります。2 台のマシンを同時に構成することはできませんが、構成されたマシンはそれぞれのジョブを同時に実行できます。
入力の説明:
入力の 1 行目は、タスク データの合計 M グループ (1 < M <= 10) を表します。
各データ セットの最初の行は、マシンの数 N (0 < N <= 1000) を指定する整数です。次の N 行にはそれぞれ 2 つの整数が含まれます。1 つ目は B (0 <= B <= 10000) を表し、2 つ目は J (0 <= J <= 10000) を表します。
データの各セットは、空白行で区切られずに連続して入力されます。タスクの各セットは、個別に時間を計られます。
出力の説明:
タスクのグループごとに、最短の完了時間を出力し、各グループの結果が 1 行に表示されます。たとえば、2 セットのタスクには 2 行の出力が必要です。
例 1:
入力
1
1
2 2
出力
4
59.【最大部品数】
【説明】
与えられた非負の整数のセットを並べ替えて、最大の整数を形成します。
【例】
入力: [10,2]
出力: 210
入力: [3,30,34,5,9]
出力: 9534330
60.【長方形の交点面積】
【長方形の交点の面積】 座標系において、与えられた3つの長方形について、交点の面積を求めます。
入力の説明:
入力の 3 行は、それぞれ「左上隅の x 座標」、「左上隅の y 座標」、「長方形の幅」、「長方形の高さ」を表す 3 つの長方形の位置です -1000<=x,y<1000出力
説明 :
3 つの長方形が交差する領域を出力し、交差しない場合は 0 を出力します
例:
入力
1 6 4 4
3 5 3
4 0 3 7 3
出力
2
61.【簡易メモリプールの実装】
タイトル 説明
要求コマンドに従ってメモリの割り当てと解放を完了するための単純なメモリ プールを実装してください。
メモリ プールは、REQUEST と RELEASE の 2 種類の操作コマンドをサポートし、その形式は次のとおりです:
REQUEST=要求されたメモリ サイズは、指定されたサイズのメモリが割り当てられるように要求されていることを示します。 memory が返されます; メモリが不足している場合、または指定されたサイズが 0 の場合は、エラーを出力します。
RELEASE=解放されたメモリの最初のアドレスは、以前に割り当てられたメモリが解放されることを意味し、解放が成功した場合は出力は不要であり、存在しない最初のアドレスが解放された場合はエラーが出力されます。
注:
1. メモリー・プールの合計サイズは 100 バイトです。
2. メモリプールのアドレス配置は連続メモリとし、下位アドレスからの配置を優先します。
3. メモリが解放されると、再度割り当てることができます。解放されたメモリは、解放されたときに再度解放することはできません。
4. 割り当てられたメモリ ブロックの中間アドレスは解放されません。
5. 解放操作は、最初のアドレスに対応する 1 つのメモリ ブロックに対してのみ動作し、他のメモリ ブロックには影響しません。
回答要件
制限時間: 1000ms、メモリ制限: 256MB
最初の行は、操作コマンドの数を示す整数 N で、値の範囲は 0 < N <= 100 です。
次の N 行では、各行で運用コマンドが示され、運用コマンドとパラメーターは "=" で区切られます。
入力 出力
例 1:
2
REQUEST=10
REQUEST=20出力
例 1:
0
10
1.
2.
3. 4.
5.
6.
7.例 2: 5 REQUEST=10 REQUEST= 20 RELEASE=0 REQUEST= 20 REQUEST= 10出力サンプル 2: 0 10 30 0 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.プロンプトの説明:最初のコマンド、アプリケーション アドレス 0~9 10 バイトのメモリ、最初のアドレス 0 を返し、2 番目の命令で、アドレス 10 ~ 29 で 20 バイトのメモリを適用し、最初のアドレス 10 を返し、3 番目の命令で、最初のアドレス 0 でメモリ アプリケーションを解放し、0 ~ 9 アドレスのメモリを解放し、アイドル状態になり、正常に解放され、出力は不要
4番目の命令は、20バイトのメモリに適用され、アドレス09の連続メモリ空間は20バイト未満であり、アドレス3049を見つけ、最初のアドレス30に戻ります 5番目の命令は、10バイトに適用され、アドレス0のメモリ
空間~9 で十分です。最初のアドレス 0 を返します
62.【工場組立ラインのスケジューリング】
タイトル説明:
工場には n 個の独立したジョブを並行して完了するための m 個のパイプラインがあります. 工場にはスケジューリング システムが設定されています. ジョブのスケジューリングでは、処理時間が最も短いジョブが常に優先されます.
パイプラインの数 m と完了するジョブの数 n が与えられると、各ジョブの処理時間はそれぞれ t1、t2...tn になります。すべてのジョブを処理するのにかかる時間をプログラムして計算してください。
n>m の場合、処理時間の短い m 個のジョブが最初にパイプラインに入り、残りは待機し、1 つのジョブが完了すると、残りの処理時間が最も短い残りのジョブが順番に処理されます。
説明を入力してください:
最初の行には、パイプラインの数 m とジョブの数 n をそれぞれ表す 2 つの整数 (スペースで
区切られた) が含まれています。2 行目は、各ジョブ t1、t2 の処理時間を表す n 個の整数 (スペースで区切られた) を入力します。 .tn.
0< m,n<100
0<t1,t2…tn<100
注: 入力が有効であることを確認してください。
出力の説明:
処理するすべてのジョブの合計時間を出力する
例
入力:
3 5
8 4 3 2 10
出力:
13
命令:
最初に、時間 2、3、および 4 の 3 つの割り当てを配置します。
最初のパイプラインは最初にジョブを終了し、残り時間が最も短いジョブ 8 をスケジュールします。
2 番目のパイプラインはジョブを完了し、残り時間が最も短いジョブ 10 をスケジュールします。
合計労働時間は、2 番目の組み立てラインがジョブを完了するための時間 13 (3+10) です。
63.【特急輸送】
【説明】
宅配便を配達するトラック, 配達された宅配便はすべて異なるサイズの直方体の宅配ボックスに入れられます. トラックに過負荷をかけずにより多くの宅配便を積載できるようにするには、最大で何人の宅配便を積載できるかを計算する必要があります.
宅配便のサイズに制限はなく、宅配便の数は最大1,000台、トラックの最大積載量は50,000台です。
入力の説明
最初の行には、各配送業者の重量がカンマで区切られて入力されます。たとえば、5、10、2、11 です。2 行
目には、トラックの積載量が次のように入力されます。たとえば、20
異常な入力を考慮する必要はありません
出力の説明
積載可能な最大量を出力 速達 例:3
【例】
入力:
5, 10, 2,
11 20
出力:
3
説明:
トラックの積載量は 20 で、配達員は最大で 3 人 5, 10, 2 しか存在できないため、出力は 3 です。
64.【ディレクトリ削除】
要件: 1 秒 262144k
ファイル システムには N 個のディレクトリがあり、各ディレクトリには一意の ID があります。各ディレクトリには親ディレクトリが 1 つしかありませんが、各親ディレクトリには 0 個以上のサブディレクトリを含めることができ、ディレクトリ構造はツリー構造です。
ルート ディレクトリの ID が 0 で、ルート ディレクトリに親ディレクトリがなく、他のすべてのディレクトリの ID が一意の正の整数で表され、均一に番号が付けられているとします。
ディレクトリIDとその親ディレクトリID対応の親子関係テーブル[サブディレクトリID、親ディレクトリID]と、削除するディレクトリIDを与えて、残りのすべてのディレクトリについて、返されたID シーケンスは昇順で出力されます。
注:
1. 削除するディレクトリまたはファイル番号は、入力 ID シーケンスにある必要があります;
2. ディレクトリが削除されると、そのすべてのサブディレクトリが削除されます。
入力内容:最初の入力行は親子関係テーブルの長さm、次のm行はm個の親子関係ペア、最後の行は削除するIDです。シーケンス内の要素はスペースで区切られています。例を参照してください。
出力説明: 指定したディレクトリを削除した後に残ったディレクトリIDを示すシーケンスを出力します。
例 1
入力
5
8 6
10
8 6 0
20 8
2 6
8
出力
2 6
1
2
3
4 5 6 7 8 9 10 11
12
65.【タスクスケジューリング問題】
オペレーティング システムのタスク スケジューリングの問題。オペレーティング システムのタスクは、システム タスクとユーザー タスクの 2 種類に分けられます。その中で、システム タスクの優先度は < 50 であり、ユーザー タスクの優先度は >= 50 かつ <= 255 です。優先度が 255 を超えるタスクは不正なタスクであり、削除する必要があります。長さnのタスクキューtask[]があり、タスク内の要素値がタスクの優先度を示し、値が小さいほど優先度が高い。関数スケジューラは、以下の機能を実現し、タスク[]内のタスクを、システムタスクとユーザータスクに従って、順番にsystem_task[]配列とuser_task[]配列に格納します(配列内の要素の値は、 task[] 配列内のタスク) であり、優先度の高いタスクが前にあり、配列要素は -1 で終了を示します。
例:task[] = {0, 30, 155, 1, 80, 300, 170, 40, 99} system_task[] = {0, 3, 1, 7, -1} user_task[] = {4, 8, 2、6、-1}
関数インターフェース void scheduler(int task[], int n, int system_task[], int user_task[])
66.【英語入力方式単語連想】
タイトル説明:
監督者は、英語入力方式の単語連想機能を実現することを期待しています。
ユーザーが入力した単語の接頭辞に従って、入力された英文からユーザーが入力したい単語を関連付け、関連付けられた単語列を辞書順に出力します。ユーザーが入力した単語のプレフィックスを出力します。
知らせ:
英単語の連想は大文字と小文字を区別し、"don't" などの省略形は "don" と "t" の 2 つの単語として判断されます. 出力単語シーケンスは単語の繰り返しを含むことができず、句読点のない英単語のみとなります.
説明を入力してください:
2行入力してください
1 行目に、英単語 word と punctuation からなるステートメント str を入力します。
次の行は英単語のプレフィックス pre
0 < word.length() <= 20
0 < str.length <= 10000
0 < 前 <=20
出力の説明:
要件を満たす語列または接頭辞を出力する. 複数ある場合は, 語間を半角スペースで区切る.
例
入力:
I love you
输出
:
彼は
次のように説明しています。
ユーザーは「愛してる」という単語文を入力し、「私」、「好き」、「あなた」の 3 つの単語を抽出しました。入力情報なので、ユーザーが入力した単語の接頭辞を出力します。
入力:
世界で一番遠い距離は 生と死の間じゃない でも私やあなたの前に立つと それでもあなたは私があなたを愛していることを知らない
f
输出:
front furthest
67.【求解连续数列】
【求解连续数列】已知连续正整数数列{K}=K1,K2,K3…Ki的各个数相加之和为S,i=N (0<S<100000, 0<N<100000), 求此数列K。
输⼊描述:
输⼊包含两个参数,1)连续正整数数列和S,2)数列⾥数的个数N。
输出描述:
如果有解输出数列K,如果⽆解输出-1
示例1:
输⼊
525 6
输出:
85 86 87 88 89 90
68.【区间交集】
【区间交集】给定一组闭区间,其中部分区间存在交集。任意两个给定区间的交集,称为公共区间(如:[1,2],[2,3]的公共区间为[2,2],[3,5],[3,6]的公共区间为
[3,5])。公共区间之间 若存在交集,则需要合并(如:[1,3],[3,5]区间存在交集[3,3],需合并为[1,5])。按升序排列 输出合并后的区间列表。
输入描述: 一组区间列表,区间数为 N: 0<=N<=1000;区间元素为 X: -10000<=X<=10000。
输出描述: 升序排列的合并区间列表
备注:
1、区间元素均为数字,不考虑字母、符号等异常输入。
2、单个区间认定为无公共区间。
示例:
输入
[[0, 3], [1, 3], [3, 5], [3, 6]]
输出
[[1, 5]]
69.【玩牌高手】
标题:玩牌高手 | 时间限制:1秒 | 内存限制:32768K | 语言限制:不限
長さ n の整数配列を指定すると、プレイヤーが n ラウンドで選択できるカード スコアを表します。プレイヤーはルールに基づいてカードを選択します。すべてのラウンドの後に獲得できる最高の合計スコアを計算してください。選択ルールは次のとおりです。
1.各ラウンドで、プレーヤーはラウンドの顔を取得することを選択でき、合計スコアがラウンドの顔に追加され、新しい合計スコアが取得されます。
2. プレイヤーは、このラウンドのカードの面を選択せずに次のラウンドに直接スキップできます.このとき、現在の合計スコアは3ラウンド前の合計スコアに復元されます.現在のラウンドが3以下の場合(つまり、[ラウンドをスキップ] を選択)、合計スコアは 0 に設定されます。
3. プレーヤーの最初の合計スコアは 0 で、各ラウンドに順番に参加する必要があります。
説明を入力してください:
最初の行は小文字のコンマで区切られた文字列で、n ラウンドのカード スコア (1<= n <=20) を示します。
小数値は整数で、-100 <= 小数値 <= 100 です。
フォーマットの問題は考慮されません。
出力の説明:
すべてのラウンド後にプレーヤーが獲得した最高合計ポイント。
例 1
入力
1,-5,-6,4,3,6,-2
出力
11
例証する
全部で7ラウンドあります。
最初のラウンドでは、ラウンドの顔が選択され、合計スコアは 1 です。
2 回戦では、このラウンドの顔は選択されず、合計スコアは 0 に戻ります。
第3ラウンドでは、このラウンドの顔は選択されず、合計スコアは0に戻ります.
第 4 ラウンドでは、このラウンドのカード面が選択され、合計スコアは 4 です。
第5ラウンドでは、このラウンドのカードフェイスが選択され、合計スコアは7です.
第6ラウンドでは、このラウンドのカードフェイスが選択され、合計スコアは13です.
第7ラウンドでは、このラウンドのカードを選択しなかった場合、合計スコアは3ラウンド前のスコア1に戻ります。つまり、第4ラウンドの合計スコアは4です。このラウンドのカードを選択した場合、合計スコアは 11 になるので、このラウンドのカードを選択します。
したがって、最終的な最大総合スコアは 11 です。
70. [ログ時刻順にソート]
運用保守エンジニアは、1 日の製品ラインの実行によって生成された n 個のログを収集しました。
次に、ログの時間順序に従ってログをソートする必要があります。
ログの時間形式は H:M:SN
H は時間 (0~ 23)
M は分 (0 ~ 23) を意味します。 59)
S は秒 (0 ~ 59) を意味します。Nは
ミリ秒 (0 ~ 999)を意味します。 1:1:1.1
入力説明
最初の行にログの数を示す整数 n を入力します
1<=n<=100000
次の n 行に n 回を入力します
出力は
時間の昇順でソートされた後の時間を記述します。
同じ時間を表す時間が 2 つある場合は、
入力の順序を維持します。
例:
入力:
2
01:41:8.9
1:1:09.211
出力
1:1:09.211
01:41:8.9 入力
例 3 23:41:08.023 1:1:09.211 08:01:22.0 出力 1:1:09.211 08:01:22.0 23:41:08.023
例
入力
2
22:41:08.023
22:41:08.23
出力
22:41:08.023
22:41:08.23
時間同じ 入力順序を維持
71.【月餅】
タイトルの説明
中秋節、会社は月餅を配布、m 人の従業員が n 個の月餅を購入、m<=n、各従業員は少なくとも 1 つの月餅を受け取りますが、1 つ以上の月餅を分割できます、1 つの月餅の最大数person は Max1 、1 人に割り当てられる月餅の数は Max2、Max1-Max2<=3 です。同様に、Max(n-1) は 1 人あたり n-1 個の月餅の数、Max(n) は 1 人あたり n 回目の月餅の数、Max(n-1)-Max( n )<=3。月餅の分け方は何通り?
説明を入力してください:
最初の行に mn を入力します。これは、m 人の従業員、n 個の月餅、m<=n
1
出力の説明を意味します。
月餅が何種類あるかを出力せよ
1
問題解決のアイデア:
n 個の月餅を線分として扱い、それらを m 回分割する。
仮に、一度割り始めて月餅を割り、今度はm=m-1、n=na; もう一度割り切ると、
bの月餅を割り、今度はm=m-1、n=nb;
...
最終的にn 回目の分割では、c 個の月餅を分割します。m=m-1=0、n=nc=0;
71.【スライディングウィンドウ最大値】
[プログラミング問題 | 100 点] 最大スライディング ウィンドウ [2022 Q1 試験問題]
この質問は、ローカル IDE を使用してコーディングできます。既存のローカル コードは使用できません。ジャンプ制限はありません。「保存して送信」ボタンをクリックして、コーディング後にコードを送信してください。
タイトルの説明:
There is an array of N integers and a window of length M. ウィンドウは、配列の最初の数値からスライドできなくなるまでスライドします. ウィンドウがスライドするたびに、ウィンドウの合計 (ウィンドウ内のすべての数値) がおよび)、ウィンドウ スライディングによって生成されたすべてのウィンドウ合計の最大値を見つけます。
入力の説明:
最初の行に整数の数を示す正の整数 N を入力します。(0<N<100000)
2 行目に N 個の整数を入力します。整数の範囲は [-100,100] です。
3 行目は正の整数 M を入力します。M はウィンドウのサイズを表し、M<=100000、M<=N です。
出力の説明:
ウィンドウのスライドにより、すべてのウィンドウの合計が最大になります。
例 1 入力例と出力例はデバッグ用であり、バックグラウンド判定データには通常例は含まれていません
入力
6
12 10 20 30 15 23
3
1
2
3
出力
68
1
アイデア分析:
これは、モノトニック スタックで実装する必要があるリートコードのスライディング ウィンドウの最大値とは異なります。各ウィンドウの最大値を計算します。
この質問については、スライディング ウィンドウの最大値をカウントするために使用されるモノトーン スタックの実装方法を参照できます。ダブルポインタを使用して実装することもできます。
72.【ウェーブアレイアルファベット探しゲーム】
タイトル説明:
Word Maze は、文字でマークされた食べ物を見つける必要がある小さなオンライン ゲームですが、与えられた単語の文字順に食べてもらいます。上の図に示すように、if という単語が与えられた場合、f を食べる前に i を食べなければならないと仮定します。
但现在你的任务可没有这么简单,你现在处于一个迷宫Maze(n×m的矩阵)当中,里面到处都是以字母标注的食物,但你只能吃掉能连成给定单词W的食物。
- 1
- 2
、W を "SOLO" と指定すると、"SOLO" という単語が地図上で赤くマークされます。
英字の大文字と小文字の区別に注意してください。上、下、左、右にしか歩けません。
ランタイム制限: 無制限
メモリ制限: 無制限
入力の最初の行には、2 つの整数 n、m (0
指定された単語がマップで接続できる場合は「YES」を出力し、そうでない場合は「NO」を出力します。注: 各文字は 1 回のみ使用できます。
5 5
SOLO
CPUCY
EKLQH
CRSOL
EKLQO
PGRBC
はい
- この質問にも時間と空間の要件がないため、力ずくでクラックします
- 2 桁の配列をトラバースし、対応する単語の文字を探し、set='' を見つけてから続行します。
73.【最小数】
プログラミングトピック | 100点] 最小数 [ 100 / ミディアム ]
最小数
タイトルの説明:
整数配列が与えられた場合、配列から 3 つの要素を選択して最小数を形成し、それを出力してください (配列の長さが 3 未満の場合は、配列内のすべての要素を選択して最小数を形成します)。
入力の説明:
コンマ区切りの文字列レコードで区切られた整数配列の行、0 < 配列の長さ <= 100、0 < 整数値の範囲 <= 10000。
出力の説明:
3 つの要素で構成される最小数。配列の長さが 3 未満の場合、配列内のすべての要素を選択して最小数を形成します。
例 1:
入力
21,30,62,5,31
1,
出力
21305
1 ,配列の長さが 3 を超えていることを示します.最小数を形成するには 3 つの要素を選択する必要があります. 21305 は 21 で構成される数です
.
30、およびすべての組み合わせの最小数である 5 つの要素
例 2:
入力
5、21
1
、出力
215
1
説明
配列の長さが 3 未満で、すべての要素を選択して最小値を形成し、215 が最小値です。
74.【犯行時刻の解読】
解密犯罪时间 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
警察在侦破一个案件时,得到了线人给出的可能犯罪时间,形如 “HH:MM” 表示的时刻。
根据警察和线人的约定,为了隐蔽,该时间是修改过的,解密规则为:利用当前出现过的数字,构造下一个距离当前时间最近的时刻,则该时间为可能的犯罪时间。每个出现数字都可以被无限次使用。"
"输入描述:
形如HH:SS的字符串,表示原始输入
输出描述:
形如HH:SS的字符串,表示推理出来的犯罪时间
示例1
输入
18:52
输出
18:55
说明
利用数字1, 8, 5, 2构造出来的最近时刻是18:55,是3分钟之后。结果不是18:51因为这个时刻是18小时52分钟之后。
示例2
输入
23:59
输出
22:22
说明
利用数字2, 3, 5, 9构造出来的最近时刻是22:22。 答案一定是第二天的某一时刻,所以选择可构造的最小时刻为犯罪时间。
备注:
可以保证线人给定的字符串一定是合法的。例如,“01:35” 和 “11:08” 是合法的,“1:35” 和 “11:8” 是不合法的。
最近的时刻有可能在第二天
75.【任务最优调度】
【タスク最適スケジューリング】 システムが実行するタスクのリストを表す正の整数群を与え、配列の各要素がタスクを表し、要素の値がタスクの種類を表します。すべてのタスクを完了するのに必要な最小時間を計算します。
タスクの実行規則は次のとおりです。
1. タスクは任意の順序で実行でき、各タスクの実行時間は 1 時間単位です。
2. 同じタイプの 2 つのタスクの間に N 単位の冷却時間が必要です.たとえば、N が 2 で、タイプ 3 のタスクが時間 K で実行される場合、K+1 と K+2 は実行できません。 3つのタスク。
3. システムは任意の単位時間でタスクを実行または待機できます。注: 配列の最大長は 1000 で、最大速度は 1000 です。
入力内容:
1行目は半角カンマ区切りの配列を記録. 配列の長さは1000以下, 配列要素の値は1000以下. 2行目はタスクの冷却時間を記録. Nは正の整数、および N<=100。
出力の説明:
出力は、すべてのタスクを実行するのに必要な最小時間です。
例:
入力
2,2,2,3
2
出力
7
76.【最大値】
与えられた非負の整数のセットを並べ替えて、最大の整数を形成します。(LeetCode-JAVA)
例 1:
入力: [10,2]
出力: 210
例 2:
入力: [3,30,34,5,9]
出力: 9534330
説明: 出力が非常に大きくなる可能性があるため、整数ではなく文字列を返す必要があります。
77.【身長と体重で並べる】
タイトル説明:
ある学校で体育大会が開かれ、生徒たちは数字(1、2、3...n)で識別された.今では、背の低い人から高い人まで、身長に応じて配置する必要がある.同じ身長の人は、体重の軽いものから重いものまで、同じ身長・体重の人は元の番号順の関係を維持する。
ソートされた学生番号を出力してください
説明を入力してください:
2 つのシーケンス。各シーケンスは N 個の正の整数 (0<n<=100) で構成されます。
最初のシーケンスの値は身長を表し、
2 番目のシーケンスの値は体重を表します
出力の説明:
結果を並べ替えます。各値は元の順序での学生番号で、番号は 1 から始まり、身長は低から高へ、高さは同じで体重は軽いから重い、体重は同じから元の順序を維持します。
例:
入力:
4
100 100 120 130
40 30 60 50
出力:
2134
入力:
3
90 110 90
45 60 45
出力:
132
78.【身長が近い子を探す】
シャオミンさんは今年、小学校一年生になりましたが、新しいクラスに入ってから、他の子供たちの身長が不均一であることに気付き
、子供たちと自分の身長差に基づいてそれらを分類したいと思いました
。説明
の最初の行に
正の整数 h と nを入力します
0<h<200 は Xiao Ming の身長です
0<n<50 は新しいクラスの他の子供の数です
2 行目は n 個の正の整数
h1です~ hn はそれぞれ他の子の身長です
値の範囲は 0<hi<200
および n の正の整数 整数はさまざまです
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
79.【二叉树中序遍历输出】
题目描述
根据给定的二叉树结构描述字符串,输出该二叉树按照中序遍历结果字符串。中序遍历顺序为:左子树,根结点,右子树。
输入描述
由大小写字母、左右大括号、逗号组成的字符串:
1、字母代表一个节点值,左右括号内包含该节点的子节点。
2、左右子节点使用逗号分隔,逗号前为空则表示左子节点为空,没有逗号则表示右子节点
为空。
3、二叉树节点数最大不超过100。
注:输入字符串格式是正确的,无需考虑格式错误的情况。
输出描述
输出一个字符串,为二叉树中序遍历各节点值的拼接结果。
示例:
输入:a{b{d, e{g,h{,I}}},c{f}}
输出:dbgehiafc
80.【第k个排列】
题目
【第k个排列】给定参数n,从1到n会有n个整数:1,2,3,...,n,这n个数字共有n!种排列。
按大小顺序升序列出所有排列情况,并一一标记,当n=3时,所有排列如下:
"123"
"132"
"213"
"231"
"312"
"321"
给定n和k,返回第k个排列。
输入描述:
输入两行,第一行为n,第二行为k,给定n的范围是[1,9],给定k的范围是[1,n!]。
出力の説明:
k 番目の位置の番号を出力します。
例 1:
入力:
3
3
出力:
213
81.【配列の最大n個の数と最小n個の数の和を求めよ】
タイトル 説明 配列
に M 個の数字があることを意味する数字 M を入力してください
M 個の数字を入力してください。
n を入力して、
重複する値を削除した後、配列 M 内の最大の n 個の数値と最小の n 個の数値の合計を見つけます 注
: 最大の数値と最小の数値は重複する値を持つことはできません。そうでない場合は -1 を出力します。
サンプル入力
5
3 3 2 4 2
2
サンプル出力
-1 は、重複を削除した後の最大 2 つの数値が [4,3] であり、最小 2 つの数値が [2,3] であることを示しています。これらは同じ値であるため、戻り値
-
1
入力例
5
3 3 2 4 2
1
出力例
6
説明
重複を除いた最大数が[4]、最小数が[2]で、同じ値がなければ6を返す
82.【シャウト時間の並び替え7】
タイトル解説
シャウト7は、N人で円を作り、時計回りに1からNまでの番号が振られた伝統的なパーティーゲームです。1番の人は1から数え始め、次の人が叫ぶ数字は前の人に1を足した数字ですが、数字が7の倍数だったり、数字自体に7が含まれていたりすると「パス」と叫ばなければなりません。各人が「パス」と叫んだ回数を乱れた順序で格納する、長さ N の配列が与えられた場合、それを正しい順序に戻してください。つまり、配列の i 番目の要素には、何回も「パス」と叫びます。
入力
入力は行で、「パス」と叫ぶ回数をスペースで区切って入力します
サンプル入力
0 1 0
サンプル出力
1 0 0
説明
「パス」と叫ぶのは 1 回だけで、それは 7 を叫ぶ必要がある場合にのみ発生します。シーケンスに従って、番号 1 の人は 7 に遭遇するので、 1 0 0 を出力します。最後の K は必ずしも 7 ではなく、8、9 などの場合もあり、シャウトの回数は 1 0 0 であることに注意してください。
83.【配列は二分木を格納するために使用されます】
二分木は配列にも格納できます. 配列が与えられると,ツリーのルートノードの値は添え字 1 に格納されます.添え字 n に格納されるノードの場合,
その左右の子ノードは添え字 2*n に格納されます.それぞれ 2*n+. 1と -1 を使用して、ノードが空であることを表します.配列 に格納されたバイナリ ツリーを指定して、ルート ノードから最小の葉ノードへのパスを見つけようとします.パスは次の値で構成されます.ノード
入力の説明
配列の内容を入力します。
配列の各要素は正の整数で、要素はスペースで区切られます。
最初の要素はルート ノードの値であることに注意してください。
つまり、配列の n 番目の要素が対応します。ツリー表現の添字 n
添字 0 は では使用されないため、最大 7 層の入力ツリー
を省略します。
出力の説明 ルート ノード
から最小のリーフ ノードまでのパス上の各ノードの値を、
スペースで区切って
出力します。
入力 例
3 5 7 -1 -1 2 4
出力
3 7 2
入力 例
5 9 8 -1 -1 7 -1 -1 -1 -1 -1 6
出力
5 8 7 6
84.【部分行列和の最大値】
M*N 行列の部分行列和の最大値を求めます。
たとえば、次の行列では:
0 -2 -7 0
9 2 -6 2
-4 1 -4
1 -1 8 0 -2
合計が最大の部分行列:
9 2
-4 1
-1 8
とその合計は 15 です。
85.【ディスク容量順】
ディスクの容量単位は、M、G、T の 3 段階が一般的です。関係は 1T = 1024G、1G = 1024M です。例に示すように、最初にディスクの数を入力し、次にディスクの容量を入力します。ディスク容量を小さい順に並べ替えて出力します。
例:
入力:
3
1G
2G
1024
出力: (等容量、元の相対位置を保持)
1G
1024
2G
86.【文字列圧縮表現の解凍】
単純な圧縮アルゴリズムがあります。すべて小文字の英字で構成される文字列の場合、同じ文字が 2 つ以上連続する部分を連続した数字と文字に圧縮し、他の部分は変更しません。
例: 文字列「aaabbccccd」は、文字列「3abb4cd」に圧縮されます。入力文字列に応じて解凍関数を記述し、それが正当に圧縮された文字列であるかどうかを判断し、入力が正当な場合は解凍された文字列を出力し、そうでない場合は文字列 "!error" を出力してエラーを報告します。
説明を入力してください:
入力が正当な圧縮文字列であると判断された場合は圧縮されていない文字列を出力し、入力が不正である場合は文字列 "!error" を出力します。
例 1:
入力
4dff
出力
dddff
87.【ご利用限度額】
Double Eleven には割引商品がたくさんあります. Xiao Ming はお気に入りの商品をいくつか購入したいと考えていますが、購入資金が限られているため、多くのお気に入りの商品のうち 3 つを購入することにし、できるだけ多くのお金を使いたいと考えています.設計してください プログラムは、ジムが支出可能な最大金額を計算するのに役立ちます。
説明を入力してください:
- 入力の最初の行は 1 次元の整数配列 M で、配列の長さは 100 未満で、配列要素は 1 つの商品の価格を記録し、1 つの商品の価格は 1000 未満です。
- 2 行目に購入資金の金額 R を入力します。R は 100,000 未満です。
出力の説明:
- 出力は、上記の条件を満たす最大支出額です。
知らせ:
- 上記の条件に一致するアイテムがない場合は -1 を返します。
例 1
入力
23,26,36,27
78
出力
76
例証する
金額 23、26、および 27 を加算して 76 を取得します。これは、入力金額 78 に最も近く、それよりも小さくなります。
例 2
入力
23,30,40
26
出力
-1
例証する
- 入力された商品を組み合わせて 3 つのアイテムの合計が 26 未満になるように組み合わせることはできないため、-1 を返します。
述べる:
- フォーマット エラーに関係なく、入力フォーマットは正しいです。
88.【最果ての足跡】
タイトル説明:
地下洞窟の探索を担当する探検隊。遠征隊のメンバーが遠征任務を遂行する際、彼らが携行するレコーダーは不定期に自身の座標を記録するが、記録の隙間には他のデータも記録される。探査作業が終了した後、遠征チームは、遠征中に遠征本部から最も遠いメンバーの足跡の位置を取得する必要があります。
仪器记录坐标时,坐标的数据格式为(x,y),如(1,2)、(100,200),其中0<x<1000,0<y<1000。同时存在非法坐标,如(01,1)、(1,01),(0,100)属于非法坐标。
设定探险队总部的坐标为(0,0),某位置相对总部的距离为:x * x+ y * y。
若两个座标的相对总部的距离相同,则第一次到达的坐标为最远的足迹。
若记录仪中的坐标都不合法,输出总部坐标(0,0)。 备注:不需要考虑双层括号嵌套的情况,比如sfsdfsd((1,2))。
输入描述:
字符串,表示记录仪中的数据。
如:ferga13fdsf3(100,200)f2r3rfasf(300,400)
输出描述:
字符串,表示最远足迹到达的坐标。
如: (300,400)
示例 1:
输入
ferg(3,10)a13fdsf3(3,4)f2r3rfasf(5,10)
1
输出
(5,10)
1
说明
记录仪中的合法坐标有3个: (3,10), (3,4), (5,10),其中(5,10)是相距总部最远的坐标, 输出(5,10)。
示例 2:
输入
asfefaweawfaw(0,1)fe
1
输出
(0,0)
1
说明
记录仪中的坐标都不合法,输出总部坐标(0,0)
89.【计算面积】
[计算面积]
绘图机器的绘图笔初始位i在原点(0.0)。 机器启动后其绘图笔按下面规则绘制直线:
1) 与えられた終点値 E まで、水平座標軸に沿って直線を描画してみてください。
2) 期間中、コマンドにより縦軸方向にシフトすることができます。同時に、直線を正確に描画し、オフセットの後に規則 1 に従って直線を描画します (コマンドの形式は X oseYr です)。横座標 X が縦方向に沿ってオフセットされていることを示し、オフセットの正の数は正のオフセットを示し、負の数は負のオフセットを示します。
横座標グリッド点の値 E. といくつかの検査指示が与えられます。与えられた直線と横軸を計算してください。そして、XEの直線によって形成されるグラフの面積。
入力モード:
最初の行には、2 つの整数 NE が含まれています。N 個の命令があることを示します。E を実行しているマシンの横座標の終点値。
次の N 行。1 行あたり 2 つの整数は、bar instruction x osorr を表します。ユースケースは、横座標 X が昇順で表示されることを保証します。そして、同じ横座標の意味は現れません。値の範囲: 0<Nc= 1000.00 X<= E <20000.10000 < その他 1000 など。
出力の説明:
計算された面積を表す整数。ユース ケースによって保証されます。結果の範囲は 0 ~ 4294967295 です。
例 1:
入力
4 10
11
21
31
4-2
出力
12
90.【最大行列和】
トピックの説明
与えられた 2 次元の整数行列, この行列のサブ行列を選択して、このサブ行列のすべての数値の合計ができるだけ大きくなるようにする必要があります. このサブ行列を合計と呼びます-最大サブマトリックス. サブマトリックス選択の原則は、元のマトリックス内の相互に隣接する長方形領域です。
説明を入力してください:
- 入力の最初の行には、n 行 m 列の行列を表す 2 つの整数 n, m (1 <= n, m <= 10) が含まれており、その下に n 行あり、各行には m 個の整数があります。行、それぞれ 2 つの数値の間に 1 つのスペースがあり、最後の数値の後にスペースはなく、すべての数値は [-1000, 1000] の間にあります。
出力の説明:
- 選択した合計最大サブマトリックスのすべての数値の合計を表す数値を含む行を出力します。
例 1
入力
3 4
-3 5 -1 5
2 4 -2 4
-1 3 -1 3
出力
20
例証する
3*4 マトリックスでは、最後の 3 列のサブマトリックスの合計は 20 になり、最大になります。
91.【最長放送レスポンス】
説明を入力してください:
最初の入力行は 2 つの正の整数で、それぞれネットワーク ノードの数 N と遅延リストの長さ I を表します。
次の行 I は入力で、ノード間の接続関係のリストを表します。
最後の行の入力は正の整数で、指定されたブロードキャスト ノードのシリアル番号を示します。
出力の説明:
送信ノードが少なくともすべての応答メッセージを受信するまで待機する必要があることを示す整数を出力します。
例 1:
入力
5 7
2 1
1 4
2 4
2 3
3 4
3 5
4 5
2
出力
4
92.【二分木の幅優先走査】
二分木があり、各ノードは大文字で識別されます (最大 26 ノード)。後順トラバーサル(左子→右子→親ノード)と順トラバーサル(左子→親ノード→右子)の結果を表す2組の文字がありますので、階層トラバーサルの結果を出力してください.
説明を入力してください:
入力は 2 つの文字列で、それぞれバイナリ ツリーの後続のトラバーサルと順序どおりのトラバーサルの結果です。
出力の説明:
二分木のレベル探索結果を出力する
例 1:
入力:
CBEFDA CBAEDF
出力:
ABDCEF
93.【文字列内のすべての整数の最小和を求める】
入力文字列 s と出力 s には、すべての整数の最小和が含まれます. 注: 1. 文字列 s には、a~z、A~Z、+、- のみが含まれます. 2. 有効な整数には、1 つ以上の 0- の正の整数が含まれます9 構成: 0,2,3,002,102 3. 負の符号で始まる負の整数。数字の部分は、-2、-012、-23、-00023 などの 1 つ以上の 0 ~ 9 で構成されます 。 : 数値を含む文字列 出力の説明: すべての整数の最小合計 例: 入力: bb1234aa 出力 10 入力: bb12-34aa 出力: -31
94.【派遣可能チーム数の上限を求める】
例 1:
入力:
5
3 1 5 7 9
8
出力:
3
95.【ナンバー反転印刷】
96【鍋】
97.【駐車場探し】
98.【センシティブフィールド暗号化】
99.【文字列統計】
100.【ジュゴンゲボタン】
101.【カウンティングゲーム】
トピックの説明
100 人がサークルを形成し、各人に 1 から 100 までの番号が付けられたコードがあります。1 から順にカウントされ、M として報告された人は自動的にサークルから退出し、次の人は 1 から数え続けます。 、残りの数が M 未満になるまで。最後に残った人の元の番号は? たとえば、M=3 を入力すると「58, 91」、M=4 を入力すると「34, 45, 97」が出力されます。
m が 1 以下の場合は "ERROR!" を出力し、
m が 100 以上の場合は "ERROR!" を出力します。
例
入力
3
出力
58、91
102.【積み木】
103.【ジョブ数が足りない場合】
104.【形成されるマスの数】
【正方形の数】 N 個の異なる 2 次元整数座標を入力し、これら N 個の座標が作ることができる正方形の数を求めます。(内積がゼロの 2 つのベクトルが垂直)
入力の説明:
1 行目の入力は N で、N は座標の数を表し、N は正の整数です。N<=100 の後に入力された K 行は、スペースで区切られた座標 xy です。xy は整数です。-10<=x、y<=10 出力の説明: 形成できる正方形の数を出力し
ます
。
例 1: 入力
3
1 3
2 4
3 1
出力
0
105.【最長連続部分列】
106.【一定条件による最低交換回数】
数 K が与えられたとき、結果が K 未満であるすべての整数の交換の最小数を出力してください。
組み合わせるとは、条件を満たす数が隣り合っていることを意味し、隣り合った後の配列内の位置は必要ありません。
データ範囲
-100 <=K <= 100
-100 <= 配列内の値 <= 100
説明を入力します。
入力配列の最初の行: 1 3 1 4 0
2 行目に K 値を入力します: 2
出力の説明;
最初の行は、有効な時間の最小数を出力します: 1
述べる:
2 未満の式は 1 1 0、要件を満たすすべての数の合計 3 つの可能な組み合わせ、少なくとも 1 つの交換
例 1:
入力
1 3 1 4 0
2
出力
1
107.【ジャンピンググリッドゲーム】
タイトル: Jumping Grid | 制限時間: 1 秒 | メモリ制限: 262144K | 言語制限: 無制限
地上には合計 N 個のグリッドがあります.地上のすべてのグリッドをジャンプする必要がありますが,グリッド間には強い依存関係があります.前のグリッドをジャンプすると,次のグリッドが開きます.グリッドはステップ配列の複数のセットによって決定されます 与えられた場合、steps[0] は前のグリッドを示し、steps[1] は steps[0] が開くことができるグリッドを示します。
たとえば、[0,1] は 0 番目のグリッドをジャンプした後に最初のグリッドを開くことを意味し、[2,1]、[2,3] は 2 番目のグリッドをジャンプした後に最初のグリッドと 3 番目のグリッドを開くことを意味します。 . グリッドが開きます
指定されたステップ配列からすべてのグリッドをスキップできるかどうかを計算してください。スキップできる場合は yes を出力し、そうでない場合は no を出力します
説明します:
1. 1 つのグリッドから開いている任意のグリッドにジャンプできます
2. 事前依存関係のないグリッドはデフォルトで有効になっています
3. 総数が N の場合、すべてのグリッド番号は [0,1,2,3...N-1] 連続配列です。
説明を入力してください:
グリッドの総数を示す整数 N を入力してから、2 次元配列ステップの複数のセットを入力して、すべてのグリッド間の依存関係を示します。
出力の説明:
ステップで指定された依存関係の順序に従ってすべてのグリッドをスキップできる場合は、yes を出力します。
それ以外の場合は no を出力します
例 1
入力
3
0 1
0 2
出力
はい
例証する
[0,1,2] の合計 3 つのグリッドがあります.0 グリッドをスキップした後、最初のグリッドが開かれ、0 番目のグリッドにジャンプした後、2 番目のグリッドも 0->1->2 に従って開かれますまたは、0->2->1 の順序ですべてのグリッドをスキップできます
例 2
入力
2
1 0
0 1
出力
いいえ
例証する
グリッドは全部で2つあり、1番目のグリッドは0番目のグリッドを開くことができますが、1番目のグリッドは0番目のグリッドを開く必要があり、それらは相互に依存しているため、完了することはできません
例 3
入力
6
0 1
0 2
0 3
0 4
0 5
出力
はい
例証する
全部で6つのグリッドがあり、0番目のグリッドは1番目、2、3、4、5番目のグリッドを開くことができるので、0番目のグリッドをジャンプした後、他のグリッドが開かれ、残りのグリッドを任意の順序でジャンプできます
例 4
入力
5
4 3
0 4
2 1
3 2
出力
はい
例証する
0 番目のグリッドをジャンプした後、グリッド 4 を開くことができます。グリッド 4 をジャンプした後、グリッド 3 を開くことができます。グリッド 3 をジャンプした後、グリッド 2 を開くことができます。グリッド 2 をジャンプした後、グリッドを開くことができます。 1、0->4->3->2->1 に従い、すべてのグリッドがスキップされます
例 5
入力
4
1 2
1 0
出力
はい
例証する
合計4つのグリッド[0,1,2,3]があります.グリッド1とグリッド3は前提条件がないため、デフォルトで有効になっています.グリッド1はグリッド0とグリッド2を有効にできるため、グリッド1にジャンプした後、すべてのグリッドを有効にできるので、すべてのグリッドをスキップできます
108.【MVPバトル】
タイトル説明:バスケットボールのスター大会、宇宙強豪チーム、みんなでMVPを取りたい。MVP の条件は、1 試合で最も多くのポイントを獲得した勝者が同点になることです。チーム コスモスは、試合中にできるだけ多くの選手をフィールドに配置し、得点した選手全員が同じスコアになるようにすることにしました。 . ただし、ゲームのすべての分を記録できるのは 1 人だけです。
入力の説明: 最初の行に数値 t を入力して、得点された分数を示し (1<=t<=50)、2 行目に t 数値を入力して、各分の得点 p を表します (1<=p<= 50)
出力の説明: 得点を挙げたすべてのプレーヤーが MVP である場合、最小の MVP スコアを出力します。
例
例 1
入力: 9
5 2 1 5 2 1 5 2 1
出力: 6
解説: 例の説明: 合計 4 人が得点し、それぞれ 6 点
5+1
5+1
5+1
2+2+2
109.【学校の所在地】
タイトルの説明: 新学期に生徒が急増する問題を解決するために、小楽村は学校を建設します。通学する生徒の安全を考えると、すべての生徒が自宅から学校までの距離を最短にする必要があります。学校とすべての生徒の家が一直線上にあると仮定すると、学校から各生徒の家までの距離の合計が最短になるように、学校をどこに建てればよいでしょうか。
入力の説明: 入力の 1 行目は整数 N (1<=N<=1000) で、世帯数が N であることを示します。
入力の 2 行目は属 ni (0<=ni<=10000) で、各世帯の場所を示し、すべての世帯の場所は異なります。
出力の説明: 決定した学校の場所を整数で 1 行出力します.同じ値の場所が複数ある場合は、値が最も小さい場所を出力します.
例
例 1:
入力: 5
0 20 40 10 30
出力: 20
説明: 20 から各ファミリまでの距離は 20 0 20 10 10、合計は 60、最小値は
例 2:
入力: 1
20
出力: 20
説明: データ セットは 1 つだけで、20 と 20 の間の距離が最小で、0 です。
例 3:
入力: 2
0 20
出力: 0
説明: 選択する場所は複数ありますが、0 の値が最小です
110.【新しいアレイを組み立てる】
タイトルの説明: 与えられた整数 M と配列 N. N の要素は連続した整数です. N の要素に基づいて新しいデータ R を組み立てる必要があります. 組み立ての原理は次のとおりです。
1. R の要素の合計が M に等しい
2. R の要素は、N から繰り返し選択できます。
2. R の最大 1 つの要素が N になく、N の数よりも小さい (負になることはできません)
出力してください: 配列 R にはいくつのアセンブリ メソッドがありますか
入力の説明: 入力の最初の行は、スペースで区切られた連続配列 N です。
2 行目に数値 M を入力します
出力の説明: 出力は、アセンブリ メソッドの数、int 型です。
補足: 1<=N.length<=30
1<=N.長さ<=1000
例
例 1:
入力: 2
5
出力: 1
説明: 組み立て方法は [2,2,1] の 1 つだけです。
例 2:
入力: 2 3
5
出力: 2
説明: [2,2,1]、[2,3] の合計 2 つのアセンブリ方法があります。