zoukankan      html  css  js  c++  java
  • [CSP-S模拟测试]:春思(数学)

    蝶恋花·春景
    花褪残红青杏小。燕子飞时,绿水人家绕。枝上柳绵吹又少。天涯何处无芳草!
    墙里秋千墙外道。墙外行人,墙里佳人笑。笑渐不闻声渐悄。多情却被无情恼。
    (本词是伤春之作,写春景清新秀丽。同时,景中又有情理,我们仍用何处无芳草(知音)以自慰自勉。苏轼的多情却被无情恼,也不仅仅局限于对佳人的相思。)


    题目传送门(内部题28)


    输入格式

    两个非负整数$A,B$。


    输出格式

    仅一个正整数,表示答案。


    样例

    样例输入:

    2 3

    样例输出:

    15


    数据范围与提示

    样例解释:

    $2^3=8$,而$8$的因子有$1,2,4,8$,而$1+2+4+8=15$。

    数据范围:

    $Aleqslant {10}^{12},Bleqslant {10}^{12}$。


    题解

    见到数学题就是化式子(弃掉)。

    $A^B=p_1^{k_1} imes p_2^{k_2} ime ... imes p_n^{k_n}$

    $ans=(1+p_1+p_1^2+...+p_n^{k_1})(1+p_2+p_2^2+...+p_n^{k_2})...(1+p_n+p_n^2+...+p_n^{k_n})$

    之后我们发现,可以直接用等比数列求和公式$S_n=a_1 imes dfrac{1-q^n}{1-q}$即可。

    时间复杂度:$Theta(log^2 n)$。

    期望得分:$100$分。

    实际得分:$100$分。


    代码时刻

    #include<bits/stdc++.h>
    using namespace std;
    long long A,B;
    long long pri[50],cnt[50],wzc[50];
    long long qpow(long long x,long long y)
    {
    	long long res=1;
    	while(y)
    	{
    		if(y&1)res=res*x%9901;
    		x=x*x%9901;
    		y>>=1;
    	}
    	return res;
    }
    void pre_work()
    {
    	long long sqr=sqrt(A);
    	for(int i=2;i<=sqr&&A^1;i++)
    	{
    		if(A%i)continue;
    		pri[++pri[0]]=i;
    		while(!(A%i))
    		{
    			A/=i;
    			cnt[pri[0]]+=B;
    		}
    	}
    	if(A^1)
    	{
    		pri[++pri[0]]=A;
    		cnt[pri[0]]=B;
    	}
    }
    int main()
    {
    	scanf("%lld%lld",&A,&B);
    	pre_work();
    	for(int i=1;i<=pri[0];i++)
    		wzc[i]=(((qpow(pri[i]%9901,cnt[i]+1)-pri[i])%9901+9901)*qpow((pri[i]-1)%9901,9899)+1)%9901;
    	wzc[0]=1;
    	for(int i=1;i<=pri[0];i++)
    		wzc[0]=wzc[0]*wzc[i]%9901;
    	printf("%lld",wzc[0]);
    	return 0;
    }
    

    rp++

  • 相关阅读:
    2、介绍在TensorFlow当中使用不同的方式创建张量tensor
    1、TensorFlow如何工作?
    1、
    7、Maven插件
    6、Maven仓库
    5、Maven-构建配置文件
    4、maven——构建生命周期
    3、示例(在java中使用JSON)
    2、json教程
    1、json背景
  • 原文地址:https://www.cnblogs.com/wzc521/p/11475138.html
Copyright © 2011-2022 走看看