1 条题解

  • 0
    @ 2025-9-10 9:00:43

    Java :

    import java.math.BigInteger;
    import java.util.Scanner;
    
    
    public class Main {
    	static BigInteger dp[][] = new BigInteger[309][309];
    	
    	public static void prep()
    	{
    		for(int i=1;i<=300;i++)
    			for(int j=1;j<=300;j++)
    				dp[i][j]=BigInteger.valueOf(-1);
    		for(int i=1;i<=300;i++)
    		{
    			dp[0][i]=dp[1][i]=dp[i][1]=BigInteger.valueOf(1);
    		}
    		for(int i=1;i<=300;i++){
    			for(int j=1;j<=300;j++)
    			{
    				if(dp[i][j].equals(BigInteger.valueOf(-1)))
    				{
    					dp[i][j]=dp[i][j-1];
    					if(i>=j)
    					{
    						dp[i][j]=dp[i][j].add(dp[i-j][j]);
    					}
    				}
    			}
    		}
    	}
    	
    	public static void main(String[] args) {
    		prep();
    		Scanner sc = new Scanner(System.in);
    		while(sc.hasNext()){
    			int m,n;
    			m=sc.nextInt();
    			n=sc.nextInt();
    			System.out.println(dp[m][n]);
    		}
    	}
    
    }
    
    
    • 1

    信息

    ID
    3688
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者