2017 計蒜之道 初賽 第五場

2021-08-19 20:20:17 字數 2512 閱讀 6902

a. ucloud 機房的網路搭建

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

輸入格式

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

第二行輸入包含 mm 個整數的陣列 a(0 \le a_i \le 10)a(0≤a

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

輸出格式

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

#include

using

namespace

std;

const

int maxn = 110;

int a[maxn];

int n,m;

bool cmp(int x,int y)

int main()

n-=a[0];

for(int i = 1; i < m; i ++)

}if(n>0)

cout

<< "impossible"

<< endl;

else

cout

<< sum << endl;

return

0;}

b. ucloud 的安全秘鑰(簡單)

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

|a|=|b|∣a∣=∣b∣,即 aa 串和 bb 串長度相等。

對於每種數字 cc,cc 在 aa 中出現的次數等於 cc 在 bb 中出現的次數。

ucloud 每年會收集若干不安全秘鑰,這些秘鑰組成了不安全秘鑰集合 tt。對於乙個秘鑰 ss 和集合 tt 中的秘鑰 tt 來說,它們的相似值定義為:ss 的所有連續子串中與 tt 近似匹配的個數。相似值越高,說明秘鑰 ss 越不安全。對於不安全秘鑰集合 tt 中的每個秘鑰 tt,你需要輸出它和秘鑰 ss 的相似值,用來對使用者秘鑰的安全性進行分析。

輸入格式

第一行包含乙個正整數 nn,表示 ss 串的長度。

第二行包含 nn 個正整數 s_1,s_2,...,s_n(1\leq s_i\leq n)s

1​ ,s

2​ ,...,s

n​ (1≤s

i​ ≤n),表示 ss 串。

接下來一行包含乙個正整數 mm,表示詢問的個數。

接下來 mm 個部分:

每個部分第一行包含乙個正整數 k(1\leq k\leq n)k(1≤k≤n),表示每個 tt 串的長度。

每個部分第二行包含 kk 個正整數 t_1,t_2,...,t_k(1\leq t_i\leq n)t

1​ ,t

2​ ,...,t

k​ (1≤t

i​ ≤n),表示 tt 中的乙個串 tt。

輸入資料保證 tt 中所有串長度之和不超過 200000200000。

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

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

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

輸出格式

輸出 mm 行,每行乙個整數,即與 tt 中每個串 tt 近似匹配的 ss 的子串數量。

樣例解釋

樣例輸入52

3132

3432

1321

3232

樣例輸出22

2解析按照題目所給模擬。

#include

#include

#include

#include

using

namespace

std;

int a[150],b[150];

int mp[150],mp1[150];

int main()

int m;

cin >> m;

while(m --)

int start = n - k; // start position

for(int i = 0;i <= start;i ++)

for(int i = 0;i < k;i ++)

}if(flag) cnt ++;

}cout

<< cnt << endl;

}return

0;}

2017 計蒜之道 初賽 第五場

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

2017計蒜之道程式設計大賽初賽第五場

第一題,從大到小排序,依次取就可以 includeusing namespace std int a 105 int cmp int a,int b int main printf d n ans return 0 1 6 1 2 第二題 我是暴力匹配的,複雜度m n n includeusing ...

2017 計蒜之道 初賽 第三場

在乙個長度為 ll 公尺的光滑軌道上,小車 a 在 00 時刻以 1 mathrm1m s 的速度從左端出發向右運動,小車 b 在 tt 時刻以 1 mathrm1m s 的速度從右端出發向左運動,兩個小車的質量相等。假設所有碰撞都是彈性碰撞,也就是當兩個小車相向碰撞時,他們各自會以原來的速度向相反...