news 2026/2/7 1:52:31

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/2/6 22:55:48

【课程设计/毕业设计】基于SpringBoot的宝贝回家走失儿童报备系统基于springboot的走失儿童认领与登记系统【附源码、数据库、万字文档】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/7 6:05:26

计算机Java毕设实战-基于springboot的走失儿童认领与登记系统基于springboot+vue的javaweb宝贝回家走失儿童报备【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/5 14:24:32

LU,大小鼠脑损伤打击器 脑损伤打击器 自由落体打击器

仪器借助尖端带不锈钢的打击器快速打击暴露的颅脑或脊髓&#xff0c;随即上抬撞头避免二次撞击。微信斯达&#xff0c;露&#xff0c;适用于小鼠、大鼠、兔、犬、猴等动物&#xff0c; 1、定位仪行程&#xff1a;X轴80mm,Z轴&#xff1a;80mm,Y轴80mm。 2、电动Z轴行程&#x…

作者头像 李华
网站建设 2026/2/3 3:01:11

大数据领域的餐饮行业数据分析

大数据驱动的餐饮革命&#xff1a;从数据到决策的智能转型之路 [外链图片转存中…(img-R9Ni6lh1-1769008296023)] 关键词 餐饮大数据分析、顾客行为洞察、供应链优化、预测分析模型、餐厅收益管理、数据驱动决策、餐饮业数字化转型 摘要 在当今竞争激烈的餐饮市场中&#xff0c…

作者头像 李华