Codeforces327C Magic Five[组合数学]

ASReview:基于主动学习的AI文献筛选工具,提升科研效率 主动学习是机器学习的一个重要分支,其核心原理是让算法能够主动选择最有价值的数据进行标注,从而以更低的成本获得更好的模型性能。这一技术通过人机协作的闭环流程,显著提升了数据标注和模型训练的效率和精度。在工程实践中,主动学习尤其适用于数据标注成本高昂或数据类别不平衡的场景,例如医学影像分析、自然语言处理中的文本分类以及推荐系统的冷启动问题。通过优先标注模型最不确定的样本,它能够有效解决传统机器学习面临的冷启动和数据稀疏性挑战。本文聚焦的ASReview项目,正是将主动学习原理应用于系统文献综述这一具体场景,通过 阅读详情

C. Magic Five
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

There is a long plate s containing n digits. Iahub wants to delete some digits (possibly none, but he is not allowed to delete all the digits) to form his "magic number" on the plate, a number that is divisible by 5. Note that, the resulting number may contain leading zeros.

Now Iahub wants to count the number of ways he can obtain magic number, modulo 1000000007 (109 + 7). Two ways are different, if the set of deleted positions in s differs.

Look at the input part of the statement, s is given in a special form.

Input

In the first line you're given a string a (1 ≤ |a| ≤ 105), containing digits only. In the second line you're given an integer k (1 ≤ k ≤ 109). The plate s is formed by concatenating k copies of a together. That is n = |a|·k.

Output

Print a single integer — the required number of ways modulo 1000000007 (109 + 7).

Examples
input
1256
1
output
4
input
13990
2
output
528
input
555
2
output
63
Note

In the first case, there are four possible ways to make a number that is divisible by 5: 5, 15, 25 and 125.

In the second case, remember to concatenate the copies of a. The actual plate is 1399013990.

In the third case, except deleting all digits, any choice will do. Therefore there are 26 - 1 = 63 possible ways to delete digits.


题意:

给出一个长度不超过1e5的数字串,询问连着k(1<=k<=1e9)个这样的串,任意删除数字,能构成多少个5的倍数(会有重复,并且允许有多个前导0)。


题解:

首先,要构成5的倍数,那就代表末位一定为0或者为5,那么只要找到该串的5跟0的位置,就可以计算。

先不管后面会重复k个的问题,单纯的看串中的5跟0。

从第一位开始往后找5跟0,只要找到,我们可以知道只要他是最末位就可以,那么我们可以假定后面都去掉了,我们设这个数字的当前位为x,那么他前面的数字去掉的方案数是  。

因为  我们就可以直接求出当前位作为末位的所有方案数。

但是重复k个的时候,当前位在下一个重复串的位置是x+len(len是该串的长度),根据这个,我们可以得到该串的每个5跟0的一个等比数列,然后根据等比数列求和 公比q就是。

但是公式中有除法的存在,而且题目的结果很大,要求取模,所以除法的取模注意求乘法逆元。


#pragma comment(linker, "/STACK:102400000,102400000")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<algorithm>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<vector>
using namespace std;
typedef long long ll;
const int N=1e5+5;
const int mod=1e9+7;
char sen[N];
int k;
ll Pow(ll n,ll m)
{
    ll ans=1;
    while (m)
    {
        if (m&1)
            ans=ans*n%mod;
        n=n*n%mod;
        m>>=1;
    }
    return ans;
}
int main()
{
	while (~scanf("%s",sen))
    {
        scanf("%d",&k);
        int len=strlen(sen);
        ll q=Pow(2,len);
        ll ans=0;
        ll now=1;
        for (int i=0 ; i<len ; ++i)
        {
            if (sen[i]=='0' || sen[i]=='5')
                ans=(ans+now*((Pow(q,k)-1+mod)%mod)%mod*Pow((q-1+mod)%mod,mod-2)%mod)%mod;

            now=now*2%mod;
        }
        printf("%I64d\n",ans);
    }
	return 0;
}


手把手教你学simulink实例--Simulink在电动汽车故障诊断与预测中的应用仿真 通过上述步骤,我们成功实现了基于Simulink的电动汽车故障诊断与预测仿真。该系统能够全面评估故障诊断与预测算法的性能,验证其在不同故障场景下的有效性,并通过优化设计提高系统的可靠性和安全性。引入智能算法:结合人工智能技术,实现更智能的故障诊断与预测。扩展功能:增加对多种车型和故障类型的支持,提升系统通用性。实验验证:将仿真模型应用于实际硬件,进行实验验证,评估其在实际工况下的表现。 阅读详情

相关推荐

SWIFT报文格式解析:从MT103到MT760,这些金融电文你了解多少?

本文深入解析SWIFT报文格式中的MT103与MT760,详细介绍了这两种金融电文的结构、应用场景及实操技巧。MT103用于国际汇款业务,MT760则适用于银行保函开立,两者在国际金融交易中扮演关键角色。文章还提供了常见问题解决方案和自动化处理建议,帮助金融从业者高效处理跨境业务。

h9j8k7l6m5n的博客 1137

CodeForces327C

