首页 > 其他分享 >Fortune Wheel - Problem

Fortune Wheel - Problem

时间:2024-07-12 13:23:49浏览次数:8  
标签:Wheel le Fortune rvert dfrac lvert Problem 步数

Fortune Wheel - Problem

题目大意

有一个上有编号 \(0\) 到 \(n-1\) 的转盘,你可以使转盘随机旋转到一个位置或者向前旋转 \(k_i\) 个位置,求在最优策略下的期望步数。

数据范围满足,\(1\le n\le 10^5,\lvert k \rvert \le 500\)。

思路

考虑先使用 bfs,在 \(O(n\lvert k\rvert)\) 的时间里求出从任一点通过确定步数移动到 \(0\) 的最小步数。

最有策略应该是一直进行随机操作直到到达某一个临界值再使用确定步数的操作完成,所以我们可以枚举每一个临界值选取期望步数最小的一个。

假设这个临界值以内的数构成集合 \(S\),那么其移动步数的期望值为 \(\dfrac{(\sum\limits_{i\in S}dis_i )+n}{\lvert S\rvert}\) ,可以理解为每一次有 \(\dfrac{\lvert S\rvert}{n}\) 的概率随机跳到 \(S\) 以内,所以期望次数为 \(\dfrac{n}{\lvert S\rvert}\)。

标签:Wheel,le,Fortune,rvert,dfrac,lvert,Problem,步数
From: https://www.cnblogs.com/liudagou/p/18298163

相关文章

  • Solution - Atcoder ABC177F I hate Shortest Path Problem
    考虑按题目所述的进行DP。设计状态\(f_{i,j}\)代表强制要求\((i,j)\)要走向\((i+1,j)\)最小的横坐标之差,这是因为对应的纵坐标之差是确定的。对于转移,考虑到对于\(j\not\in[a_i,b_i]\),直接从上面转移下来即可,即\(f_{i,j}\leftarrowf_{i-1,j}\)。对于\(j......
  • WPF MouseWheel MouseDown MouseUp MouseMove mapped in mvvm via behavior
    //xaml<Windowx:Class="WpfApp201.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • Nanami and the Constructive Problem
    线段树优化建图一般用动态开点线段树实现建立对称的入树和出树点击查看代码#include<bits/stdc++.h>usingnamespacestd;vector<int>a[600005];intc[100005],cnt,tot,sum,id[600005],dfn[600005],low[600005],val[100005],n,m;stack<int>s;boolv[600005],h[600005......
  • P9565 [SDCPC2023] Not Another Path Query Problem
    P9565[SDCPC2023]NotAnotherPathQueryProblem位运算+并查集从价值至少为\(V\)入手,枚举一段二进制上长为\(i\)的前缀,第\(i+1\)位取\(1\),并且比\(V\)要大,这样\(i+1\)之后的位就可以任意取了(不妨现在都先为\(0\)),设这样构成的二进制串为\(s\)。考虑按位与的性质......
  • Yet Another Sigma Problem
    题目传送门题目跳转看吧题解哈希,字典树对字符串的前缀进行哈希处理,转换为数字,用\(map\),然后为了避免重复,可以将每一种公共字符串前缀的权重都设置为1例如:\(a\),\(ab\),\(aba\)权重都为1,因为\(ab\)是2,但是有一种包含在\(a\)里面,同理,&aba&是3,但是被&ab&,&a&......
  • Nanami and the House Protecting Problem
    求出最大流后,从源点开始沿残量网络BFS,标记能够到达的点。E中所有连接已标记点和未标记点的边构成最小割点击查看代码#include<bits/stdc++.h>usingnamespacestd;vector<int>a[6005];vector<int>c[6005];vector<int>d[6005];boolv[6005];intpr1[6005],pr2[6005];c......
  • 研0 冲刺算法竞赛 day8 P1303 A*B Problem
    思路:用char[]存储输入,后用int[]逐位计算,根据乘法计算规则错位相加,用数组存储,然后考虑进位,最后倒序输出代码:#include<iostream>#include<cstring>usingnamespacestd;chara1[10001],b1[10001];inta[10001],b[10001],c[10001];intmain(){ cin>>a1>>b1; for......
  • [MdOI R5] Many Minimizations & [ARC164F] Many Increasing Problems 题解
    讲下一个思路比较自然的基于自然数幂和的\(O(n\logn)\)且复杂度与\(m\)几乎无关的做法。不难发现让我们计数的问题是保序回归\(L_1\)中一条链的情况。这个情况有一个简单的slope-trick做法:用堆维护斜率,每次push进去两个当前的数,然后pop出一个最大值。最终所有数的和......
  • [MdOI R5] Many Minimizations & [ARC164F] Many Increasing Problems 题解
    讲下一个思路比较自然的基于自然数幂和的\(O(n\logn)\)且复杂度与\(m\)几乎无关的做法。不难发现让我们计数的问题是保序回归\(L_1\)中一条链的情况。这个情况有一个简单的slope-trick做法:用堆维护斜率,每次push进去两个当前的数,然后pop出一个最大值。最终所有数的和......
  • 打卡信奥刷题(132)用Scratch图形化工具信奥P9913 [普及组]「RiOI-03」water problem
    「RiOI-03」waterproblem题目描述给定一个正整数nnn,问一个正方形能否被分割为nn......