2019暑假牛客訓練賽(補題及筆記)

2022-09-14 02:06:08 字數 1556 閱讀 3322

第一場

e題:abba (類 卡特蘭數)

bobo有乙個長度為2(n + m)的字串,由字元「a」和「b」組成。

該字串還具有迷人的特性:它可以分解為(n+ m)個長度為2的子串行,並且在(n+ m)個子序列中,它們中的n個子串行為「ab」,而其他m個為「ba」。

q:現在給出n 和m ,請問你,最多能找到多少個滿足上述條件的串?

理解題意:題目中,分解為「子串行」,而非「子串」;就是說這個長度為2的子串行可以是不連續的。如bbabaa,這個串中有3個『ba』。

第二場h題:second large rectangle(次大全1矩陣)

q:給出乙個n x m 的二進位制矩陣,請輸出第二大的全部由1構成的矩形的面積大小。n×m

'>"1"

'>

a:算出每個位置連續1的二維矩陣,單調棧。(補題:丁得寶)

1 #include2 #include3 #include

4 #include5 #include6 #include7 #include8

#define inf 0x3f3f3f3f

9using

namespace

std;

10const

int maxn = 1e3+5;11

intsum[maxn][maxn],stack[maxn],n,m;

12int

main()

1326}27

int m1=0,m2=0

;28 stack[0]=0;29

for(int j=m; j>0; j--)

3049

else

if(s==m1)

50 m2=m1;

51else

if(s>m2)

52 m2=s;

53 top--;54}

55 stack[++top]=i;56}

57}58for(int i=1; i<=top; i++)

5966

else

if(s==m1)

67 m2=m1;

68else

if(s>m2)

69 m2=s;70}

71}72 printf("

%d\n

",m2);73}

74return0;

75 }

view code

f題:partition problem

q:給你 2*n 個人,每兩個人之間都有乙個競爭價值,所有人之間的競爭價值由二維陣列表述出來。現在,讓你將這些人分為2隊,每隊n 人,兩隊展開競爭;求能產生的最大競爭價值為多少?

理解題意:2*n 個人分成兩隊,同一隊內的隊友之間不產生競爭價值;乙個隊的一名成員,與另一隊的每個成員之間都會計算一次競爭價值。

牛客訓練賽1

honoka和格點三角形 只有兩種三角形,底邊為2,高為1和底邊為1,高為2 1,直角三角形 4 n 1 m 2 4 n 2 m 1 2,底邊在x軸,為2 2 m 2 m 2 n 1 2,底邊在y軸,為2 2 n 2 n 2 m 1 3,底邊在x軸,為1 2 m 1 m 2 n 2 4,底邊在y軸,...

2020牛客多校訓練賽(第二場)補題

比賽入口 題意 有乙個multiset s,一共有三種操作 1.s插入乙個x 2.s刪除乙個x 3.查詢s中是否存在兩個數字,使得這兩個數字能和x組成乙個非退化三角形 思路 顯然,s是有序的,且判斷x是否能和s中兩個數字組成非退化三角形,一共有以下三種情況 1.x是最大邊,判斷 x的最後兩個字 2....

題解 牛客寒假訓練賽1

牛客寒假訓練賽1,自己水平還是太差了。a 題意 有計算符號和結果,求最初的數 思路 簡單模擬 include define ll long long struct note a 101 int main printf lld k return 0 b 給定2,0,4的數量,對其進行排列,計算1 i的...