news 2026/4/18 6:44:51

CF621E-Wet Shark and Blocks

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CF621E-Wet Shark and Blocks

CF621E-Wet Shark and Blocks

题目大意

你现在一共有b bb堆一模一样的数字,每堆数字中有n nn1 − 9 1-919的一位数。你现在可以从每一堆里恰好选一个数,将这些数从左到右拼成一个大数。将这个拼成的大数对x xx取模,问你最后结果是k kk的取法有多少,取法数量对1 e 9 + 7 1e9+71e9+7取模。

题解

可以发现,设d p [ m ] [ i ] dp[m][i]dp[m][i]为前m mm堆余数为i ii的种数,有如下递推式d p [ m + 1 ] [ ( i ∗ 10 + v a l ) % x ] + = d p [ m ] [ i ] dp[m+1][(i*10+val) \% x]+=dp[m][i]dp[m+1][(i10+val)%x]+=dp[m][i]v a l valval为下一堆中取的数字。可以发现递推式只和相邻两堆有关。所以可以简化成d p [ i ] [ ( i ∗ 10 + v a l ) % x ] = Σ i [ n u m [ i ] = = v a l ] dp[i][(i*10+val) \% x]=\Sigma_i [num[i]==val]dp[i][(i10+val)%x]=Σi[num[i]==val],表示从余数i ii转移到下一堆余数( i ∗ 10 + v a l ) % x (i*10+val) \% x(i10+val)%x的种数。接下来就是对这个矩阵进行矩阵快速幂加速得到结果。

#include<bits/stdc++.h>#defineiosios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#defineendl'\n'usingnamespacestd;#defineintlonglongconstintmod=1e9+7;structMatrix{intn,m;vector<vector<int>>a;Matrix(int_n=0,int_m=0):n(_n),m(_m){a.resize(n,vector<int>(m,0));}Matrixoperator*(constMatrix&b)const{if(m!=b.n)throw"Matrix dimension error";Matrixres(n,b.m);for(inti=0;i<n;i++){for(intj=0;j<b.m;j++){for(intk=0;k<m;k++){res.a[i][j]=(res.a[i][j]+1LL*a[i][k]*b.a[k][j])%mod;}}}returnres;}Matrixpow(longlongk)const{if(n!=m)throw"Matrix must be square";Matrixres(n,n),base=*this;for(inti=0;i<n;i++)res.a[i][i]=1;while(k>0){if(k&1)res=res*base;base=base*base;k>>=1;}returnres;}};inlinevoidsolve(){intn,b,k,x;cin>>n>>b>>k>>x;MatrixA(x,x);for(inti=0;i<n;i++){intval;cin>>val;for(intj=0;j<x;j++){intnext=(j*10+val)%x;A.a[j][next]=(A.a[j][next]+1)%mod;}}Matrix Ab=A.pow(b);cout<<Ab.a[0][k]<<endl;}signedmain(){ios;intT=1;// cin >> T;while(T--)solve();return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 3:05:14

基于SpringBoot+Vue校园足球俱乐部管理系统的设计与实现

博主主页&#xff1a;一点素材 博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬…

作者头像 李华
网站建设 2026/4/18 3:45:35

基于SpringBoot+Vue学校物资采购系统的设计与实现

博主主页&#xff1a;一点素材 博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬…

作者头像 李华
网站建设 2026/3/30 6:49:20

导师严选2026 TOP10 AI论文工具:专科生毕业论文写作全测评

导师严选2026 TOP10 AI论文工具&#xff1a;专科生毕业论文写作全测评 2026年AI论文工具测评&#xff1a;为何值得一看&#xff1f; 随着人工智能技术的不断进步&#xff0c;AI写作工具在学术领域的应用越来越广泛。对于专科生而言&#xff0c;撰写毕业论文不仅是学业的重要环节…

作者头像 李华
网站建设 2026/4/12 10:57:41

MCP学习笔记

MCP学习笔记 最近由于组织架构变动&#xff0c;负责AI相关工具建设&#xff0c;学习一下MCP相关的知识 1、MCP介绍 1.1、什么是MCP MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;是 Anthropic 开发的一个开放标准协议&#xff0c;用于让 AI …

作者头像 李华
网站建设 2026/4/18 5:31:12

【SQL Server】PRINT如何在SQL语句或者存储过程中直接输出消息

在存储过程或者SQL语句的执行过程中&#xff0c;消息并不是直接输出的&#xff0c;而是大部分情况下是等存储过程执行完毕才输出&#xff0c;一般情况下没问题&#xff0c;但如果存储过程执行时间较长&#xff0c;如何避免这种情况呢&#xff1f;declare i int 1, iMax int 1…

作者头像 李华