題解 JLOI2013 卡牌遊戲

2022-05-07 22:57:25 字數 621 閱讀 4553

概率dp, 應該做得還是比較少的

設\(f[i][j]\)為該圈有\(i\)人時, 第\(j\)個人最後勝利的概率

列舉選擇第幾張卡牌, 設其值為\(card[k]\), 那麼被淘汰的則是\(card[k] \% i\), 分類討論

就是這樣, 最後算百分數不要忘記乘一百

#include #include #include #include #include #include #define itn int

#define read read

#define n 55

using namespace std;

int n, m, card[n];

double f[n][n];

inline int read()

while(c >= '0' && c <= '9')

return x * w;

}int main()

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

printf("%.2lf%c%c", f[n][i] * 100, '%', i == n ? '\n' : ' ');

return 0;

}

題解 JLOI2013卡牌遊戲

這題最開始是用 n 的演算法水過的,之後才想出的 n 正解。首先,n 應該是很容易想到的 設狀態 f i j k 為有 i 個人,莊家為 j 號人時,第 k 個人勝出的概率。這樣,只需要去掉本輪淘汰的人,加上 i 1 個人時該人勝出的概率即可。include using namespace std ...

JLOI2013 卡牌遊戲

讀完題可以很容易的想到暴力模擬,列舉每一張卡片,然後看誰被淘汰,去掉被淘汰的人後從他的下乙個人開始重複上面的操作,直到剩下乙個人,那麼乙個人獲勝的概率就是他贏的狀態數除以總狀態數,複雜度為o n o n o n 直接t tt飛。考慮優化,我們發現複雜度主要是被人的編號所約束,因為我們在考慮乙個人獲勝...

JLOI2013 卡牌遊戲

jloi2013 卡牌遊戲 n個人坐成一圈玩遊戲。一開始我們把所有玩家按順時針從1到n編號。首先第一回合是玩家1作為莊家。每個回合莊家都會隨機 即按相等的概率 從卡牌堆裡選擇一張卡片,假設卡片上的數字為x,則莊家首先把卡片上的數字向所有玩家展示,然後按順時針從莊家位置數第x個人將被處決即退出遊戲。然...