zoukankan      html  css  js  c++  java
  • 智慧题——规律题

    遇到数学的式子我们就先手玩10分钟,经验之谈

    (n=1)

    (dfrac{1}{a})

    (n=2)

    (dfrac{1}{a}left( dfrac{1}{a}+dfrac{1}{b} ight) +dfrac{1}{b}left( dfrac{1}{a}+dfrac{1}{b} ight))

    化简一下就是(dfrac{1}{ab})

    (n=3)

    我们枚举出来他们的全排列

    a b c
    a c b
    b a c 
    b c a
    c a b
    c b a
    

    (dfrac{1}{a}left( dfrac{1}{a}+dfrac{1}{b} ight) left( dfrac{1}{a}+dfrac{1}{b}+dfrac{1}{c} ight)+dfrac{1}{a}left( dfrac{1}{a}+dfrac{1}{c} ight) left( dfrac{1}{a}+dfrac{1}{c}+dfrac{1}{b} ight)+dfrac{1}{b}+( dfrac{1}{b}+dfrac{1}{a})+left( dfrac{1}{b}+dfrac{1}{a}+dfrac{1}{c} ight)+dfrac{1}{b}+( dfrac{1}{b}+dfrac{1}{c})+left( dfrac{1}{b}+dfrac{1}{a}+dfrac{1}{c} ight))

    (+dfrac{1}{c}left( dfrac{1}{c}+dfrac{1}{a} ight) left( dfrac{1}{c}+dfrac{1}{a}+dfrac{1}{b} ight)+dfrac{1}{c}left( dfrac{1}{c}+dfrac{1}{b} ight) left( dfrac{1}{c}+dfrac{1}{b}+dfrac{1}{a} ight))

    化简一下我们会得到(dfrac{1}{abc})

    用我们的数学归纳法我们会得到推广的结论,答案就是(n)个数的乘积

    但是由于乘积在分母上,所以我们需要用逆元这个工具将它翻到分子上

    代码

    #include<bits/stdc++.h>
    using namespace std;
    long long n;
    long long x;
    const int mod=998244353;
    long long ans;
    int qmi(int a,int b)
    {
      int res=1;
      while(b)
      {
        if(b&1) ans=(long long)res*a%mod;
        a=(long long)a*a%mod;
        b>>=1;
      }
      return res;
    }
    
    
    int main()
    {
      scanf("%lld",&n);
      scanf("%lld",&ans);
      for(int i=2;i<=n;i++)
      {
        scanf("%lld",&x);
        ans=(long long)ans*x%mod;
      }
      cout<<qmi(ans,mod-2)<<endl;
      return 0;
    }
    
  • 相关阅读:
    15道谷歌面试题及答案
    Linux解压 tar命令
    C#中的WebBrowser控件的使用
    C#中正则表达式使用介绍
    C#中的DataGridView
    使用Python破解验证码
    Python Open Source Project List
    程序员接私活经验谈[转]
    C#中的Dictionary字典类介绍
    金老师的博客
  • 原文地址:https://www.cnblogs.com/bangdexuanyuan/p/13963215.html
Copyright © 2011-2022 走看看