当前位置: 首页 > news >正文

Good Trip Codeforces Round 921 (Div. 2) 1925D

Problem - D - Codeforces

题目大意:有n个数,其中有m个匹配对,对于一个匹配对(x,y),他们的除湿贡献为z,一共有k轮行动,每一轮从n个数中独立等概率的选出两个数,如果这两个数在一个匹配对内,那么就贡献z的分数,同时z永远+1,如果不在匹配对立就贡献0,问最终分数的期望是多少

2<=n<=1e5;0<=m<=min(1e5,n*(n-1)/2);1<=k<=2e5

思路:因为只有匹配对被选中才有贡献,所以很容易想到可以枚举每个匹配对,然后枚举其被选中的次数,被选中的次数符合二项分布,但这样两层循环枚举显然会超时。

        因为每一对被选中的概率都是一样的,只有初始贡献不同,所以如果我们把每个匹配对的初始贡献的期望都算出来,这样就可以把所有匹配对看做m个初始贡献为0的匹配对,只需要枚举被选中的次数然后乘以m即可。

        考虑怎么算初始贡献的期望,每个匹配对被选中的概率psel=1/C(2,n),k轮中被选中的次数的期望就是k/C(2,n),再乘以贡献z,z*k/C(2,n)就是单个匹配对初始贡献的期望,可以O(m)的时间求出。

        然后从2到k枚举每个匹配对被选中的次数i,被选中i次的累计贡献为(0+i-1)*i/2,因为每次被选中的概率psel独立等概符合二项分布,所以被选中i次的概率为C(i,k)*(psel)的i次方*(1-psel)的k-i次方,再乘以m,将所有贡献相加,注意预处理逆元和取模即可。

//#include<__msvc_all_public_headers.hpp>
#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
typedef long long ll;
const ll MOD = 1e9 + 7;
ll n;
ll fac[N];
ll inv[N];
ll qpow(ll a, ll b)
{//快速幂a %= MOD;ll ret = 1;while (b){if (b & 1){ret = ret * a % MOD;}a = a * a % MOD;b >>= 1;}return ret;
}
ll C(ll x, ll y)
{//组合数的O(1)算法return inv[x] * fac[y] %MOD * inv[y - x] % MOD;
}
void initfac()
{//预处理阶乘和逆元fac[0] = inv[0] = 1;for (int i = 1; i <= 200000; i++){fac[i] = fac[i - 1] * i % MOD;inv[i] = qpow(fac[i], MOD - 2);}
}
void init()
{}
void solve()
{cin >> n;init();ll m;cin >> m;ll k;cin >> k;ll ans = 0;ll psel = qpow(C(2, n), MOD - 2);//每个匹配对被选中的概率for (int i = 1; i <= m; i++){ll x, y, z;cin >> x >> y >> z;ans = (ans + k * psel % MOD * z % MOD) % MOD;//算出每个匹配对的除湿贡献产生的期望}for (ll i = 2; i <= k; i++){//枚举每个匹配对被选中的次数ll con = i * (i - 1) % MOD * qpow(2, MOD - 2) % MOD;//被选中i次的总贡献ll pro = C(i, k) * qpow(psel, i) % MOD * qpow((1-psel+MOD)%MOD, k - i) % MOD;//被选中i次的概率ans = (ans + con * pro % MOD * m % MOD) % MOD;}cout << ans;cout << '\n';
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);int t;cin >> t;initfac();while (t--){solve();}return 0;
}

相关文章:

Good Trip Codeforces Round 921 (Div. 2) 1925D

Problem - D - Codeforces 题目大意&#xff1a;有n个数&#xff0c;其中有m个匹配对&#xff0c;对于一个匹配对&#xff08;x,y&#xff09;&#xff0c;他们的除湿贡献为z&#xff0c;一共有k轮行动&#xff0c;每一轮从n个数中独立等概率的选出两个数&#xff0c;如果这两…...

推荐一款Linux、数据库、Redis、MongoDB统一管理平台!

官方演示 状态查看 ssh 终端 文件操作 数据库操作 sql 编辑器 在线增删改查数据 Redis 操作 Mongo 操作 系统管理 账号管理 角色管理 资源管理 一.安装 1.下载安装包 cd /opt wget https://gitee.com/dromara/mayfly-go/releases/download/v1.7.1/mayfly-go-linux-amd64.zi…...

TensorFlow2实战-系列教程6:迁移学习实战

&#x1f9e1;&#x1f49b;&#x1f49a;TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 1、迁移学习 用已经训练好模型的权重参数当做自己任务的模型权重初始化一般全连接层需…...

怎样开发adobe indesign插件,具体流程?

文章目录 第一.流程步骤第二.如何调试indesign插件第三.相关资源第四.总结 第一.流程步骤 开发Adobe InDesign插件通常涉及以下步骤&#xff1a; 获取SDK和工具&#xff1a; 从Adobe官方网站下载最新的Adobe InDesign SDK&#xff08;Software Development Kit&#xff09;&am…...

Docker 安装与基本操作

目录 一、Docker 概述 1、Docker 简述 2、Docker 的优势 3、Docker与虚拟机的区别 4、Docker 的核心概念 1&#xff09;镜像 2&#xff09;容器 3&#xff09;仓库 二、Docker 安装 1、命令&#xff1a; 2、实操&#xff1a; 三、Docker 镜像操作 1、命令&#xff1…...

译文带你理解Python的dataclass装饰器

dataclass 是 Python dataclasses 模块中的一个 decorator。当使用 dataclass 装饰器时&#xff0c;它会自动生成一些特殊方法&#xff0c;包括&#xff1a; _ _ init _ _&#xff1a;用于初始化字段的构造函数_ _ repr _ _&#xff1a;对象的字符串表示_ _ eq _ _&#xff1a…...

【C语言】实现程序的暂停

编写程序时&#xff0c;有时候需要让程序在某些地方暂停执行&#xff0c;等待用户输入或者观察程序执行结果。在 C 语言中&#xff0c;有多种方法可以实现程序的暂停&#xff0c;包括 system("pause")、getchar() 和 while ((c getchar()) ! \n && c ! EOF)…...

Hana SQL+正则表达式

目录 一、Pre 前言 二、知识点拆解 1&#xff09;case when…then…else 2&#xff09;json_value 函数 拓展资料 3&#xff09;CAST 函数 拓展资料 4) ROUND 函数 5&#xff09;occurences_regexpr 函数 拓展资料 6&#xff09;正则表达式 拓展资料 三、整合分析…...

【笔记】顺利通过EMC试验(16-41)-视频笔记

目录 视频链接 P1:电子设备中有哪些主要骚扰源 P2:怎样减小DC模块的骚扰 P3:PCB上的辐射源究竟在哪里 P4:怎样控制PCB板的电磁辐射 P5:多层线路板是解决电磁兼容问题的简单方法 P6:怎样处理地线上的裂缝 P7:怎样降低时钟信号的辐射 P8:为什么IO接口的处理特别重要 P9…...

Qlik Sense 调用NPrinting生成On-Demand报表

安装 Qlik Sense On-Demand 报表控件 On-Demand 报表控件添加按钮&#xff0c;该按钮按需生成 Qlik NPrinting 报表。它包括在 Dashboard bundle 中。 当您希望用户能够使用应用程序中的选择作为过滤器在 Qlik Sense 中打印预定义 Qlik NPrinting 报表时&#xff0c;On-Deman…...

ElasticSearch重建/创建/删除索引操作 - 第501篇

历史文章&#xff08;文章累计500&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 E…...

数据写入HBase(scala)

