代码没开o2优化过了,开了反而错了最后一个点,代码如下,求大佬解释一下
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
ll n,m;
ll dp[1001][50];
int main()
{
scanf("%lld%lld",&m,&n);
dp[0][1]=1;
for(ll i=1;i<=n;i++)
for(ll j=i;j<=m;j++)
{
for(ll k=1;k<=50;k++)
{
dp[j][k]+=dp[j-i][k];
dp[j][k+1]+=dp[j][k]/10;
dp[j][k]%=10;
}
}
ll flag=0;
for(ll i=50;i>=1;i--)
{
if(dp[m][i]==0&&!flag)
continue;
flag=1;
printf("%lld",dp[m][i]);
}
return 0;
}