牛客網的刷題之旅 2020 7 10

2021-10-07 23:10:35 字數 2232 閱讀 3531

題目描述

給定兩個長度為n的整型陣列a和b。如果ai==bj則認為(i,j)為最佳配對。所有的最佳配對在滿足以下條件的情況下組成最佳配對集合:a和b中的各個元素最多在集合**現一次。例如,a =「5, 10, 11,12, 14」,b = 「8, 9 ,11, 11, 5」,配對集合為「(0,4),(2,2),(2,3)」,因為在集合a中索引2出現了兩次,所以上面的配對集合不是最佳配對集合。你的任務是修改b中的乙個元素,使得最佳配對集合的元素最多。並輸出最佳配對集合的數量。

輸入描述:

輸入第一行為乙個數字n,表示陣列a和b的長度。輸入第2行和3行都是n個數字,分別表示陣列a和b的元素

輸出描述:

修改b中的乙個元素,並列印最大的最佳配對集合數量。注意:必須修改b中的乙個元素。

輸入

4

1 2 3 4

1 2 3 3

輸出

思路:題目需要輸出最大的最佳配對集合數量,很容易想到貪心。用map很容易解決。

ac**:

#include

using

namespace std;

intmain()

for(

int i=

0;i//cout/如果剛好全部最佳配對,但題目要求必須要修改b中的乙個元素,所以數量減一

if(num==n)

else

if(num

//如果沒有全部最佳配對,則修改b中的乙個元素,使其與a中未配對的元素配對

return0;

}

題目描述

給定乙個僅由小寫字母組成的字串。現在請找出乙個位置,刪掉那個字母之後,字串變成回文。請放心總會有乙個合法的解。如果給定的字串已經是乙個回文串,那麼輸出-1。

輸入描述:

第一行包含t,測試資料的組數。後面跟有t行,每行包含乙個字串。

輸出描述:

如果可以刪去乙個字母使它變成回文串,則輸出任意乙個滿足條件的刪去字母的位置(下標從0開始)。例如:

bcc我們可以刪掉位置0的b字元。

輸入

3

aaab

baaaaa

輸出

30-1

ac**:

#include

using

namespace std;

intmain()

else

break;}

}if(flag==0)

else

}return0;

}

題目描述

小愛有乙個奇怪的計數器。在第乙個時刻計數器顯示數字3,在接下來的每乙個時刻,螢幕上的數字都會減1,直到減到1為止。

找出規律,並列印出t時刻計數器的值。

輸入描述:

輸入為時刻t,乙個整形數字。0輸出描述:

計數器顯示的值。

輸入

輸出

思路:我這裡用了兩種方法,第一種方法利用的規律是每次計數器會重置為上乙個計數週期初始值的兩倍,然後再每乙個時刻減1,直到等於1;第二種方法利用的規律是每個計數週期的第二行time等於value。

第一種方法ac**:

#include

using

namespace std;

intmain()

long

int num=k/2;

i=i-num;

printf

("%ld"

,num-

(n-i));

return0;

}

第二種方法ac**:

#include

using

namespace std;

intmain()

long

int num=k/2;

i=i-num;

printf

("%ld"

,num-

(n-i));

return0;

}

牛客網的刷題之旅 2020 7 12

題目描述 給定乙個僅由小寫字母x和y組成且長度不超過105的字串,每次可以將字串中的乙個子串xy替換成字串yyx,那麼至少要替換多少次才能讓字串中不存在子串xy?輸入描述 輸入給定的字串。輸出描述 輸出最少替換次數對109 7取模後的結果。輸入xxy 輸出 思路 看完題目之後不知道從 開始,看了一位...

牛客網的刷題之旅 2020 7 30

題目描述 亮亮解出了卷軸隱藏的秘密,來到了一片沼澤地。這裡有很多空地,而面試直通卡可能埋在任意一塊空地中,好在亮亮發現了一堆木材,他可以將木材鋪在兩個空地之間的沼澤地上。因為亮亮不知道面試直通卡具體在哪一塊空地中,所以必須要保證任意一塊空地對於亮亮來說是可以抵達的。怎麼還有鱷魚!沒辦法,看來有些空地...

牛客網刷題

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 立華奏在學習初中數學的時候遇到了這樣一道大水題 設箱子內有 n 個球,其中給 m 個球打上標記,設一次摸球摸到每乙個球的概率均等,求一次摸球摸到打標記的球的概率 e...