美團 CodeM 複賽 配對遊戲

2021-08-03 15:01:29 字數 844 閱讀 1341

有 nnn 個人排成一排,一開始全部面向前方,然後隨機朝左或是朝右轉。

然後我們不斷審查這個佇列,每次選擇兩個面對面的相鄰的人,將他們從佇列中取出。

例如(> 表示向右,< 表示向左):

佇列 >>><<< 的消除過程為,>>><<< 到 >><< 到 >< 到空佇列(每次去除一對)。

佇列 >><><<<> 的消除過程為,>><><<<> 到 >><<<> 到 ><<> 到 <>(每次去除一對)。

求最後期望能夠剩下多少人。

可以把每個人看做左右括號,那麼一對匹配括號會被刪除。

設f[i,j]表示做到第i個人還有j個左括號的期望,g[i,j]表示概率,轉移很簡單。

#include

#include

#define fo(i,a,b) for(i=a;i<=b;i++)

#define fd(i,a,b) for(i=a;i>=b;i--)

typedef double db;

using namespace std;

const int maxn=2000+10;

db f[maxn][maxn],g[maxn][maxn],ans;

int i,j,k,l,t,n,m;

int main()

else

f[i+1][j+1]=(f[i+1][j+1]+f[i][j]/2);

g[i+1][j+1]=(g[i+1][j+1]+g[i][j]/2);

}fo(i,0,n) ans+=f[n][i];

printf("%.3lf",n-ans);

}

美團 CodeM 複賽 城市網路

有乙個樹狀的城市網路 即 nnn 個城市由 n 1n 1n 1 條道路連線的連通圖 首都為 111 號城市,每個城市售賣價值為 aia ia i 的珠寶。你是乙個珠寶商,現在安排有 qqq 次行程,每次行程為從 uuu 號城市前往 vvv 號城市 走最短路徑 保證 vvv 在 uuu 前往首都的最短...

演算法 配對遊戲(美團)

有 n 個人排成一排,一開始全部面向前方,然後大家一起轉身,隨機朝左或是朝右轉。轉身後,不斷檢查佇列,如果存在兩個面對面的相鄰的人,則將這兩個人從佇列中消除 直到不存在兩個面對面的相鄰的人。例如 表示向右,表示向左 佇列 的消除過程為,到 到 到 每次去除一對 最後剩下人數為0。佇列 的消除過程為,...

美團codeM預賽A 倒水

倒水 時間限制 1秒 空間限制 32768k 有乙個大水缸,裡面水的溫度為t單位,體積為c公升。另有n杯水 假設每個杯子的容量是無限的 每杯水的溫度為t i 單位,體積為c i 公升。現在要把大水缸的水倒入n杯水中,使得n杯水的溫度相同,請問這可能嗎?並求出可行的最高溫度,保留4位小數。注意 一杯溫...