indeed秋招筆試第一場

2021-07-23 17:57:53 字數 2330 閱讀 4150

做了indeed秋招的第一場筆試,題目相比別家確實簡單。其中前三道完全是水題,記錄一下~

第一題:tabereru

題意:給定乙個字串,遇到"ra"需要刪除,但是刪除之後如果又出現了"ra"那麼不繼續刪除了。即如果輸入是rrraaa,那麼輸出是rraa。

思路:字串很短,隨便搞就ok。

第二題:matrix product

題意:就是裸的矩陣乘法,複雜度不需要任何優化,o(n^3)即可。

第三題:ancient formula

題意:給定不超過6個數,其中有5個空位可以新增加號+或者乘號*,求值的時候不考慮優先順序,即2+3*4=20。再給定乙個整數k,問這6個數的某種排列以及某種加符號方式下,與k的差的絕對值的最小值(即與k的接近程度)。

#include #include #include #include #include #include #include #include #include #include #include #define n 505

#define inf 0x7fffffff

using namespace std;

int n,k,res = inf;

vectors;

void solve(vector&s,int d,int now)

solve(s, d+1, now+s[d]);

solve(s, d+1, now*s[d]);

}void dfs(vector&s,int d,vector&used,vector&tmp)

for(int i = 0;iused(s.size(),false);

vectorans(s.size());

dfs(s,0,used,ans);

printf("%d\n",res);

return 0;

}

第四題:painting

題意:輸入n(n<=100000),表示n個白球在一條線上。每次等概率在不與黑球相鄰的白球中選擇乙個置為黑球,直到沒有這樣的白球。問最後剩下的黑球的期望。輸出float,精度10e-8之內。

樣例:n=1和2下顯然期望為1。n=3的時候,第一次有2/3的概率選擇兩邊的白球,此時必然會選擇第二個白球(另一邊的邊上);第一次還有1/3的概率選擇中間的球,此時只會選擇這乙個球,最終的期望是5/3。

思路:dp咯。乙個顯然的dp如下:dp[x]表示初始有x個白球的期望。分類第乙個白球選擇的位置(1~n):如果選在了最邊上的1號球,那麼剩下變成了在3~n中繼續選球;如果選擇了2號,那麼接下來在4~n中選擇;如果選擇了3號,那麼接下來在1號以及5~n號中選擇;同理,如果選擇的是i號球,那麼接下來從1~i-2和i+2~n中分別選擇。但是這個dp的複雜度是o(n^2)級別的,太高了。

如何降到o(n)?考慮上述dp的結果(為方便令dp[0]=0),通過乙個具體的例子解釋吧:n=6的時候dp(x)=1/3(1 + dp(4)) + 1/3(1 + dp(0) + dp(3)) + 1/3(1 + dp(1) + dp(2)) = 1/3 * (3+dp(0)+...+dp(4))。推廣到一般的偶數x,dp(x) = (2/x)*(x/2 + dp(0) + ... + dp(x-2))。同理可以推得n為奇數時候的公式,可知與前n項和有關,記錄一下即可。這樣的dp複雜度就降低為o(n)啦。

#include #include #include #include #include #include #include #include #include #include #include #define n 100005

#define inf 0x7fffffff

using namespace std;

int n;

double dp[n];

int main()

printf("%.10lf\n",dp[n]);

return 0;

}

實際上對於奇數情況,如果把式子乘出來再次化簡,可以得到和偶數相同的形式,而且求dp[i]的時候只與前i-2項的和有關,從而連dp這個陣列也可以省略:**如下:

#include #include #include #include #include #include #include #include #include #include #include #define n 100005

#define inf 0x7fffffff

using namespace std;

int n;

int main()

printf("%.10lf\n",res);

return 0;

}

筆試 位元組跳動2021秋招第一場筆試題目 講解

第一題 某天你得到了乙個長度為n 1 n 500000 的字串,並且這個字串只包含小寫字母。現在允許你修改m 1 m n 個位置的字母,修改完畢你要選取這個字串的乙個連續子串,如果這個子串只包含一種字母,那麼這個連續子串是乙個完美字串。你希望得到的完美字串長度盡可能長,請計算出你所能得到的最長長度是...

搜狗2020校招(後端)筆試第一場

寫了兩道題 第一題關聯容器map儲存資料,能通過key快速儲存或查詢記錄。請設計乙個map,能夠滿足以下要求 1.map的容量size是乙個固定值n,即map最多儲存n個記錄 2.map insert乙個前,首先判斷這個key是否已經在map中存在 1 如果存在 記這個已存在的記錄為,若old va...

商湯科技2018校招研究員筆試第一場

鐵柱在研究乙個區域的小黃車使用分布。他得到了伺服器上最近10000個使用者的二維位置,現在他想把這些使用者聚成k k 10 組,每組有乙個中心c i。他想評價聚類演算法的好壞,把每個資料點到中心的l1距離作為總距離。即 d sum j x j c x j 1 其中c x j 代表x j所屬的中心。現...