题意:给你一个不超过九位的不含重复数码的十进制数,每次会随机将它的数码打乱,变成一个新的数,如果它小于等于上一次的数,那么你输了;如果它大于上一次的数,那么可以继续。直到它变成能够表达的最大数为止就赢了,问你赢的概率。

设所有排列从小到大被标记为1~n。p(i)表示排列i获胜的概率。

p(n)=1;p(n-1)=1/n;p(n-2)=1/n * (1+1/n);...;p(i)=1/n * (p(n)+p(n-1)+...+p(i+1))。

递推一下就行了。

注意特判如果它已经是最大的了,输出零。

  1. #include<algorithm>
  2. #include<cstdio>
  3. #include<vector>
  4. using namespace std;
  5. struct data{
  6. int v,p;
  7. }t[15];
  8. bool cmp(const data &a,const data &b){
  9. return a.v<b.v;
  10. }
  11. vector<int> vs[15];
  12. int T,a[15],wei,n,b[15];
  13. double p[400000],pre[400000];
  14. int main(){
  15. for(int i=1;i<=9;++i){
  16. for(int j=1;j<=i;++j){
  17. b[j]=j;
  18. }
  19. do{
  20. int x=0;
  21. for(int j=1;j<=i;++j){
  22. x=x*10+b[j];
  23. }
  24. vs[i].push_back(x);
  25. }while(next_permutation(b+1,b+i+1));
  26. }
  27. //freopen("a.in","r",stdin);
  28. scanf("%d",&T);
  29. for(;T;--T){
  30. wei=0;
  31. scanf("%d",&n);
  32. int tmp=n;
  33. while(tmp){
  34. t[++wei].v=tmp%10;
  35. t[wei].p=wei;
  36. tmp/=10;
  37. }
  38. sort(t+1,t+wei+1,cmp);
  39. for(int i=1;i<=wei;++i){
  40. a[t[i].p]=i;
  41. }
  42. int nn=0;
  43. for(int i=wei;i>=1;--i){
  44. nn=nn*10+a[i];
  45. }
  46. int jc=1;
  47. for(int i=1;i<=wei;++i){
  48. jc=jc*i;
  49. }
  50. int ci=jc-(lower_bound(vs[wei].begin(),vs[wei].end(),nn)-vs[wei].begin()+1),cnt=0;
  51. p[0]=pre[0]=1.0;
  52. for(int i=1;i<=ci;++i){
  53. p[i]=pre[i-1]/(double)jc;
  54. pre[i]=pre[i-1]+p[i];
  55. }
  56. printf("%.9f\n",ci ? p[ci] : 0.0);
  57. }
  58. return 0;
  59. }

