首页 > 其他分享 >数学推导

数学推导

时间:2024-07-09 18:53:52浏览次数:7  
标签:10 推导 int sum pos 数学 quad mod

基本公式

(a+b)%mod=(a%mod+b%mod)%mod

设一个任意整数\(A=a*10^n+b*10^{n-1}+...+c\).
由此可以证明 \(A \quad mod \quad m=(((a \quad mod \quad m)*10+b \quad mod \quad m)*10...)+c) \quad mod \quad m\)

该证明可以应用在数位DP

点击查看代码
#include<bits/stdc++.h>
using namespace std;

#define int long long
const int N=200;
int l,r,dp[20][N][N];
int len,a[20],mod;
int dfs(int pos,int sum,int st,int limit)
{
	if(sum+9*len<mod) return 0;
	if(pos>len&&sum==0) return 0;
	if(pos>len) return st==0&&sum==mod?1:0;
	if(!limit&&dp[pos][sum][st]!=-1) return dp[pos][sum][st];
	int ans=0;
	int res=limit?a[len-pos+1]:9;
	for(int i=0;i<=res;i++)
		ans+=dfs(pos+1,sum+i,(10ll*st+i)%mod,i==res&&limit);//传st的时候就应用了这个证明
	return limit?ans:dp[pos][sum][st]=ans;
}
int solve(int x)
{
	len=0;
	while(x) a[++len]=x%10,x/=10;
	int ans=0;
	for(mod=1;mod<=9*len;mod++)
	{
		memset(dp,-1,sizeof dp);
	    ans+=dfs(1,0,0,1);
	}
	return ans;
}
signed main()
{
	freopen("a.in","r",stdin);
	freopen("a.out","w",stdout); 
    scanf("%lld%lld",&l,&r);
    printf("%lld\n",solve(r)-solve(l-1));
	return 0;
}

标签:10,推导,int,sum,pos,数学,quad,mod
From: https://www.cnblogs.com/zhengchenxi/p/18292564

相关文章

  • 【数学建模】2005建模A题:长江水质综合评价与预测
    数据的无量纲化处理数据的无量纲化处理是一种统计学中的预处理技术,主要用于消除数据中的量纲影响,使得不同单位或量级的指标可以相互比较和结合。无量纲化通过调整数据的范围或尺度,使得数据集中的每个特征或变量处于相似的数值区间内。以下是几种常见的无量纲化处理方法:极......
  • 简单的神经科学数学基础
    简单的神经科学数学基础为什么写这个东西?笔者写这篇文章的时候刚刚高考结束完一个月,未来决定学习计算神经科学。我想要尽早参与神经科学的科研学习,但同时我的基础课也都没有学完。我之前有个想法是一定要打好基础才能去进行下一步的学习,而这个所谓的打好基础到底到什么度为止......
  • 算法金 | 推导式、生成器、向量化、map、filter、reduce、itertools,再见 for 循环
    大侠幸会,在下全网同名「算法金」0基础转AI上岸,多个算法赛Top「日更万日,让更多人享受智能乐趣」不要轻易使用For循环For循环,老铁们在编程中经常用到的一个基本结构,特别是在处理列表、字典这类数据结构时。但是,这东西真的是个双刃剑。虽然看起来挺直白,一用就上手,但是......
  • 高等数学:曲线曲率推导
    https://www.youtube.com/watch?v=8aHUrjgF6s0给定一个向量函数\((\mathbf{s}(t))\),它的导数是\((\mathbf{s}'(t)=\frac{d\mathbf{s}}{dt})\),而单位切向量是\((\mathbf{T}(t)=\frac{\mathbf{s}'(t)}{||\mathbf{s}'(t)||})\)。这里的单位切向量\((\mathbf{T......
  • 概率论与数理统计 (同济大学数学系)
    代码和书等资料https://github.com/guozhe1992/read/tree/main概率论基本概念:包括样本空间、随机事件、概率的公理化定义与性质、条件概率与独立性等,这些是构建概率论框架的基础。随机变量及其分布:介绍随机变量的定义、性质、分类(离散型与连续型)以及它们的分布函数和概率密度......
  • 组合数学 XKerror 笔记
    组合数学帕斯卡定理\[\begin{pmatrix}m\\n\end{pmatrix}=\begin{pmatrix}n-1\\m-1\end{pmatrix}+\begin{pmatrix}n-1\\m\end{pmatrix}\]对称性\[\begin{pmatrix}n\\m\end{pmatrix}=\begin{pmatrix}n\\n-m\end{pmatrix}\]上指标求和\[......
  • 数学建模——层次分析法 AHP(Python代码)
    层次分析法    层次分析法是由美国运筹学家、匹兹堡大学教授T.L.Saaty于20世纪70年代创立的一种系统分析与决策的综合评价方法,是在充分研究了人类思维过程的基础上提出来的,它较合理地解决了定性问题定量化的处理过程。    AHP的主要特点是通过建立递阶层次结......
  • 数学建模——Topsis法(Python代码)
    Topsis法    Topsis法是一种常用的综合评价方法,能充分利用原始数据的信息,其结果能精确反映各评价方案之间的差距。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。    基本过程为先将原始数据矩阵统一指标类型(一般正向化处理)得到正向化的矩阵,再对......
  • Python和MATLAB微机电健康推导算法和系统模拟优化设计
    ......
  • 在Linux中,哪⼀个bash内置命令能够进行数学运算?
    在Linux中,bashshell提供了多种方式进行数学运算,但严格来说,bash本身并没有一个专门的内置命令专门用于数学运算,而是通过一些特殊的语法和命令组合来实现。以下是一些常见的bash中进行数学运算的方法:1.使用$((expression))进行算术扩展这是bash中推荐的标准处理方法,用于执行基本......