To_Heart—题解——HDU6829 Borrow

题目大意

link.

大致题意:给你三个数 a,b,c 每次操作可以选择最大的数减一,其他两个数各有 1/2 的概率加一,如果两个数都是最大的就等概率选择一个减一,其他两个数各有 1/2 的概率加一。问最后所有数相等的期望,如果期望无限大输出 -1 。

题解

先判断 -1 ,发现如果三个数加起来不是 3 的倍数肯定无解。

现在考虑其他两种情况。不妨设 a<b<c。再设一个平均数为 now。

显然 a<now,c>now。那么可以根据 b 和 now 的大小关系分为两种情况。

  1. b>=now :
    此时假设 f[k] 表示最小值到达 k 的期望步数。那么 f[k]=1+ 1/2 f[k+1] +1/2 f[k] ; 易知 f[now]=0,所以 f[k]=f[k+1]+2,所以 f[k]=2*(now-k)。
  2. b<now:
    考虑枚举在哪一步的时候 b 和 c 里面有一个大于或等于了now,那么这个时候就可以规约到第一步。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
const ll Mod=998244353;ll fac[2000005];
ll inv[2000005];ll Pow(ll a,ll b){ll ans=1;while(b){if(b&1) ans*=a,ans%=Mod;a*=a,a%=Mod,b>>=1; }return ans;
}void Init(int n){fac[0]=1;for(int i=1;i<=n;i++) fac[i]=fac[i-1]*i%Mod;inv[n]=Pow(fac[n],Mod-2);for(int i=n-1;i>=0;i--) inv[i]=inv[i+1]*(i+1)%Mod; 
}
ll C(ll n,ll m){if(n<0||m<0||n-m<0) return 0;return fac[n]*inv[m]%Mod*inv[n-m]%Mod;
}ll X,Y,Z;
ll x,y,z;signed main(){Init(1e6);int T;cin>>T;while(T--){scanf("%lld%lld%lld",&X,&Y,&Z);x=max(X,max(Y,Z)),z=min(X,min(Y,Z)),y=X+Y+Z-x-z;ll now=(x+y+z);if(now%3){ printf("-1\n");continue; }now/=3;x-=now,y-=now,z-=now;if(y>=0) printf("%lld\n",(-z*2)%Mod);else{ll now=0;y=-y,z=-z;
//			printf("qwq::%lld %lld\n",y,z);for(ll i=y;i<=x-1;i++){now+=C(i-1,z-1)*(i+2*(x-i))%Mod*Pow(Pow(2,i),Mod-2)%Mod,now%=Mod;now+=C(i-1,y-1)*(i+2*(x-i))%Mod*Pow(Pow(2,i),Mod-2)%Mod,now%=Mod;
//				printf("%lld:%lld %lld\n",i,C(i-1,z-1),C(i-1,y-1));}printf("%lld\n",now);}}	return 0;
}
/*
1
114 514 191
*/

是好题吧?不会期望就是了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/46617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞书小程序开发

1.tt.showModal后跳转页面 跳转路径要为绝对路径&#xff0c;相对路径跳转无响应。 2.手机息屏后将不再进入onload()生命周期&#xff0c;直接进入onshow()生命周期。 onLoad()在页面初始化的时候触发&#xff0c;一个页面只调用一次。 onShow()在切入前台时就会触发&#x…

REDIS 入门篇 - (安装配置)

1. 入门 1.1 简介 Redis(Remote Dictionary Server): 远程字典服务)是完全开源,使用ANSIC语言编写,遵守BSD协议,高性能且提供丰富数据结构 【例如: String、Hash、List、Set、SortedSet、BitMap等】的 KEY-VALUE 数据库。 功能特性: 数据存储在内存中,支持事务、持久化、…

springBoot 配置文件 jpa 相关参数的作用

在Spring Boot应用中&#xff0c;可以通过配置文件来配置JPA&#xff08;Java Persistence API&#xff09;相关的参数。下面是一些常用的JPA配置参数及其作用&#xff1a; spring.jpa.database: 指定JPA使用的数据库类型&#xff0c;默认为自动检测。可选值有HSQL、H2、DERBY…

开放网关架构演进

作者&#xff1a;庄文弘&#xff08;弘智&#xff09; 淘宝开放平台是阿里与外部生态互联互通的重要开放途径&#xff0c;通过开放的产品技术把阿里经济体一系列基础服务&#xff0c;像水、电、煤一样输送给我们的商家、开发者、社区媒体以及其他合作伙伴&#xff0c;推动行业的…

企业网三层架构实验

一、实验拓扑 二、实验要求 1、内网IP地址172.16.0.0/16合理分配&#xff1b; 2、SW1/2之间互为备份&#xff1b; 3、VRRP/STP/VLAN/TRUNK均使用&#xff1b; 4、所有PC通过DHCP获取IP地址&#xff1b; 三、实验思路 1、配置ISP的IP地址&#xff1b; 2、配置R1的IP地址&…

<指针进阶>指针数组和数组指针傻傻分不清?

✨Blog&#xff1a;&#x1f970;不会敲代码的小张:)&#x1f970; &#x1f251;推荐专栏&#xff1a;C语言&#x1f92a;、Cpp&#x1f636;‍&#x1f32b;️、数据结构初阶&#x1f480; &#x1f4bd;座右铭&#xff1a;“記住&#xff0c;每一天都是一個新的開始&#x1…

Mac发现有的软件不能上网的破解之法

1、Mac上打开终端 terminal &#xff0c;获取 root 权限。 sudo -i 2、编辑 hosts 文件 vim /private/etc/hosts 3、找到被禁止软件的数据请求域名&#xff0c;然后删除相关行&#xff0c;快捷件dd&#xff0c;然后:wq保存退出 比如百度 127.0.0.1 pan.baidu.com ##sec 印…

解决http下navigator.clipboard为undefined问题

开发环境下使用navigator.clipboard进行复制操作&#xff0c;打包部署到服务器上后&#xff0c;发现该功能显示为undefined&#xff1b;查相关资料后&#xff0c;发现clipboard只有在安全域名下才可以访问(https、localhost)&#xff0c;在http域名下只能得到undefined&#xf…

C++ lamdba表达式的使用介绍和优缺点

为什么会想起用lamdba表达式呢&#xff1f; 之前有过一些问题&#xff0c;比如使用std::sort对某个类或者某个结构体的某些数据进行操作&#xff08;比如对某个学生的英语成绩进行排序&#xff09;。此时我们会写一个函数并传入形参&#xff0c;但是需要的函数有特别简单&#…

深入完整的带你了解java对象的比较

目录 元素的比较 1.基本类型的比较 2.对象比较的问题 1.运行结果 2.疑问 3.原因 对象的比较 1.覆写基类的equals 2.基于Comparble接口类的比较 3.基于比较器比较 4.三种方式对比 元素的比较 1.基本类型的比较 在Java 中&#xff0c;基本类型的对象可以直接比较大…

LVS-DR模式以及其中ARP问题

目录 LVS_DR LVS_DR数据包流向分析 LVS-DR中ARP问题 问题一 问题二 解决ARP的两个问题的设置方法 LVS-DR特点 LVS-DR优缺点 优点 缺点 LVS-DR集群构建 1.配置负载调度器 2.部署共享存储 3.配置节点服务器 4.测试 LVS 群集 LVS_DR LVS_DR数据包流向分析 客户端…

JVM基础了解

JVM 是java虚拟机。 作用&#xff1a;运行并管理java源码文件锁生成的Class文件&#xff1b;在不同的操作系统上安装不同的JVM&#xff0c;从而实现了跨平台的保证。一般在安装完JDK或者JRE之后&#xff0c;其中就已经内置了JVM&#xff0c;只需要将Class文件交给JVM即可 写好的…

爬虫工作中代理失效了怎么处理?

Hey&#xff01;亲爱的爬虫小伙伴们&#xff0c;是不是经常在爬虫的工作中遇到代理IP失效的问题&#xff1f;别着急&#xff0c;今天我来分享一些应对代理失效的妙招&#xff01;这些方法简单易行&#xff0c;让你爬虫顺利进行. 一、为什么代理会失效&#xff1f; 在爬虫过程…

vue3+ts+vite项目页面初始化loading加载效果

简介 一分钟实现 vue-pure-admin 同款项目加载时的 loading 效果 一、先看效果 1.1 静态效果 1.2 动态效果 二、上代码 核心代码在body里面&#xff0c;代码中已标明。找到你项目的 index.html &#xff0c;复制粘贴进去即可 <!DOCTYPE html> <html lang"en…

【100天精通python】Day43:python网络爬虫开发_爬虫基础(urlib库、Beautiful Soup库、使用代理+实战代码)

目录 1 urlib 库 2 Beautiful Soup库 3 使用代理 3.1 代理种类 HTTP、HTTPS 和 SOCKS5 3.2 使用 urllib 和 requests 库使用代理 3.3 案例&#xff1a;自建代理池 4 实战 提取视频信息并进行分析 1 urlib 库 urllib 是 Python 内置的标准库&#xff0c;用于处理URL、发送…

每天一道leetcode:1306. 跳跃游戏 III(图论中等广度优先遍历)

今日份题目&#xff1a; 这里有一个非负整数数组 arr&#xff0c;你最开始位于该数组的起始下标 start 处。当你位于下标 i 处时&#xff0c;你可以跳到 i arr[i] 或者 i - arr[i]。 请你判断自己是否能够跳到对应元素值为 0 的 **任一** 下标处。 注意&#xff0c;不管是什…

spring依赖注入详解(上)

一、Bean销毁的过程 如果bean销毁时会执行的场景 1、设置DestroyMethodName为(inferred) // 先把DestroyMethodName设置为(inferred) Component public class TestBeanPostProcessor implements MergedBeanDefinitionPostProcessor {Overridepublic void postProcessMergedBe…

spring boot集成jasypt 并 实现自定义加解密

一. 技术需求 由于项目中的配置文件 配置的地方过多&#xff0c;现将配置文件统一放到nacos上集中管理 且密码使用加密的方式放在配置文件中 项目中组件使用的版本环境如下 spring cloud 2021.0.5 spring cloud alibaba 2021.0.5.0 spring boot 2.6.13 二. 技术实现 配置文…

68个Python内置函数,你不会不知道吧?

内置函数就是Python给你提供的&#xff0c;拿来直接用的函数&#xff0c;比如print.&#xff0c;input等。 截止到python版本3.6.2 &#xff0c;python一共提供了68个内置函数&#xff0c;具体如下&#x1f447; abs() dict() help() min() …

ARM开发(cortex-A7核,UART总线实验)

目标&#xff1a;键盘输入一个字符a,串口工具显示b&#xff1b; 键盘输入一个字符串"nihao",串口工具显示"nihao"&#xff1b; ---.h头文件--- #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_rcc.h" #include "stm32mp1x…