2017計蒜客初賽5

2021-08-02 15:19:24 字數 2954 閱讀 8854

ucloud 剛剛建立乙個新機房,近日正在進行網路搭建。機房內有 n

n 臺伺服器和 m

m 個分線器,整個機房只有乙個網線出口。分線器的作用是將一根網線轉換成多根網線。蒜頭君也知道每個分線器輸出的最大網線根數(不一定要將分線器輸出的每根線都用上),問你至少需要使用多少個分線器才能使得每台伺服器都有網線可用。

第一行輸入 n,m(0 \le n,m \le 100)n,

m(0≤

n,m≤

100)

。第二行輸入包含 m

m 個整數的陣列 a(0 \le a_i \le 10)a(

0≤a​

i​​≤

10) 表示每個分線器輸出的最大網線根數。

輸出最少需要的分線器數量。若不能使得所有伺服器都有網線可用,輸出一行impossible

一共需要 3

3 個分線器,最大輸出根數分別為 7,3,27,

3,2,連線方法如下圖所示:

樣例輸入

10 4

2 7 2 3

樣例輸出

3
水題

#include #includeusing namespace std;

int a[1100],n,m;

int main()

if(sum

每個 ucloud 使用者會構造乙個由數字序列組成的秘鑰,用於對伺服器進行各種操作。作為一家安全可信的雲計算平台,秘鑰的安全性至關重要。因此,ucloud 每年會對使用者的秘鑰進行安全性評估,具體的評估方法如下:

首先,定義兩個由數字序列組成的秘鑰 a

a 和 bb≈

) 的關係。a

a 和 b

b 近似匹配當且僅當同時滿足以下兩個條件:

此時,我們就稱 a

a 和 bba

≈b(1

,3,1

,1,2

)≈(2

,1,3

,1,1

)。ucloud 每年會收集若干不安全秘鑰,這些秘鑰組成了不安全秘鑰集合 t

t。對於乙個秘鑰 s

s 和集合 t

t 中的秘鑰 t

t來說,它們的相似值定義為:s

s 的所有連續子串中與 t

t 近似匹配的個數。相似值越高,說明秘鑰 s

s 越不安全。對於不安全秘鑰集合 t

t 中的每個秘鑰 t

t,你需要輸出它和秘鑰 s

s 的相似值,用來對使用者秘鑰的安全性進行分析。

第一行包含乙個正整數 n

n,表示 s

s 串的長度。

第二行包含 n

n 個正整數 s_1,s_2,...,s_n(1\leq s_i\leq n)s​

1​​,

s​2​

​,..

.,s​

n​​(

1≤s​

i​​≤

n),表示 s

s 串。

接下來一行包含乙個正整數 m

m,表示詢問的個數。

接下來 m

m 個部分:

每個部分第一行包含乙個正整數 k(1\leq k\leq n)k(

1≤k≤

n),表示每個 t

t 串的長度。

每個部分第二行包含 k

k 個正整數 t_1,t_2,...,t_k(1\leq t_i\leq n)t​

1​​,

t​2​

​,..

.,t​

k​​(

1≤t​

i​​≤

n),表示 t

t 中的乙個串 tt。

輸入資料保證 t

t 中所有串長度之和不超過 20000020

0000

。對於簡單版本:1\leq n,m\leq 1001≤

n,m≤

100;

對於中等版本:1\leq n\leq 50000,1\leq m\leq 5001≤

n≤50

000,

1≤m≤

500;

對於困難版本:1 \le n \le 50000, 1 \le m \le 1000001≤

n≤50

000,

1≤m≤

1000

00。輸出 m

m 行,每行乙個整數,即與 t

t 中每個串 t

t 近似匹配的 s

s 的子串數量。(3

,2,1

,3)≈

(2,3

,1,3

)(3,

2,1,

3)≈(

3,1,

3,2)

;(1,

3)≈(

3,1)

(1,3

)≈(1

,3);

(3,2

)≈(2

,3)(

3,2)

≈(3,

2)。

樣例輸入

52 3 1 3 234

3 2 1 3

21 3

23 2

樣例輸出

2

22

從左到右掃一遍,每次去除乙個數,加上乙個數。判斷匹配情況,如果匹配則答案加1,o(n)的複雜度。感覺比題解的hash靠譜。。。

#include #includeusing namespace std;

const int n=55000;

int a[n],vv[n],v[n],b[n];

int main()

{ int n;

scanf("%d",&n);

for(int i=0;i

2018計蒜客初賽1

又到了一年一度的計蒜之道,第二次參加計蒜之道,但願今年能在去年的基礎上有個新突破 第一場,由於時間限制,只寫了乙個簽到題,就此拉開了本年度計蒜之道 思路 這題這題其實思路倒是蠻清晰的,就是不斷維護陣列最大值,關鍵就是邊界處理問題,考慮清楚還挺有簽到意味 include include include...

2018計蒜客初賽2

一天之後,計蒜客第二場,感覺一般般,第一題卡了一下處理的比較慢,導致後面時間略微不足,第二題倒是沒什麼坑點 思路 這題dp的味道還是挺明顯的,dp選擇當前元素所能達到的最大長度,至於轉移,第一次想的是轉移之前所有狀態中可能的狀態,然而o n 2 的複雜度,加上多組資料,毫無疑問tle 之後想到用d,...

2017 計蒜之道 初賽 第五場

ucloud 機房的網路搭建 ucloud 剛剛建立乙個新機房,近日正在進行網路搭建。機房內有 n n 臺伺服器和 m m 個分線器,整個機房只有乙個網線出口。分線器的作用是將一根網線轉換成多根網線。蒜頭君也知道每個分線器輸出的最大網線根數 不一定要將分線器輸出的每根線都用上 問你至少需要使用多少個...