zoukankan      html  css  js  c++  java
  • [CSP-S模拟测试]:小W的魔术(数学 or 找规律)

    题目传送门(内部题130)


    输入格式

      第一行一个整数$n$,表示字符串的长度。
      第二行一个只包含小写字母的字符串$s$。


    输出格式

      一行一个整数表示答案对$998244353$取模后的结果。


    样例

    样例输入:

    2
    a

    样例输出:

    625


    数据范围与提示

      对于$20\%$的测试数据,$nleqslant 4$。
      对于$40\%$的测试数据,$nleqslant 100$。
      对于$60\%$的测试数据,$nleqslant 10,000,000$。
      对于另外$20\%$的测试数据,保证$s$只由$a$组成。
      对于$100\%$的测试数据,$2leqslant nleqslant 10,1leqslant |s|leqslant 1,000,000$。
      对于$100\%$的测试数据,$|s|leqslant n$。


    题解

    他们跟我说,打表找了个规律……

    反正我是没有找出来。

    其实答案就是:

    $$26^n-26^{(n-s)}-s imes 25 imes 26^{(n-s-1)}$$

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

    期望得分:$100$分。

    实际得分:$100$分。


    代码时刻

    #include<bits/stdc++.h>
    using namespace std;
    const int mod=998244353;
    long long n,s;
    char ch[1000001];
    long long ans;
    long long qpow(long long x,long long y)
    {
    	if(y<0)return 0;
    	long long res=1;
    	while(y)
    	{
    		if(y&1)res=res*x%mod;
    		x=x*x%mod;
    		y>>=1;
    	}
    	return res;
    }
    int main()
    {
    	scanf("%lld%s",&n,ch+1);
    	s=strlen(ch+1);
    	ans=((qpow(26,n)-qpow(26,n-s)+mod)%mod-s*25%mod*qpow(26,n-s-1)%mod+mod)%mod;
    	printf("%lld",ans);
    	return 0;
    }
    

    rp++

  • 相关阅读:
    php配置GD库
    Linux 安装 Apache2+php5+gd+freetype2
    gd库
    数组和链表的区别
    python 整数中1出现的次数
    python栈--字符串反转,括号匹配
    Linux基础知识
    操作系统
    后台面试问题
    python 面向对象
  • 原文地址:https://www.cnblogs.com/wzc521/p/11821970.html
Copyright © 2011-2022 走看看