T432580 星云 hard ver.

原题链接

题解

一道搜索+模拟
搜索每一位可以放哪个值([0,9]),然后累加搜索下一位
注意细节

code

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll f[10][105]={0};
ll n,k;
ll ss(ll now,ll left)
{
    if(f[now][left])return f[now][left];
    if(now==n)
    {
        f[now][left]=min(left+1,10LL);//这里也是一样!!
        return f[now][left];
    }
    ll ans=0;
    for(ll i=0;i<=min(9LL,left);i++) ans+=ss(now+1,left-i);//位数必须在09之间!!

    f[now][left]=ans;
    return ans;
}
int main()
{
    ll t=1;
    //cin>>t;
    while(t--)
    {
        cin>>n>>k;
        cout<<ss(1,k)-1<<endl;
        memset(f,0,sizeof f);
    }
    return 0;
}

posted @   纯粹的  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示