题目传送门

前置知识

等比数列求和公式 | 乘法逆元

解法

设 \(lena\) 表示 \(a\) 的长度。

首先,若一个数能被 \(5\) 整除,则该数的末尾一定为 \(0\) 或 \(5\)。故考虑枚举 \(a\) 中所有的 \(0\) 和 \(5\) 的下标,设此下标后面有 \(x\) 个数字,由于 \(s\) 是由 \(a\) 复制 \(k\) 遍形成的,所以此下标的贡献为 \(\begin{aligned}\sum\limits_{i=0}^{k-1}2^{x+i \times lena}=2^x \sum\limits_{i=0}^{k-1} (2^{lena})^i=2^x \dfrac{2^{lena} \times (2^{lena})^{k-1}-(2^{lena})^0}{2^{lena}-1}=2^x \dfrac{(2^{lena})^{k}-1}{2^{lena}-1} \end{aligned}\)。对于分母中的 \(2^{lena}-1\) 处理其逆元即可。

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define sort stable_sort
#define endl '\n'
char a[100002];
ll qpow(ll a,ll b,ll p)
{
ll ans=1;
while(b)
{
if(b&1)
{
ans=ans*a%p;
}
b>>=1;
a=a*a%p;
}
return ans%p;
}
int main()
{
ll k,lena,i,ans=0,num,sum,p=1000000007;
cin>>(a+1)>>k;
lena=strlen(a+1);
num=qpow(2,lena,p);
sum=(qpow(num,k,p)-1+p)*qpow(num-1,p-2,p)%p;
for(i=lena;i>=1;i--)
{
if(a[i]=='0'||a[i]=='5')
{
ans=(ans+qpow(2,i-1,p)*sum%p)%p;
}
}
cout<<ans<<endl;
return 0;
}

CF327C Magic Five 题解的更多相关文章

  1. UVA471 Magic Numbers 题解

    1.题目 题意很简单:输入n,枚举所有的a,b,使得 (1)满足a/b=n. (2)满足a,b各个位上的数字不相同. 2.思路 (1)对于被除数,要满足各个位上的数字,显然最大枚举到987654321 ...

  2. CF1042E Vasya and Magic Matrix 题解

    题目链接 思路分析 看到题目中 \(n,m \leq 1000\) ,故直接考虑 \(O(n^2)\) 级别做法. 我们先把所有的点按照 \(val\) 值从小到大排序,这样的话二维问题变成序列问题. ...

  3. 2013/7/16 HNU_训练赛4

    CF328B Sheldon and Ice Pieces 题意:给定一个数字序列,问后面的数字元素能够组成最多的组数. 分析:把2和5,6和9看作是一个元素,然后求出一个最小的组数就可以了. #in ...

  4. 题解 CF327C 【Magic Five】

    这道题带坑,假如没有发现肯定会爆. 首先先搜索一遍0和5,储存在数组a里面. 那么应当有2 ^ a1 +2 ^ a2 +...+ 2 ^ an. 然而这道题没那么简单,数串还可以重复k次. 因此,需要 ...

  5. 题解-Magic Ship

    Magic Ship 你在 \((x_1,y_1)\),要到点 \((x_2,y_2)\).风向周期为 \(n\),一个字符串 \(s\{n\}\) 表示风向(每轮上下左右),每轮你都会被风向吹走一格 ...

  6. [题解] 2019牛客暑期多校第三场H题 Magic Line

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意:二维平面上有n个不同的点,构造一条直线把平面分成两个点数相同的部分. 题解:对这n个点以x为第一关键 ...

  7. PAT甲题题解-1037. Magic Coupon (25)-贪心,水

    题目说了那么多,就是给你两个序列,分别选取元素进行一对一相乘,求得到的最大乘积. 将两个序列的正和负数分开,排个序,然后分别将正1和正2前面的相乘,负1和负2前面的相乘,累加和即可. #include ...

  8. FZU 2280 Magic(字符串Hash)题解

    题意:给你n个字符串,每个字符串有一个值w,有q次询问,一共两种操作:一是“1 x y”表示把第x个串的w变为y:二是“2 x”,输出第x个串能放几次魔法.放魔法的条件是这样:用串x放魔法,如果在1~ ...

  9. [题解]Magic Line-计算几何(2019牛客多校第三场H题)

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意: 给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分 并在这条直线上取不同的两个点,表示 ...

  10. 题解【洛谷P2730】魔板 Magic Squares

    题面 首先我们可以发现,在每一次 BFS 时按照 \(A→B→C\) 的顺序枚举遍历肯定是字典序最小的. 然后就是普通的 BFS 了. 我们考虑使用 \(\text{STL map}\) 来存储起点状 ...

随机推荐

  1. 机器学习-决策树系列-Adaboost算法-集成学习-29

    目录 1. adaboost算法的基本思想 2. 具体实现 1. adaboost算法的基本思想 集成学习是将多个弱模型集成在一起 变成一个强模型 提高模型的准确率,一般有如下两种: bagging: ...

  2. SV 数据类型

    system verilog可以用于设计也可以进行验证 语法规则 SV新数据类型 SV数据类型 bit - 0-255 byte - -127 - 128 # 快速进行sv文件仿真 VCS -R -s ...

  3. 05-逻辑仿真工具VCS-执行过程

    Verilog Simulation Event Queue 主要了解VCS是如何处理交给它的代码的 Verilog的仿真事件队列,介绍VCS如何处理交给它的代码.VCS是Synopsys公司的,支持 ...

  4. [转帖]《Linux性能优化实战》笔记(25)—— 总结:Linux 性能工具速查

    一. 性能工具速查 在梳理性能工具之前,首先给你提一个问题,那就是,在什么情况下,我们才需要去查找.挑选性能工具呢? 其实在我看来,只有当你想了解某个性能指标,却不知道该怎么办的时候,才会想到,&qu ...

  5. [转帖]Nginx reuseport 导致偶发性卡顿

    https://github.com/jonmeredith/tcpperf https://plantegg.github.io/2023/06/08/Nginx%20reuseport%20%E5 ...

  6. [转帖]一个Linux 内核 bug 导致的 TCP连接卡死

    https://plantegg.github.io/2022/10/10/Linux%20BUG%E5%86%85%E6%A0%B8%E5%AF%BC%E8%87%B4%E7%9A%84%20TCP ...

  7. [转帖]Elasticsearch 的 30 个调优最佳实践!

    Elasticsearch 的 30 个调优最佳实践! https://zhuanlan.zhihu.com/p/406264041 ES 发布时带有的默认值,可为 es 的开箱即用带来很好的体验.全 ...

  8. [转帖]台积电3nm成功量产,稳了吗?

    https://docs.pingcode.com/info/13836.html?p=13836 2023-01-19 资讯 21 原标题:台积电3纳米成功量产:未来与三星仍将决战鳍式场效晶体管(F ...

  9. [转帖]SPEC-cpu2006的详细使用一键安装、手动安装。

    一.SPEC-cpu2006简介 SPEC CPU 2006 benchmark是SPEC新一代的行业标准化的CPU测试基准套件.重点测试系统的处理器,内存子系统和编译器. 说明:由于spec2006 ...

  10. mysql8 部分信息总结

    0. 我这边环境需要的配置参数 datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.socklog-error=/var/log/mysqld.logp ...