package sourceimport org.apache.hadoop.hbase.{HBaseConfiguration, TableName} import org.apache.hadoop.hbase.client.{ConnectionFactory, Put} import org.apache.hadoop.hbase.util.Bytesobject ffff {def main(args: Array[String]): Unit {//hbase连接配置val conf …...

Codeforces Round 799 (Div. 4)

目录 A. Marathon B. All Distinct C. Where’s the Bishop? D. The Clock E. Binary Deque F. 3SUM G. 2^Sort H. Gambling A. Marathon 直接模拟 void solve() {int ans0;for(int i1;i<4;i) {cin>>a[i];if(i>1&&a[i]>a[1]) ans;}cout<&l…...

为什么要用云手机养tiktok账号

在拓展海外电商市场的过程中&#xff0c;许多用户选择采用tiktok短视频平台引流的策略&#xff0c;以提升在电商平台上的流量&#xff0c;吸引更多消费者。而要进行tiktok引流&#xff0c;养号是必不可少的一个环节。tiktok云手机成为实现国内跨境养号的一种有效方式&#xff0…...

vue pc端网页实现自适应

一、基本原理 pc端做自适应可以用rem来实现&#xff0c;啥是rem&#xff0c;自己百度 二、新建rem.ts文件 // rem等比适配配置文件 // 基准大小 const baseSize 14 // 设置 rem 函数 function setRem () {// 当前页面宽度相对于 1920宽的缩放比例&#xff0c;可根据自己需要…...

Android 13以上版本读写SD卡权限适配

如题&#xff0c;最近工作上处理的问题&#xff0c;把解决方案简单逻列出来&#xff0c;供有需要的朋友参考之 解决方案&#xff1a; 1、配置权限 <uses-permission android:name"android.permission.READ_MEDIA_IMAGES" /><uses-permission android:name&q…...

并查集模板:食物链详解

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main {static int N 50010;static int n,m; //n个动物,m局判断static int[] p new int[N]; //p[i]是i的根节点static int[] d new int[N]; //d[i]表示i到…...

使用WAF防御网络上的隐蔽威胁之反序列化攻击

​ 什么是反序列化 反序列化是将数据结构或对象状态从某种格式转换回对象的过程。这种格式通常是二进制流或者字符串&#xff08;如JSON、XML&#xff09;&#xff0c;它是对象序列化&#xff08;即对象转换为可存储或可传输格式&#xff09;的逆过程。 反序列化的安全风险 反…...

05. 交换机的基本配置

文章目录 一. 初识交换机1.1. 交换机的概述1.2. Ethernet_ll格式1.3. MAC分类1.4. 冲突域1.5. 广播域1.6. 交换机的原理1.7. 交换机的3种转发行为 二. 初识ARP2.1. ARP概述2.2. ARP报文格式2.3. ARP的分类2.4. 免费ARP的作用 三. 实验专题3.1. 实验1&#xff1a;交换机的基本原…...

yolo将标签数据打到原图上形成目标框

第一章 目标&#xff1a;为了查看自己在标注标签时是否准确&#xff0c;写了这段代码来将标注的框打到原图上 第二章 步骤&#xff1a;进行反归一化得到坐标画出矩形框 第二行是目标图片对应的txt,第三行是目标图片 第三章 全部代码如下&#xff1a; import cv2 import …...

解决Ubuntu18.04网络共享中的常见问题:从Permission denied到外网访问失败

Ubuntu 18.04网络共享全攻略&#xff1a;从静态IP配置到外网访问故障排查 当你需要在两台Ubuntu 18.04设备间共享网络连接时&#xff0c;可能会遇到各种意料之外的障碍。无论是权限问题、静态IP配置错误还是NAT转发失效&#xff0c;每个环节都可能成为网络共享路上的绊脚石。本…...

如何高效获取QQ音乐资源?MCQTSS_QQMusic带来的无损音乐解析方案

如何高效获取QQ音乐资源&#xff1f;MCQTSS_QQMusic带来的无损音乐解析方案 【免费下载链接】MCQTSS_QQMusic QQ音乐解析 项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic MCQTSS_QQMusic是一款专注于QQ音乐资源解析的开源工具&#xff0c;能够帮助用户突破…...

FastAPI GraphQL接口缓存:Response Cache优化完整指南

FastAPI GraphQL接口缓存&#xff1a;Response Cache优化完整指南 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI是一个高性能…...

路径遍历 PortSwigger labs

File path traversal, simple case 实验信息 平台&#xff1a;PortSwigger Web Security Academy 漏洞&#xff1a;路径遍历漏洞&#xff08;Path Traversal&#xff09; Lab:Server-side vulnerabilities - PortSwigger 难度&#xff1a;简单 漏洞原理 网站通过 filena…...

告别繁琐的pip安装,用快马平台快速搭建python数据分析原型

最近在做一个数据分析的小项目时&#xff0c;我深刻体会到了Python环境配置的繁琐。每次换电脑或者重装系统&#xff0c;都要重新安装Python、配置pip、解决各种依赖冲突&#xff0c;光是环境准备就能耗掉半天时间。特别是当需要快速验证一个想法时&#xff0c;这种等待简直让人…...

ai赋能安装:让快马生成智能交互式mysql安装故障排查助手

AI赋能安装&#xff1a;让快马生成智能交互式MySQL安装故障排查助手 MySQL作为最流行的开源数据库之一&#xff0c;安装过程看似简单&#xff0c;但实际会遇到各种"坑"。新手经常被报错信息搞得一头雾水&#xff0c;老手也可能在特定环境下翻车。传统教程都是静态的…...

攻防世界 reverse题GFSJ0810-【crazy】

1.工具&#xff1a;exeinfope、IDA Pro (64-bit)、thonny2.解题&#xff1a;下载附件后&#xff0c;我们先在exeinfope里查壳&#xff0c;如下我们发现是64位无壳文件&#xff0c;然后我们把它放到IDA Pro (64-bit)里分析&#xff0c;我们点击F5先查看伪代码&#xff0c;如下代…...

终极文档智能解析:5大功能实现多格式文档解析与智能内容提取

终极文档智能解析&#xff1a;5大功能实现多格式文档解析与智能内容提取 【免费下载链接】anything-llm 这是一个全栈应用程序&#xff0c;可以将任何文档、资源&#xff08;如网址链接、音频、视频&#xff09;或内容片段转换为上下文&#xff0c;以便任何大语言模型&#xff…...

从零到一:在KEIL5中高效搭建华大HC32F460单片机开发环境

1. 开发环境搭建前的准备工作 第一次接触华大HC32F460单片机时&#xff0c;我完全被各种文件搞得晕头转向。后来才发现&#xff0c;只要理清楚文件结构&#xff0c;搭建开发环境其实并不复杂。这里分享下我的实战经验&#xff0c;帮你避开那些新手常踩的坑。 首先需要明确的是…...

避坑指南:在Windows 11上用Docker Compose一键部署Casdoor(含MySQL和持久化配置)

Windows 11容器化部署Casdoor全攻略&#xff1a;告别环境配置噩梦 "明明按照文档一步步操作&#xff0c;为什么我的Casdoor就是跑不起来&#xff1f;"这可能是许多Windows开发者初次接触开源身份认证系统时的共同困惑。传统部署方式需要手动配置Go、Node.js、Yarn、…...