数组分割 动态规划 2023蓝桥杯C省赛JavaB

 数组分割 动态规划 2023蓝桥杯C省赛JavaB_第1张图片




import java.util.Arrays;
import java.util.Scanner;
public class Main {

    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int N = 1010, MOD = (int) 1e9 + 7;
        int[][] z = new int[N][2];;
        long d=0;
        z[0][0]=1;
        z[0][1]=0;
        int[] e=new int[N];
        for(int i=0;i

动态规划的存储和输出一般可能都比较多和乱,弯弯绕绕的,一下就混淆了,

而且最基本的用例哪怕对了,其实还是可能只有2分,大概有以下几个问题

1.存储必然用到long(long d=0;),

而且需要mod 1e9+7这种才能输出(int N = 1010, MOD = (int) 1e9 + 7;),

在上一千个一千个数据集里面,缓存数组是必然的,(int[] e=new int[N];)

2.输出的时候,要判断输出条件,尤其是输出条件的位置在循环的哪一个层次,尤其是通过这个步骤进行简化操作(if(d%2!=0){System.out.println(0); break;})

3.可能有三层循环,尤其注意一下循环变量的正确,以及重置(d=0;)

你可能感兴趣的:(计算机算法基础,java,算法,开发语言)