2020 07 03 牛客程式設計挑戰

2022-04-01 10:39:46 字數 2296 閱讀 5908

昨天多校訓練在牛客組隊,看到有個一戰到底程式設計挑戰,有些好奇就進去看看,做出來倆,都是模擬,第三個是動態規劃,看了看沒思路就走了,4號早晨起來補了一下。

(有幾個latex公式我暫時不太會搞,寫出來可能看著有點蠢,見諒)

解:題目中的o就是常見的重要極限$lim_(1+\frac)^x = e$,e的值是從math.h直接拿過來的,精度挺可以的,拿來直接快速冪就好了,後面保留小數那裡我寫的有點蠢,用cout的格式化輸出會更好一些。

#include#include

#include

using

namespace

std;

double pow(double x,int

y)

return

res;

}int

main()

return0;

}

解:這個題也沒什麼難度,我思路就是拿乙個結構體儲存每個人的資訊(這個人的編號,訊息總條數,是否置頂,最後一次發訊息的時間),這樣再用乙個map,把所有人標記到,避免重複加入結構體。這樣的話,最後只要將結構體排序就可以了,但是被卡住了空間,只能用vector,或者用牛客的自測除錯多試幾次,卡著空間限制應該也能過,不然的話vector也沒法過是吧。

解:一道動態規劃的題目。對於這些變數,設f[i][j][k][d]表示串中有i個()、j個、k個{}、深度不大於d時的方案總數。由定義可知,兩個ss串拼在一起也是乙個ss串,我們可以藉此來進行動態規劃。但是,若乙個ss串為abc,在計算時就會將ab+c和a+bc作為兩個方案計算在內,但實際上是同一種方案。因此,為了避免重複,可以在動態規劃時令乙個串強制在最外面加上乙個括號(滿足要求的最小括號)。所以,首先列舉乙個串中有的每種括號的數量,然後把所有括號分成兩部分,對答案的貢獻即為分成的兩個串的乘積。注意取模。

#include#include

#define mod 11380

using

namespace

std;

int n,l1,l2,l3,d,f[11][11][11][31

];int

main()

for(int b=0;b)

for(int c=0;c)}}

f[i][j][k][l]=tmp;

}else f[i][j][k][l]=1

; }}}

}int ans=((f[l1][l2][l3][d]-f[l1][l2][l3][d-1])%mod+mod)%mod;

printf(

"%d\n

",ans);

return0;

}

牛客前端技能挑戰

題目描述 獲取 url 中的引數 1.指定引數名稱,返回該引數的值 或者 空字串 2.不指定引數名稱,返回全部的引數物件 或者 3.如果存在多個同名引數,則返回陣列 輸入例子 geturlparam key 輸出例子 1,2,3 function geturlparam surl,skey if a...

牛客 數獨挑戰 dfs

題目鏈結 1 暴力法 tle include using namespace std const int inf 0x3f3f3f3f typedef long long ll int e 10 10 int r 10 10 記錄該行 1 9是否出現 出現為 1 int c 10 10 int k ...

牛客挑戰賽58

前i 1的二進位制相等,a的前n個數的前i 1位可以亂取,b的前n 1個數前i 1位也可以亂取,因為b的第n個數的前i 1異或可為任意值,所以sum1 2 i 1 n 2 i 1 n 1 2 i 1 2n 1 a的第i位為1且b的第i位為0 只要a的n數第i位中有乙個不為0的,a的第i位不為0,b的...