//漂亮串 AC代码,还可以优化,但是没时间做了 o_v_o. long result = dfs(n, 2, 0); System.out.println(result); static long max = 1000000007; static long[][][] record; public static long dfs(int n, int count, int pre) {//count 表示 red数量 ; pre表示red前缀有几个。 if (record[n][count][pre] != 0) { return record[n][count][pre]; } if (n == 0) { return count == 0 ? 1 : 0; } n--; long ans = 0; if (pre == 0) { ans += dfs(n, count, 0) * 25 + dfs(n, count, 1); } else if (pre == 1) { ans += dfs(n, count, 2) + dfs(n, count, 1) + dfs(n, count, 0) * 24; } else if (pre == 2) { if (count == 0) { ans += dfs(n, count, 1) + dfs(n, count, 0) * 25; } else { ans += dfs(n, count - 1, 0) + dfs(n, count, 1) + dfs(n, count, 0) * 24; } } ans %= max; record[n + 1][count][pre] = ans; return ans; } }
2 1

相关推荐

12-03 15:20
武汉大学 Java
点赞 评论 收藏
分享
牛客97567122...:我最近投的几个,都是要不已读不回,要不不回,还有直接拒绝的
点赞 评论 收藏
分享
投递亚信科技(中国)有限公司等公司6个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务