牛客網的刷題之旅 2020 7 30

2021-10-08 17:00:31 字數 2056 閱讀 4795

題目描述

亮亮解出了卷軸隱藏的秘密,來到了一片沼澤地。這裡有很多空地,而面試直通卡可能埋在任意一塊空地中,好在亮亮發現了一堆木材,他可以將木材鋪在兩個空地之間的沼澤地上。因為亮亮不知道面試直通卡具體在哪一塊空地中,所以必須要保證任意一塊空地對於亮亮來說是可以抵達的。 「怎麼還有鱷魚!沒辦法,看來有些空地不能直接到達了。」 亮亮雖然沒有潔癖,但是沼澤地實在太臭了,所以亮亮不會迴圈利用木材。而且木材不能拼接在一起使用,所以亮亮必須要知道在耗費木材最少的情況下,最長的那根木材至少需要多長。

輸入描述:

第一行包含兩個整數n(1≤n≤10000),m(1≤m≤1000000)。n表示公有n塊空地。

接下來m行,每行包含三個整數p(1≤p≤n),q(1≤q≤n),k代表p,q兩個間沒有鱷魚,需要耗費k的木材。

輸出描述:

乙個整數,即耗費木材最少的情況下,最長的那根木材長度。

示例1輸入

4 3

1 2 1

2 3 1

3 4 2

輸出

思路:最終要求得在耗費木材最少的情況下,最長的那根木材長度。通過構造最小生成樹來求耗費木材最少的情況,同時求得最長的木材長度。

ac**:

#include

using

namespace std;

//儲存邊的資訊

struct vg

;int parent[

10010];

//排序函式

bool

cmp(vg v1,vg v2)

//並查集

intfind

(int root)

return root;

}int

main()

sort

(v, v+m, cmp)

;for

(int i=

0;iprintf

("%d\n"

,maxlen)

;return0;

}

題目描述

給定乙個字串,問是否能通過新增乙個字母將其變為回文串。

輸入描述:

一行乙個由小寫字母構成的字串,字串長度小於等於10。

輸出描述:

輸出答案(yes\no).

示例1輸入

coco

輸出

yes

ac**:

#include

using

namespace std;

intmain()

else

if(s[i+1]

==s[j])if

(i>=j)

flag=1;

else

flag=0;

}else

flag=0;

if(flag)

cout<<

"yes"

cout<<

"no"

<}return0;

}

題目描述

對於乙個無序陣列a,請設計乙個演算法,求出需要排序的最短子陣列的長度。

給定乙個整數陣列a及它的大小n,請返回最短子陣列的長度。

測試樣例:

[1,5,3,4,2,6,7],7

返回:4

ac**:

class

shortsubsequence

if(jleft=j;

right=i;

}else

max_value=a[i];}

if(left==n)

return0;

else

return right-left+1;

}};

牛客網的刷題之旅 2020 7 10

題目描述 給定兩個長度為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...

牛客網的刷題之旅 2020 7 12

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

牛客網刷題

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