9 6 美團筆試程式設計題

2021-08-27 08:59:22 字數 2408 閱讀 1367

a

題意: 求一棵樹中, 從點1遍歷所有點的最短距離, 所有相鄰點之間的距離都是1

思路: 假設問題是這樣, 從點1遍歷所有點最後回到點1, 很顯然對於結果就是2 * (n - 1), 因為每條邊都會遍歷恰好兩次, n是結點數目. 那麼此時只需要遍歷所有點, 不需要回到點1, 那麼我們可以選擇一條從1出發的最長路徑, 這條路徑中的邊只會遍歷一次. 答案就是 2 * (n - 1) - 從點1出發的最長路徑長度.

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

// #include

#include

using

namespace

std;

#define ll long long

#define pb push_back

#define mk make_pair

#define pill pair

#define fi first

#define se second

#define mst(a, b) memset(a, b, sizeof a)

#define lson (rt << 1)

#define rson ((rt << 1) | 1)

const

int qq = 1e5 + 10;

const

int inf = 1e9 + 10;

const

int mod = 1e9 + 7;

vector

vt[qq];

int dep[qq];

int n, ans, node;

void dfs(int u, int fa)

}int main()

dfs(1, 0);

int ans = 2 * (n - 1);

int maxn = -1;

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

printf("%d\n", ans - maxn);

return

0;}

b

題意: 求所有長度為k區間中, 有多少區間中某個數字出現大於等於t次

思路: 滑動視窗維護區間中數字出現大於等於t次的個數

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

// #include

#include

using

namespace

std;

#define ll long long

#define pb push_back

#define mk make_pair

#define pill pair

#define fi first

#define se second

#define mst(a, b) memset(a, b, sizeof a)

#define lson (rt << 1)

#define rson ((rt << 1) | 1)

const

int qq = 1e5 + 10;

const

int inf = 1e9 + 10;

const

int mod = 1e9 + 7;

int n, k, t;

int num[qq], ct[qq];

int main()

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

int cnt = 0;

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

int ans = 0;

for (int i = k - 1; i < n; ++i)

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

return

0;}

2017美團秋招筆試程式設計題 後台研發

1 求所有能被7整除的數字 分析 方法一 採用暴力解法,即兩兩數字都組合一遍對7取餘判斷的方法,演算法複雜度o n2 會超時,提交成功率為70 方法二 求乙個數a前面拼接上什麼數能夠被7整除,只需進行以下操作即可 數a前面依次拼上0 6,變為0a,1a,2a 6a。依次判斷這7個數能否被7整除 以1...

美團點評2017秋招筆試程式設計題 題解

昨晚臨時做了下美團2017年的校招題 純屬無聊 感覺美團的題就做得很舒服了,考想法,量小,只要你的idea夠好,就幾行,學習了!大富翁遊戲,玩家根據骰子的點數決定走的步數,即骰子點數為1時可以走一步,點數為2時可以走兩步,點數為n時可以走n步。求玩家走到第n步 n 骰子最大點數且是方法的唯一入參 時...

題解 美團點評2017秋招筆試程式設計題

順序從第四題開始寫到第一題 給出兩個字串 可能包含空格 找出其中最長的公共連續子串,輸出其長度。輸入描述 輸入為兩行字串 可能包含空格 長度均小於等於50.輸出描述 輸出為乙個整數,表示最長公共連續子串的長度。示例1輸入 abcde abgde 輸出 2分析 列舉各種長度的各種情況肯定是要超時的 那...