很尴尬的分数,60分
查看原帖
很尴尬的分数,60分
1217330
xdedb楼主2024/4/7 23:17
#include<bits/stdc++.h>
using namespace std;
const int mod=1000000007;
int d[105][105][105]={};
int dp(int N,int M,int K){
    if(K>100 || M<0 || N<0) return 0;
    if(d[N][M][K]!=-1) return d[N][M][K];
    if(K%2){
        int sum=dp(N,M-1,K+1)%mod;
        d[N][M][K]=sum;
        return sum;
    } 
    int sum=dp(N-1,M,K/2)+dp(N,M-1,K+1);
    d[N][M][K]=sum%mod;
    return sum;
}
int main(){
    for(int i=0;i<105;i++){
        for(int t=0;t<105;t++){
            for(int h=0;h<105;h++){
                d[i][t][h]=-1;
            }
        }
    }
    for(int k=3;k<105;k++){
        d[0][0][k]=0;
    }
    int N,M;
    cin>>N>>M;
    d[0][0][2]=1;
    cout<<dp(N,M-1,1)%mod;
}

有大佬帮忙看一看吗,我觉得我写的没什么问题TAT

2024/4/7 23:17
加载中...