首页 > 其他分享 >牛客41668B 灵魂之火 II

牛客41668B 灵魂之火 II

时间:2022-12-09 15:58:14浏览次数:51  
标签:41668B 打出 int 张牌 II 牛客 include define

你有n张牌,其中m张牌可以打出并且随机弃掉一张牌,这m张牌如果能出一定会打出,其他牌均不可打出,问期望能出多少张牌

考虑期望dp,有 \(i\) 张牌其中 \(j\) 张牌可以打出的期望为 \(f_{i,j}\),转移方程为

\[f_{i,j} = f_{i - 2, j - 2} * \frac{j - 1}{i - 1} + f_{i - 2, j - 1} * \frac{i - j}{i - 1} + 1 \]

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <queue>

#define file(s) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout);
#define dbg(x) cerr<<"In Line"<<__LINE__<<" the "<<#x<<" = "<<x<<'\n';
#define abs(x) ((x) < 0 ? -(x) : (x))

using namespace std;

const int N = 2e6 + 10, mod = 1e9 + 7;

inline int read() {
	bool sym = 0; int res = 0; char ch = getchar();
	while (!isdigit(ch)) sym |= (ch == '-'), ch = getchar();
	while (isdigit(ch)) res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
	return sym ? -res : res;
}

int n, m, k, f[2050][2050], inv[N];

int qpow(int a, int x) {
	int res = 1;
	while (x) {if (x & 1) res = 1ll * res * a % mod; a = 1ll * a * a % mod; x >>= 1;}
	return res;
}

int main() {
	int T = read(); n = 2022; inv[1] = 1;
	for (int i = 2; i <= n; i++) inv[i] = qpow(i, mod - 2);
	for (int i = 1; i <= n; i++) {
		f[i][1] = 1; f[i][2] = 1ll * ((i - 2 << 1) + 1) * inv[i - 1] % mod;
		for (int j = 3; j <= i; j++) {
			f[i][j] = (1ll * f[i - 2][j - 2] * (j - 1) + 1ll * f[i - 2][j - 1] * (i - j) + i - 1) % mod * inv[i - 1] % mod;
		}
	}
	while (T--) {
		n = read(); m = read(); printf("%d\n", (1ll * f[n][m] << 2) % mod);
	}
	return 0;
}

标签:41668B,打出,int,张牌,II,牛客,include,define
From: https://www.cnblogs.com/zrzring/p/NC41668B.html

相关文章

  • 力扣 leetcode 40. 组合总和 II
    问题描述给定一个候选人编号的集合candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使......
  • UCOS-III笔记
    1.单片机程序分类:轮询程序,前后台程序,多任务系统程序2.多任务系统伪代码1intflag1=0;2intflag2=0;3intflag3=0;45intmain(void)6{7/*硬件相关初......
  • 2022牛客多校3 D 期望概率dp
    D简述一下题意:给定一颗以1为根的树一个起点x树上有k随机条边定向变为儿子到父亲。求从x出发到达1号节点的期望步数。这个期望题很好。先考虑0条边定向x到1的期望步......
  • 2022牛客多3 B 模拟费用流
    B题目很短,出的最小费用最大流。好像付费报名才能看。当然不是裸题,是我也不会写,好久没写网络流了。因为将图建出来边数为1e6每次增广也是增广1流量复杂度显然不能接受......
  • 遭遇HBKernel32.sys,aliimz.sys,System.exe,koauolte.exe,cho22.tmp等2
    遭遇HBKernel32.sys,aliimz.sys,System.exe,koauolte.exe,cho22.tmp等2 (续1) 因为时间的关系,不能对病毒样本文件做测试,这里把部分文件信息发上来。 文件说明符:C:/WIN......
  • 遭遇HBKernel32.sys,aliimz.sys,System.exe,koauolte.exe,cho22.tmp等1
    遭遇HBKernel32.sys,aliimz.sys,System.exe,koauolte.exe,cho22.tmp等1endurer2008-11-03第1版一位朋友的说他的电脑登录后自动注销,请偶帮忙检修。先尝试安全模式,故障依旧......
  • 题目:剑指Offer58-II.左旋转字符串
    题目:剑指Offer58-II.左旋转字符串力扣题目链接(opensnewwindow)字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操......
  • 网站部署到IIS上如何调试
    https://www.likecs.com/show-204368183.html#sc=1400在一个网站成功部署后,有时候可能会遇到一些错误,但又不能一眼看出错误源,如果能在源程序里下断点进行调试就好了,这样就......
  • 219.contains-duplicate-ii 存在重复元素II
    问题描述219.存在重复元素II解题思路利用unordered_map记录元素出现的次数,使用滑动窗口法。代码classSolution{public:boolcontainsNearbyDuplicate(vector<......
  • IIS fails to run ASP.NET Core site - HTTP Error 502.5
    IISfailstorunASP.NETCoresite-HTTPError502.5回答1Yourproblemisabadweb.configfile:<aspNetCorerequestTimeout="02:00:00"processPath="%L......