您的位置:首页 > 其它

超级玛丽

2017-02-23 13:04 197 查看
package 动态规划;

import java.util.Scanner;

/*

 * 陷阱不会位于1及n上

 * 没有陷阱时:

 * dp
=dp[n-1]+dp[n-2];

 * 有陷阱的时:

 * 点1是陷阱的话,只会影响1后面的,

 * 如果点1是陷阱的话,点2为dp[2]=dp[2-2]加上之前那个点即可

 * 也就是陷阱那个点不参与运算

 */

public class 超级玛丽 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
boolean flag[] = new boolean[n + 1];
int temp = 0;
for (int i = 0; i < m; i++) {
temp = sc.nextInt();
if (temp < n)//测试数据>=N,日狗
flag[temp] = true;
}
int dp[] = new int[n + 1];
dp[1] = 1;
for (int i = 2; i <= n; i++) {
if (flag[i])
continue;
dp[i] = dp[i - 1] + dp[i - 2];
}
System.out.println(dp
);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: