首页 > 其他分享 >6361

6361

时间:2024-02-22 21:04:37浏览次数:21  
标签:sum up num low 6361 dp

6361. 【NOIP2019模拟2019.9.18】鲳数(pair)

题目大意

求l到r的逆序对和

题解

首先规定\(num_{up}[i]\)表示从高位到低位(n~i)组成的数,\(num_{low}[i]\)从低位到高位 (1~i)组成的数,a[i]表示第i位的数值

1~n是低位到高位

举个栗子:12345中\(num_{up}[3]=345,num_{low}[4]=1234\)

考虑一种类似数位dp的东西

设f[i,j]表示\(0\to10^i-1\)中小于j的位数和(\(j∈[1,9]\))

g[i,j]表示\(0\to num_{low}[i]\)中小于j的位数和(\(j∈[1,9]\))

然后就用数位dp的老套路,对于i,累加1~i-1的贡献,再加i位的贡献

转移方程:

\(f[i,j]=10\times f[i-1][j]+10^{i-1}j\)

\(g[i,j]=f[i-1][j]*a[i]+g[i-1][j]+(j<=a[i]?10^{i-1}j:num_low[i]+1)\)

预处理完后,就可以使用按位累加ans了

第i位的贡献为\(g[i-1][a[i]]+\sum_{j=1}^9num_{up}[i+1]f[i-1][j]+\sum_{j=1}^{a[i]-1}f[i-1][j]\)

然后就没了,记得取模

标签:sum,up,num,low,6361,dp
From: https://www.cnblogs.com/zhy114514/p/18028159

相关文章

  • 6361.对角线上的质数-340
    对角线上的质数给你一个下标从0开始的二维整数数组nums。返回位于nums至少一条对角线上的最大质数。如果任一对角线上均不存在质数,返回0。注意:如果某个整数大于1,且不存在除1和自身之外的正整数因子,则认为该整数是一个质数。如果存在整数i,使得 nums[i][i]......