【递推】【概率】Gym - 100814A - Arcade Game的更多相关文章

  1. UVA 11021 Tribles(递推+概率)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33059 [思路] 递推+概率. 设f[i]表示一只Tribble经 ...

  2. 洛谷4316 绿豆蛙的归宿(DAG递推/概率dp)

    题目大意: 给定一个DAG,求起点到终点的路径长度期望 根据题意可以知道每一条边都有一定概率被走到 那么\(\displaystyle\begin{aligned} Ans = \sum_{e \in ...

  3. UVA - 11021 - Tribles 递推概率

    GRAVITATION, n.“The tendency of all bodies to approach one another with a strengthproportion to the ...

  4. LOJ#3093. 「BJOI2019」光线(递推+概率期望)

    题面 传送门 题解 把\(a_i\)和\(b_i\)都变成小数的形式,记\(f_i\)表示\(1\)单位的光打到第\(i\)个玻璃上,能从第\(n\)个玻璃下面出来的光有多少,记\(g_i\)表示能从 ...

  5. 【LIS】【递推】Gym - 101246H - ``North-East''

    x坐标排序,y坐标当权值,同一个x坐标的,y从大到小排. 求f(i)表示以i结尾的LIS以后,从后向前枚举,不断更新一个max数组,max(i)代表最长上升子序列为i时,当前的 结尾的最大值是多少. ...

  6. Codeforces Gym10081 A.Arcade Game-康托展开、全排列、组合数变成递推的思想

    最近做到好多概率,组合数,全排列的题目,本咸鱼不会啊,我概率论都挂科了... 这个题学到了一个康托展开,有点用,瞎写一下... 康托展开: 适用对象:没有重复元素的全排列. 把一个整数X展开成如下形式 ...

  7. UVa 557 (概率 递推) Burger

    题意: 有两种汉堡给2n个孩子吃,每个孩子在吃之前要抛硬币决定吃哪一种汉堡.如果只剩一种汉堡,就不用抛硬币了. 求最后两个孩子吃到同一种汉堡的概率. 分析: 可以从反面思考,求最后两个孩子吃到不同汉堡 ...

  8. UVA 557 - Burger(概率 递推)

     Burger  When Mr. and Mrs. Clinton's twin sons Ben and Bill had their tenth birthday, the party was ...

  9. 【BZOJ4944】【NOI2017】泳池 概率DP 常系数线性递推 特征多项式 多项式取模

    题目大意 有一个\(1001\times n\)的的网格,每个格子有\(q\)的概率是安全的,\(1-q\)的概率是危险的. 定义一个矩形是合法的当且仅当: 这个矩形中每个格子都是安全的 必须紧贴网格 ...

随机推荐

  1. C语言实现栈(顺序存储方式)

    #include <stdio.h> #include <stdlib.h> //提供malloc()原型 #include <stdbool.h> //提供tru ...

  2. 旅游(CSUST省赛选拔赛2+状压dp+最短路)

    题目链接:http://csustacm.com:4803/problem/1016 题目: 思路:状压dp+最短路,比赛的时候有想到状压dp,但是最短路部分写挫了,然后就卡死了,对不起出题人~dis ...

  3. 关于Re模块的一些基础知识(另附一段批量抓代理ip的代码)

    1.常用匹配规则 . 表示任意字符[0-9] 用来匹配一个指定的字符类别[^5]表示除了5之外的其他字符,^不在字符串的开头,则表示它本身.* 对于前一个字符重复0到无穷次+ 对于前一个字符重复1到无 ...

  4. Linux下命令lrzsz

    lrzsz是什么 在使用Linux的过程中,难免少不了需要上传下载文件,比如往服务器上传一些war包之类的,之前都是使用winSCP,lrzsz是一个更方便的命令,可以直接在Linux中输入命令,弹出 ...

  5. LOW逼三人组(三)----插入排序

    插入排序思路 插入排序算法: import random # 随机模块 import time def cal_time(func): # 装饰器 ,用来检测算法所执行的时间 def wrapper( ...

  6. .ui/qrc文件自动生成.py文件

    前天PL让我们做一个从手机里手机一些数据导出到excel文件里的Tool. 让我们用python去写一个.但是我们都没有学过python..呵呵! 然后昨天看了一些文档.做ui时还需要把图片写入qrc ...

  7. 回溯算法_01背包问题_Java实现

    原文地址:http://blog.csdn.net/ljmingcom304/article/details/50314839 本文出自:[梁敬明的博客] 1.回溯算法 回溯算法也叫试探法,通俗的将就 ...

  8. Git学习笔记3 git revert

    我们难免会因为种种原因执行一些错误的commit / push,git提供了revert命令帮助程序员修复这样的错误. 举个例子,下图是git commit 的历史记录 git revert 命令会通 ...

  9. CSU 1102 多连块拼图

    多连块拼图 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述     多连块是指由多个等大正方形边与边连接而成的平面连通图形.         ———— 维基百科      ...

  10. ci框架hook钩子

    <code>//启动hooks //app/config/config.php $config['enable_hooks'] = TRUE; //hooks配置 ///app/confi ...