Do You Like Interactive Problems?

news2024/12/26 9:30:33

Problem - 7386

题目大意:给出一整数n,有一个隐藏的在1~n范围内的数x,每次随机询问一个y,会得知x<y,x>y,或x=y,当可能的x唯一确定时停止询问,问期望的询问次数是多少

1<=n<=1e9

思路:用以下程序模拟这个操作后可以发现

import random
n=15
x=2
t=0
tot=0
print('n:',n)
print('x:',x)
while 1:
    t+=1
    if(t==100000):
        break
    cnt=0
    l=[]
    while 1:
        q=random.randint(1,n)
        if q not in l:
            l.append(q)
        cnt+=1
        if x in l:
            break
        if x==1:
            if x+1 in l:
                break
        if x==n:
            if x-1 in l:
                break
        if x!=1 and x!=n:
            if x-1 in l and x+1 in l:
                break
    tot+=cnt
    
print(tot/100000)


当x=1或n时,期望为n/2,当x属于2~n-1时,期望为2n/3,那么总的期望就是\frac{\frac{n}{2}*2+(n-2)*\frac{2n}{3}}{n},因为模数998244353在n的范围内,所以要用扩展欧几里得求逆元,或者将式子进一步化简得到(2n-1)/3,1的情况因为n-2<0,所以要特判

#include<bits/stdc++.h>
//#include<__msvc_all_public_headers.hpp>
using namespace std;
typedef long long ll;
ll n;
const int N = 1e6 + 5;
const ll MOD = 998244353;
void init()
{
}
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 exgcd(ll a, ll b, ll& x, ll& y) //扩展欧几里得算法
{
    if (b == 0)
    {
        x = 1, y = 0;
        return a;
    }
    ll t = exgcd(b, a % b, y, x);
    y = y - a / b * x;
    return t;
}
ll Inv(ll a, ll mod) //求a在mod下的逆元,不存在逆元返回-1
{
    ll x, y;
    ll d = exgcd(a, mod, x, y);
    return d == 1 ? (x % mod + mod) % mod : -1; //x可能是负数,转化成正数
}
void solve()
{
    ll k;
    cin >> n;
    init();
    ll ans;
    if (n == 1)
        ans = 0;
    else
    {
        ll temp1 = 2 * n - 1;
        ll x = qpow(3, MOD - 2);
        ans = temp1 * x%MOD;
    }
    cout << ans << endl;
}
int main()
{
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(false);
    int t;
    cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}

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

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

相关文章

AMEYA360邀您参加EESA第二届中国国际储能展览会暨第十届国际大会

2023年8月30日-9月1日&#xff0c;由EESA储能领跑者联盟主办的第二届中国国际储能展览会将重磅亮相苏州国际博览中心。作为目前中国乃至整个亚洲区最聚焦的储能展览会&#xff0c;本次展览会的规模高达10万平方米&#xff0c;来自全国各地超过1000多家储能核心企业将共襄盛举&a…

揭秘!体育比赛是如何快人一步购票的

最近&#xff0c;各类体育赛事正如火如荼的进行中&#xff0c;作为资深体育迷&#xff0c;看着赛场上的英雄们正在为荣誉和胜利而拼搏&#xff0c;内心也跟着激情澎湃起来。 为了享受精彩纷呈的赛事&#xff0c;越来越多体育迷选择亲临现场&#xff0c;感受更真实的比赛氛围&a…

Java:ArrayList集合、LinkedList(链表)集合的底层原理及应用场景

ArrayList集合的底层原理及应用场景 LinkedList&#xff08;链表&#xff09;集合的底层原理及应用场景 单向链表 增加数据 删除数据 双向链表 LinkedList的应用场景之一:可以用来设计队列 入队 出队 LinkedList的应用场景之一:可以用来设计栈 压栈&#xff08;push),addFirst…

typeScript安装及TypeScript tsc 不是内部或外部命令,也不是可运行的程序或批处理文件解决办法

一、typeScript安装&#xff1a; 1、首先确定系统中已安装node, winr 输入cmd 打开命令行&#xff0c;得到版本号证明系统中已经安装node node -v //v18.17.0 2、使用npm 全局安装typeScript # 全局安装 TypeScript npm i -g typescript 二、检查是否安装成功ts #检查t…

pvt corner / rc corner

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f;拾陆楼知识星球入口 PVT wc&#xff1a;worst case slow&#xff0c;低电压&#xff0c;高温度&#xff0c;慢工艺 -> 一般情况下delay最大&#xff0c;setup 差。 wcl&#xff1a;worst case lo…

思维导图网页版哪个好用?6款高效的思维导图网页版工具盘点

思维导图是一种强大的可视化工具&#xff0c;可以帮助我们整理复杂的信息&#xff0c;提高工作和学习效率。使用在线思维导图工具可以让信息的梳理整合过程变得更加方便。下面&#xff0c;我们就来详细盘点一下6款非常好用而且容易上手的思维导图网页版工具&#xff01; …

去除UI切图边缘上多余的线条

最近接到UI切图&#xff0c;放进项目&#xff0c;显示边缘有多余线条&#xff0c;影响UI美观。开始以为切图没切好&#xff0c;实则不是。如图&#xff1a; ->解决&#xff1a; 将该图片资源WrapMode改为Clamp

