zoukankan      html  css  js  c++  java
  • 牛客练习赛43 Tachibana Kanade Loves Probability(快速幂)

    链接:https://ac.nowcoder.com/acm/contest/548/B
    来源:牛客网

    题目描述

    立华奏在学习初中数学的时候遇到了这样一道大水题:
    “设箱子内有 n 个球,其中给 m 个球打上标记,设一次摸球摸到每一个球的概率均等,求一次摸球摸到打标记的球的概率”
    “emmm...语言入门题”
    但是她改了一下询问方式:设最终的答案为 p ,请输出 p 小数点后 K1K1 到 K2K2 位的所有数字(若不足则用 0 补齐)

    输入描述:

    第一行一个整数 T,表示有 T 组数据。
    接下来每行包含四个整数 m,n,K1,K2m,n,K1,K2,意义如「题目描述」所示。

    输出描述:

    输出 T 行,每行输出 K2K1+1K2−K1+1 个数,表示答案。
    注意同行的数字中间不需要用空格隔开。
    示例1

    输入

    5

    2 3 2 3

    1 7 1 7

    2 5 1 3

    12345 54321 3 10

    12345 54321 100000 100010

    输出

    66

    1428571

    400

    72601756

    78428232175

    思路:求第k1位的数字 其实就是 m*10^(k-1)对n求模 所以用快速幂处理一下 然后就模拟短除法就行了

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    #include<string>
    #include<vector>
    #include<stack>
    #include<bitset>
    #include<cstdlib>
    #include<cmath>
    #include<set>
    #include<list>
    #include<deque>
    #include<map>
    #include<queue>
    #define ll long long int
    using namespace std;
    inline ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
    inline ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
    int moth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int dir[4][2]={1,0 ,0,1 ,-1,0 ,0,-1};
    int dirs[8][2]={1,0 ,0,1 ,-1,0 ,0,-1, -1,-1 ,-1,1 ,1,-1 ,1,1};
    const int inf=0x3f3f3f3f;
    const ll mod=1e9+7;
    ll m,n,k1,k2;
    ll q_pow(ll a,ll n,ll mod){
        ll ans=m; ll base=a;
        while(n){
            if(n&1) ans=(ans*base)%mod;
            base=base*base%mod;
            n>>=1;
        }
            return ans;
    }
    int main(){
        //ios::sync_with_stdio(false);
        int t;
        scanf("%d",&t);
        while(t--){
            scanf("%lld%lld%lld%lld",&m,&n,&k1,&k2);
            ll f=q_pow(10,k1-1,n);
            ll i=k1;
            while(1){
                f*=10;
                printf("%lld",f/n);
                f%=n;
                i++;
                if(i==k2+1)
                break;
            }
            printf("
    ");
        }
    }
  • 相关阅读:
    SQLserver 连接+开窗函数+视图+事务
    SQLServer学习笔记系列8
    SQLServer学习笔记系列7
    SQLServer学习笔记系列6
    如何保护.net中的dll文件(防破解、反编译)
    idea项目运行正常,但是类出现红色波浪线
    eclipse出现An internal error occurred during: "Repository registry initialization". Array index out of
    ul列表事件($(this).data('value') 这个是什么意思?)
    vue学习
    两段简单的JS代码防止SQL注入
  • 原文地址:https://www.cnblogs.com/wmj6/p/10660232.html
Copyright © 2011-2022 走看看