关于dp顺序、内外层确定的疑问
  • 板块学术版
  • 楼主Calanosay
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/4/21 18:22
  • 上次更新2023/11/5 00:16:57
查看原帖
关于dp顺序、内外层确定的疑问
434015
Calanosay楼主2021/4/21 18:22

dp的内外层是怎么确定的啊,cf 714div2 C

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+5;
const int mod=1e9+7;
int t,n,k;
ll dp[10][maxn];
void init(){
	for(int i=0;i<=9;i++)	dp[i][0]=1;
	for(int j=1;j<=maxn;j++){
		for(int i=9;i>=0;i--){
			if(i==9)	dp[i][j]=(dp[1][j-1]+dp[0][j-1])%mod;
			else		dp[i][j]=dp[i+1][j-1]%mod;
		}
	}
}
int main(){
	cin>>t;
	init();
	while(t--){
		scanf("%d%d",&n,&k);
		ll ans=0;
		while(n){
			ans=(ans+dp[n%10][k])%mod;
			n/=10;
		}
		printf("%lld\n",ans);
	}
}

我的代码是这样的,为什么j循环要在外面?以及为什么i正序逆序都是可以AC的,原理是什么?

2021/4/21 18:22
加载中...