首页 > 贝壳笔试0907
头像
Eden_Zhou
编辑于 2020-09-07 17:08
+ 关注

贝壳笔试0907

想看看大佬们第三第四的解题过程,3-0%,4-50%
第三题感觉动态写的对,不知道为什么是0%,或者看看我的代码哪里有问题嘛?
import java.util.Scanner;

/*
例如输入,5个板,3种颜色,限制为1,即1后面不能是1,2后面不能是2,3后面不能是3
5 3 1
1
2
3
dp[i][j]含义为,当板数为i时,涂到该板的颜色为j
dp[][]数组为
0 0 0 0 
1 1 1 1 
0 2 2 2 
0 4 4 4 
0 8 8 8 
0 16 16 16 
计算最后一排总数即48种情况
48
*/
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int loop = input.nextInt();
        for (int i = 0;i<loop;i++){
            int board = input.nextInt();
            int color = input.nextInt();
            int limit = input.nextInt();
            // 不可用颜色limitmap
            int[][] limitmap = new int[color+1][limit];
            for (int k=1;k<color+1;k++){
                for (int j=0;j<limit;j++){
                    limitmap[k][j] = input.nextInt();
                }
            }
            int[][] dp = new int[board+1][color+1];
            for (int k=0;k<color+1;k++){
                dp[1][k] = 1;
            }
            for (int j = 1;j<board;j++){
                for (int k = 1;k<color+1;k++){
                    for (int x = 1;x<color+1;x++){
                        if (nofind(k,x,limitmap,limit)){
                            dp[j+1][x] += dp[j][k];
                        }
                    }
                }
            }
            // 计算dp最后一排的总和
            long sum =0;
            for (int j = 1;j<color+1;j++){
                sum +=dp[board][j];
            }
            System.out.println(sum%1000000007);
        }
    }
    // 查看前一种颜色为before时,after是否在limitmap中
    public static boolean nofind(int before,int after, int[][] limitmap,int limit){
        for (int i = 0;i<limit;i++){
            if (limitmap[before][i] == after){
//                System.out.println(before+"-"+after+"-f");
                return false;
            }
        }
//        System.out.println(before+"-"+after+"-t");
        return true;
    }
}

全部评论

(1) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