zoukankan      html  css  js  c++  java
  • 牛客网 牛客练习赛43 B.Tachibana Kanade Loves Probability-快速幂加速

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

    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 262144K,其他语言524288K
    64bit IO Format: %lld

    题目描述

    立华奏在学习初中数学的时候遇到了这样一道大水题:
    “设箱子内有 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

    备注:

    1mn109,1K1K21091≤m≤n≤109,1≤K1≤K2≤109;
    0K2K1105,T200≤K2−K1≤105,T≤20。



    10进制下,正常的计算小数点之后的数,就是先乘10,然后除以被除数,然后取余后的数再进行下一步计算。

    这道题是从第k1位开始,所以直接快速幂,然后先求出来到K1位取余后的数,再进行下面的计算。

    因为k1之前的数不要求保留,所以直接模掉就可以了。和蓝桥杯的一道题差不多。。。

    代码:

     1 //B
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 typedef long long ll;
     5 
     6 ll pow_mod(ll a,ll b,ll mod)
     7 {
     8     ll ans=1;
     9     while(b!=0){
    10         if(b%2==1)
    11             ans=ans*a%mod;
    12         a=a*a%mod;
    13         b=b/2;
    14     }
    15     return ans;
    16 }
    17 
    18 int main()
    19 {
    20     int t;
    21     cin>>t;
    22     while(t--){
    23         ll m,n,k1,k2;
    24         cin>>m>>n>>k1>>k2;
    25         m=m*pow_mod(10,k1-1,n)%n;
    26         m%=n;
    27         ll h=k1;
    28         while(1){
    29             m=m*10;
    30             ll cnt=m/n;
    31             cout<<cnt;h++;
    32             m=m%n;
    33             if(h>k2) break;
    34         }
    35         cout<<endl;
    36     }
    37 }
  • 相关阅读:
    基于element-ui图片封装组件
    计算时间间隔具体每一天
    C语言学习笔记 —— 函数作为参数
    AtCoder Beginner Contest 049 题解
    AtCoder Beginner Contest 048 题解
    AtCoder Beginner Contest 047 题解
    AtCoder Beginner Contest 046 题解
    AtCoder Beginner Contest 045 题解
    AtCoder Beginner Contest 044 题解
    AtCoder Beginner Contest 043 题解
  • 原文地址:https://www.cnblogs.com/ZERO-/p/10679596.html
Copyright © 2011-2022 走看看