前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >A - Arcade Game Gym - 100814A

A - Arcade Game Gym - 100814A

作者头像
Lokinli
发布2023-03-09 15:40:41
2930
发布2023-03-09 15:40:41
举报
文章被收录于专栏:以终为始以终为始

A - Arcade Game

Gym - 100814A 

&:给一个n,n的每一位数都是不相同的,现在给你一个n,每一次可以随机让n的每一位重新排列,问能够让n排列之后变成最大数的期望。

&:自己忘记了那个生成排列的函数了,于是自己随机写了写,于是就WA了,真的是,还找不到哪里出错了。

&:于是来直接用 next_permutation( ) 来生成全排列了,注意的是,这里生成的全排列是按照给的数的递增来排的。

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 4e5 + 10;
double dp[maxn];
int main()
{
    ios::sync_with_stdio(0);
    int t;
//    s.resize(20);
//    scanf("%d", &t);
    cin >> t;
    while(t--)
    {
        string s;
        cin >> s;
        memset(dp,0,sizeof(dp));        
//        scanf("%s",&s[0]);
        int len = s.length();
        int n = 1;
        for(int i = 1; i <= len; i ++)n *= i;
        int pos = 0;
        while(next_permutation(s.begin(),s.end())) pos++;
        double o = 1;
        dp[0] = 1;
        for(int i = 1; i <= pos; i ++)
        {
            dp[i] = 1.0 /n*o;
            o += dp[i];
        }
        dp[0] = 0;
        printf("%.9lf\n",dp[pos]);
    }
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • A - Arcade Game
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档