SHP格式建筑数据转换为SketchUp模型插件分享

之前有给大家讲解过《如何使用3ds Max制作三维地形》&#xff0c;将GIS数据和传统的三维建模软件进行了结合&#xff0c;在很长一段时间内&#xff0c;一直有人问如何将水经微图中下载的建筑数据转换为SketchUp模型&#xff0c;这里给大家找到了一种解决方案&#xff0c;可以通…

算法|Day45 动态规划13

LeetCode 300.最长递增子序列 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目描述&#xff1a;给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&…

LeetCode[1288]删除被覆盖区间

难度&#xff1a;Medium 题目&#xff1a; 给你一个区间列表&#xff0c;请你删除列表中被其他区间所覆盖的区间。 只有当 c < a 且 b < d 时&#xff0c;我们才认为区间 [a,b) 被区间 [c,d) 覆盖。 在完成所有删除操作后&#xff0c;请你返回列表中剩余区间的数目。 示…

公众号静默授权

1.新建 utils文件夹及wxauth.js 2.封装 wxauth.js&#xff08;请求自己接口时要注意接口返回数据的结构&#xff09; import axios from axios; import url from ../ui/URL.js; //取Cookie的值 function GetCookie(name) {var arg name "";var alen arg.length;v…

七夕什么礼物最有意义?这些礼物送到ta心里去!

转眼间七夕节就到了&#xff0c;想必各位女/男同志都在纠结送什么礼物&#xff0c;一般来说&#xff0c;除了生活用品&#xff0c;对于一些数码产品是比较感兴趣的&#xff0c;所以买一个数码好物作为礼物&#xff0c;大概率是不会出错&#xff0c;接下来我来安利几款非常实用的…

这,就是大模型时代的生产力!

文心与飞桨&#xff0c;向我们展示了领先大模型的生产力。 大模型应用卷到了什么地步&#xff1f;几天前&#xff0c;我们看到的还是写文章、画图、回答数学问题&#xff0c;现在已经有人这么用了&#xff1a; 如果把一长段对话转发到别的群聊里&#xff0c;AI 可以自动生成总…

YOLO v5、v7、v8 模型优化

YOLO v5、v7、v8 模型优化 魔改YOLOyaml 文件解读模型选择在线做数据标注 YOLO算法改进YOLOv5yolo.pyyolov5.yaml更换骨干网络之 SwinTransformer更换骨干网络之 EfficientNet优化上采样方式&#xff1a;轻量化算子CARAFE 替换 传统&#xff08;最近邻 / 双线性 / 双立方 / 三线…

3.物联网LWIP之socket编程

一。Socket编程的基本概念 在我看来Socket就相当于API&#xff0c;就是函数接口&#xff0c;我们使用Socket就可以在不清楚底层原理的基础上进行通信&#xff0c;即Socket会帮助我们处理好网络的Ip地址等。下图就清晰的展示了Socket的位置&#xff0c;作为用户层与其他层的交互…

Arduino 入门学习笔记12 读写外置EEPROM

Arduino 入门学习笔记12 读写外置EEPROM 一、准备工作1. 外置 EEPROM 简介2. Arduino操作外置 EEPROM 流程 二、读写操作流程1. 写操作流程2. 读操作 三、示例代码 一、准备工作 1. 外置 EEPROM 简介 外置I2C接口的EEPROM是一种常用的非易失性存储器&#xff0c;通过I2C总线与…

opencv 进阶10-人脸识别原理说明及示例-cv2.CascadeClassifier.detectMultiScale()

人脸识别是指程序对输入的人脸图像进行判断&#xff0c;并识别出其对应的人的过程。人脸识别程 序像我们人类一样&#xff0c;“看到”一张人脸后就能够分辨出这个人是家人、朋友还是明星。 当然&#xff0c;要实现人脸识别&#xff0c;首先要判断当前图像内是否出现了人脸&…

分享一个可以录制限制录屏的方法

随着智能手机的普及&#xff0c;录屏已经成为了很多人记录生活的重要方式。然而&#xff0c;在使用录屏应用时&#xff0c;我们可能会遇到一些限制&#xff0c;例如无法录制某些应用程序的屏幕。下面将介绍一些方法&#xff0c;帮助你在这种情况下仍然能够轻松地录制屏幕。 使用…

3D数据转换工具HOOPS Exchange概览

HOOPS Exchange SDK是一组C软件库&#xff0c;使开发团队能够快速为其应用程序添加可靠的2D和3D CAD导入和导出功能。这允许访问广泛的数据&#xff0c;包括边界表示&#xff08;BREP&#xff09;、产品制造信息&#xff08;PMI&#xff09;、模型树、视图、持久ID、样式、构造…

亚马逊无限买家号如何注册?

如果想要拥有大批量的亚马逊买家号&#xff0c;可以使用亚马逊鲲鹏系统进行自动注册操作。在注册之前我们需要先准备好账号所需要的资料&#xff1b; 1、Ip&#xff1a;软件系统支持11个亚马逊站点使用&#xff0c;因此注册哪一个国家的买家号时就需要购买相应国家的ip&#x…