#二维数组j逆着来如何遍历?
查看原帖
#二维数组j逆着来如何遍历?
321410
cleverThew楼主2021/1/25 16:43
package Luogu_oj;
import java.util.Scanner;
public class p1164 {
	static int n,m;,sum;
	static int []a;
	static int [][]f;
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		n=in.nextInt();m=in.nextInt();
		a=new int[n+1];
		f=new int [n+1][1001];
		for(int i=1;i<=n;i++) {
			a[i]=in.nextInt();
		}
		for(int i=1;i<=n;i++) {			
			for(int j=1;j<=m;j++) {
				if(j==a[i])f[i][j]=(f[i-1][j]+1);
				if(j>a[i]) {
					f[i][j]=(f[i-1][j]+f[i-1][j-a[i]]);
				}else if(j<a[i]){
					f[i][j]+=f[i-1][j];
				}
			}
			/*for(int j=m;j>=a[i];j--) {//逆着来用二维数组想不明白怎么遍历
				if(j==a[i])f[i][j]=f[i-1][j]+1;
				if(j>a[i])f[i][j]=f[i-1][j]+f[i-1][j-a[i]];
			}
		}*/
		System.out.println(f[n][m]);
	}
}
2021/1/25 16:43
加载中...