新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- 猴子排序的期望

链接:https://www.nowcoder.com/acm/contest/116/F
来源:牛客网

题目描述

我们知道有一种神奇的排序方法叫做猴子排序,就是把待排序的数字写在卡片上,然后让猴子把卡片扔在空中,等落下的时候观察这些卡片是否从左到右已经排序完成(我们认为不会发生卡片落地后叠在一起的情况)如果有序则排序完成,否则让猴子再扔一遍,直到卡片有序,那么问题来了,给你N个卡片,每个卡片上写着一个大写字母,请问猴子第一次扔这些卡片就按字典序排序完成的概率有多大?

输入描述:

第一行是一个整数N(1<N<100)表示给猴子N张卡片,接下来是一个长度为N的字符串,代表这些卡片上所写的字母。

输出描述:

输出一行,表示猴子排序第一次就成功的概率(用分子为1的分数表示)。
输入例子:
7
SCIENCE
输出例子:
1/1260

-->

示例1

输入

7
SCIENCE

输出

1/1260

题意:中文题;思路:一开始用C++结果一直百分之33.33还以为思路错了,后面才发现100的阶乘会爆要用大数,果断打开java代码:
import java.math.BigInteger;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
    Scanner cin=new Scanner(System.in);
    int n;
    BigInteger a,b;
    b=BigInteger.ONE;
    a=BigInteger.ONE;
    n=cin.nextInt();
    int[] num=new int[30];
    String str;
    str=cin.next();
    for(int i=0;i<30;i++)num[i]=0;
    for(int i=0;i<str.length();i++){
        num[str.charAt(i)-‘A‘]++;
        //System.out.println(num[i]);
    }
    BigInteger ans = BigInteger.ONE;
    for(int i = 1; i <= n; i++)
    ans = ans.multiply(BigInteger.valueOf(i));
    for(int i=0;i<30;i++){
        BigInteger now = BigInteger.ONE;
        for(int j = 1; j <= num[i]; j++)
            now = now.multiply(BigInteger.valueOf(j));
        ans=ans.divide(now);
    }
    System.out.println("1/"+ans);
}
}
 

原文地址:https://www.cnblogs.com/luowentao/p/8976936.html

时间: 2024-10-05 23:27:15

新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- 猴子排序的期望的相关文章

新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)F 猴子排序的期望【Java/高精度/组合数学+概率论】

链接:https://www.nowcoder.com/acm/contest/116/F 来源:牛客网 题目描述 我们知道有一种神奇的排序方法叫做猴子排序,就是把待排序的数字写在卡片上,然后让猴子把卡片扔在空中,等落下的时候观察这些卡片是否从左到右已经排序完成(我们认为不会发生卡片落地后叠在一起的情况)如果有序则排序完成,否则让猴子再扔一遍,直到卡片有序,那么问题来了,给你N个卡片,每个卡片上写着一个大写字母,请问猴子第一次扔这些卡片就按字典序排序完成的概率有多大? 输入描述: 第一行是一个整

H. GSS and Simple Math Problem--“今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)

题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 题目描述 Given n positive integers , your task is to calculate the product of these integers, The answer is less than 输入描述: The first line of input is an integer n, the i-th of the following n lines contains the

[2012山东省第三届ACM大学生程序设计竞赛]——Fruit Ninja II

Fruit Ninja II 题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2416 Time Limit: 5000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Have you ever played a popular game named "Fruit Ninja"? Fruit Ninja (known as Fruit Ninja

Alice and Bob(2013年山东省第四届ACM大学生程序设计竞赛)

Alice and Bob Time Limit: 1000ms   Memory limit: 65536K 题目描述 Alice and Bob like playing games very much.Today, they introduce a new game. There is a polynomial like this: (a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*.......*(an-1 * x^(2^(n-1))+1). Then Alice as

sdut Mountain Subsequences 2013年山东省第四届ACM大学生程序设计竞赛

Mountain Subsequences 题目描述 Coco is a beautiful ACMer girl living in a very beautiful mountain. There are many trees and flowers on the mountain, and there are many animals and birds also. Coco like the mountain so much that she now name some letter s

[2012山东省第三届ACM大学生程序设计竞赛]——n a^o7 !

n a^o7 ! 题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2413 Time Limit: 1000MS Memory limit: 65536K 题目描述 All brave and intelligent fighters, next you will step into a distinctive battleground which is full of sweet and hap

angry_birds_again_and_again(2014年山东省第五届ACM大学生程序设计竞赛A题)

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2877 题目描述 The problems called "Angry Birds" and "Angry Birds Again and Again" has been solved by many teams in the series of contest in 2011 Multi-University Tr

[2013山东省第四届ACM大学生程序设计竞赛]——Alice and Bob

Alice and Bob Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Alice and Bob like playing games very much.Today, they introduce a new game. There is a polynomial like this: (a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*.......*(an-1 * x^(2^(n-1))+1). T

第八届山东省ACM大学生程序设计竞赛个人总结

因为省赛,从开学紧张到5月7号.心思也几乎全放在ACM的训练上.因为我还是校台球协会的会长,所以台协还有一些事情需要忙,但是我都给延迟了.老会长一直在催我办校赛,但我一直说 等等吧,因为校赛只能在周六或周日举办,而我们的ACM组队集训也都在周六周日, 如果我去支持校赛的话,那么一整天的集训就浪费了.不止这样,前期的准备工作也挺耗时的.就这样,我到现在都还没举办校赛(打算定在5月14号,不过那天我得去清华参加一个ACM邀请赛,所以还是主持不了,得让副会长去主持了,因为这个比赛不能再推了,再下个周又