这是今天做的一道快速幂的题,看完题目之后用笔在草稿纸上写写就能分析出来其中的数学公式 ans=(Σpow(2,i)*(pow(2,k*len)-1)/(pow(2,len)-1))%M  但是代码交上去之后一直WA,总是不明白哪里错了,WA了快十次实在不知道怎么改了,于是上网搜了下题解,发现了新大陆!! 在刚才写的公式里面有一个除法求模的运算,之前的代码我就直接相除取模了 ans=(a

Hophan的博客 904

Zynq工程IP核封装:XCI引用与约束继承实战指南

IP核封装是FPGA系统设计中实现模块复用、团队协作与技术资产沉淀的关键环节。其本质是将功能逻辑、时序约束、接口协议和硬件配置统一抽象为可配置、可验证、可演进的标准化组件。核心原理在于通过XCI文件保留IP核的参数化定义能力,依托Vivado IP Packager实现约束继承、端口自动映射与时钟域解耦,从而保障跨项目集成的时序可信性与约束完备性。该技术广泛应用于Zynq SoC视频处理、高速接口(如HDMI/TMDS)、多时钟域控制系统等场景,尤其在需要长期维护与版本迭代的工业级嵌入式开发中具有不可替代的

weixin_42593701的博客 122

CodeForces 327 C.Magic Five(快速幂)

Description 给一个字符串s,重复k次,要求去掉其中若干数时候使得该数可以被5整除,允许删除后有前置0存在,求方案数 Input 第一行一个数字串s,第二行一整数k表示重复次数(1<=|s|<=1e5,1<=k<=1e9) Output 输出方案数,结果模1e9+7 Sample Input 1256 1 Sample Output 4 Solution Cod

ZSQ 659

神经网络学习笔记-波尔兹曼(Boltzmann)机

Boltzmann机是一种反馈随机神经网络 两种输出状态,单极性0或1。输出状态的取值根据概率统计法则决定,这种概率统计法则类似Boltzmann分布,部分反馈 它在神经元状态变化中引入了统计概率,网络的平衡状态服从Boltzmann分布,网络运行机制基于模拟退火算法。 离散Hopfield神经网络+模拟退火+隐单元=Boltzman机 DHNN全反馈,转移函数:符号函数 BM机网络拓扑...

求易学堂的博客 2612

【MODIS处理工具】MRT(MODIS Reprojection Tool) 下载及安装

【MODIS处理工具】MRT(MODIS Reprojection Tool) 下载及安装

WW、forever的博客 2405

【数论】codeforces 327C Magic five

主要是学习如何写乘法逆,采用了分治法的基本策略。 import java.util.Scanner; public class cf_327C { public static final long MOD = 1000000007; /** * @param args */ public static void main(String[] args) { // TODO

BananaTree 1411

PCL 基于法线微分(DoN)的点云分割【2026最新版】

基于法线微分的分割。博客长期更新,本文最新更新时间为:2026年5月10日。

点云侠的博客 39万+

CodeForces 327C

Magic Five Time Limit:1000MSMemory Limit:262144KB64bit IO Format:%I64d & %I64u SubmitStatus Description There is a long platescontainingndigits. Iahub wants to delet...

weixin_30650039的博客 125

支付域——“清算、结算、清结算”

本文深入探讨了支付系统中的清算和结算流程,包括核心流程、模块设计及特殊场景处理。文章详细阐述了交易收单、资金冻结、清分规则、清算批处理、结算出账等关键步骤,并讨论了交易失败、数据不一致、退款、汇率波动等异常情况的处理方法。

庄小焱 2558

数控系统(CNC)系列:Hurco VMX42SR_(3).控制系统硬件组成部分

控制箱是CNC系统的核心部分,负责处理所有的控制指令和数据。它通常包含主控板、电源模块、接口板等关键组件。伺服驱动器是CNC系统中的关键组件,负责将主控板发出的控制信号转换为电机所需的驱动电流。它通过闭环控制确保电机的精确运动。电机是CNC系统中的执行机构,负责实现主控板发出的运动指令。常见的电机类型包括步进电机和伺服电机。传感器是CNC系统中的重要组件,用于检测和反馈机床的运行状态。常见的传感器类型包括位置传感器、速度传感器、温度传感器等。电源供应系统为CNC系统的所有组件提供电力。主电源。

2401_87715305的博客 1278

Codeforces 327C 快速幂+等比数列求和+乘法逆元

题目链接:http://codeforces.com/problemset/problem/327/C There is a long plate s containing n digits. Iahub wants to delete some digits (possibly none, but he is not allowed to delete all the digits) to f...

The_OIer的博客 3173

华为OD机考双机位C卷 - 区间交集(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 区间交集

算法大师! 1136

Codeforces - 327C. Magic Five - 组合数学

Magic Five 题目链接 分类:combinatorics math 1.题目描述 给出一个字符串a和一个整数k,表示这个字符串s是由k个a连接得到的,要求任意删除字符串s中的任意位上的字符,使得删除后的字符串表示的数能被5整除。 题目说明所求结果可能包含前导0的情况,即5和05算两种情况。 2.解题思路 对于一个串,我们很容易知道对于某一位i是0或5,有2i2^i种选法(字符

终有绿洲摇曳在沙漠 482

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

(水题)Codeforces - 327C - Magic Five

https://codeforces.com/problemset/problem/327/C 因为答案可以有前导零,所以0和5一视同仁。每个小节内,以排在第 $i$ 个的5为结尾的序列即为在前面 $0\thicksim i-1$ 共i个里面选 $0$ 、 $1$ 、 $2$ 直到 $i-1$ 个去除,由二项式定理知道这里是 $2^i$ 。 因为小节可以循环,每次循环后面的对应位置要多 $n$...

weixin_30477293的博客 143

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

codeforces 327C Magic Five

题意: 给了一个数字串s,和正整数k。k是s重复的遍数。 求有多少种不同的删除元素的方法,使得删除后的数字时5的倍数。 答案mod 1e9 7 思路: 先解决不存在周期的情况。 考虑s[i]=0 或 5,将它右边的数全部删去,即将它变成末位。 则答案增加2cnt[i]2^{cnt[i]}, cnt[i]是其左边的位数。 答案则是 ∑s[i]=0,52i(modM)\sum_{s[i

slowlight93的专栏 662

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

CodeForces 327C Magic Five 题解&代码

其实挺水的?【并不 反正代码不长思路: 对于一个串,我们很容易知道对于某一位i是0或5,有2^i种选法【字符串从第0位开始,第i位确定】 一个串的选法也很容易求出,按顺序求出每一位的选法,加起来【设一个串有k种选法 对于多个串,第二个串的某一位i【对于该串的第i位】,有2^(strlen(s)+i)种选法,即(2^i)×(2^strlen(s))种选法。这样的话,选法之和可以提取为(2^st

Rainbow6174's home 964

codeforces 327C Magic Five 分数形式整数取余

#include #include #include #define mod 1000000007 __int64 pows(__int64 a,__int64 b) { __int64 s=1; while(b){ if(b&1) s=(s*a)%mod; a=(a*a)%mod; b=b>>1; } return s; } char a[100001]; int

冷月之殇 1663

CodeForces Round #191 (327C) - Magic Five 等比数列求和的快速幂取模

很久以前做过此类问题..就因为太久了..这题想了很久想不出..卡在推出等比的求和公式,有除法运算,无法快速幂取模... 看到了 http://blog.youkuaiyun.com/yangshuolll/article/details/9247759 才想起等比数列的快速幂取模.... 求等比为k的等比数列之和T[n]..当n为偶数..T[n] = T[n/2] + pow(k,n/2) * T[n

zzyzzy12 2142

Codeforces Round #191 (Div. 2)

知道有比赛,可是忘记报名了,坑啊 好吧,就三题会做 327A Flipping Games 给定一由0、1组成的串,改变某个区间所有元素的状态(0→1、1→0),要求使改变后的元素含1最多,并输出1的个数: 考预处理的吧,用两个数组分别记录到从 0 到 i 这个位置,一共有多少个0或者1,那么区间 i ~ j 之间1的个数就是 is1[ j ] - is1[ i - 1]。 #inclu

q1666088056的专栏 805

codeforces #327C Magic Five 矩阵快速幂加费马小定理加逆元

C. Magic Five time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output There is a long plate s containing n digits.

wust_ZJX的专栏 1183

Codeforces Round #191 (Div. 2) C. Magic Five 快速幂

C. Magic Five 链接: http://codeforces.com/contest/327/problem/C 题解: 求等比为k的等比数列之和T[n].. 当n为偶数..T[n] = T[n/2] + pow(k,n/2) * T[n/2] 当n为奇数...T[n] = T[n/2] + pow(k,n/2) * T[n/2] + 等比数列第n个数的值 比如 1+2+4...

weixin_30871293的博客 62

CodeForces Round #191 (327C) - Magic Five 乘法逆元与费马小定理

这题的关键还是如何求等比数列之和,之前使用的二分求和...这里用数论的知识直接解决...     对于(a/b)%c这类运算不能等价于(a%c / b%c)...但是可以等价为(a*b')%c...其中b'为b的逆元..     而(a*b')%c这类运算可以拆解为(a%c * b%c)..     那么关键就是求c的逆元了.. 值得留意的是10000007是一个质数...     根据费

zzyzzy12 1888

Codeforces_327_C

http://codeforces.com/problemset/problem/327/C 等比求和相加,有mod的出现,所以要算逆元。 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define LL lo...

diaotan0836的博客 158

线性筛 [约数个数/约数和]

刚才手动推了一下 用线性筛筛约数个数和约数和,就顺便写篇博客记录一下。不过网上应该也有不少人推过了。

ControlBear的博客 1万+

SGU106 The equation[扩展欧几里德算法]

A - The equation Time Limit:250MS     Memory Limit:4096KB     64bit IO Format:%I64d & %I64u Submit Status Description There is an equation ax + by + c = 0. Given a,b,c,x1,x2,

ControlBear的博客 1430
上一篇: HDU2152 Fruit[母函数/背包]
下一篇: HDU1520 Anniversary party[树形DP]
ControlBear
博客等级 码龄11年 34粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值