
排列组合
ymzqwq
这个作者很懒,什么都没留下…
展开
-
[hdu4045]Machine scheduling (DP+第二类斯特林数)
传送门 (这题没明确讲多组数据害我WA了一发)可以把题目分成两个部分 - 从n个机器中选出r个 - 将r个机器分成不超过m组第二个子问题很明显是第二类斯特林数,即∑mi=1Sr,i∑i=1mSr,i\sum_{i=1}^{m}S_{r,i}比较棘手的是第一个子问题,网上的题解多是插板法不再赘述,这里提供一种DP的做法。 用f[i][j]f[i][j]f[i][j]表示当前选...原创 2018-07-27 16:07:13 · 249 阅读 · 1 评论 -
[hdu3625] Examining the Rooms (第一类斯特林数)
传送门 感觉这题的思想还是挺巧妙的 反正我想出来的时候有种被自己机智到了的感觉233(其实是我平时太蠢,所以偶尔想出一道题就觉得自己棒棒的。。)用key[i]key[i]key[i]表示第iii个房间放的钥匙编号,那么keykeykey数组就是111到nnn的一个排列,所以总方案数就是n!n!n!。 这就是最后概率的分母咯再求分子。 我们可以这样考虑,将iii和key[i]key[...原创 2018-07-27 16:27:34 · 195 阅读 · 0 评论 -
[Codeforces 340E] Iahub and Permutations (容斥)
传送门 这个340E竟然是340e,让人觉得很诡异。。。稍微分析一下就可以发现这题本质是求sss个数排列,有qqq个数可以随便排,其余错排的方案数。回忆一下,我们证明错排通项公式的时候是怎么容斥的,其实这题也差不多。 就是总方案数 - 1个在原来位置上的方案数 + 2个在原来位置上的方案数 - 3个在原来位置上的方案数…… 具体来说,有iii个在原来位置上的方案数,就是先在要错排的数...原创 2018-07-27 18:17:50 · 337 阅读 · 1 评论 -
TopCoder SRM 599 Div2 950 SimilarNames2
暴力求出每个单词的前缀数量f[i]f[i]f[i] 那么如果我们要将这个单词排在第LLL位,前L−1L−1L-1位的方案数就是(f[i]−1L−1)(f[i]−1L−1)f[i]-1 \choose L-1,然后最后n−Ln−Ln-L位就乱排。#include <bits/stdc++.h>using namespace std;const int N=51;const i...原创 2018-09-07 09:06:43 · 186 阅读 · 0 评论