import java.util.Scanner; public class Main { static class Info { int redNotOnlyOne; int redOnlyOne; int none; //构造略 } public static Info myprocess(int n) { //dp[i] 表示 长度为i的字符串 中至少包含两个red 只包含一个red 不包含red的情况 Info[] dp = new Info[n + 1]; dp[1] = new Info(0, 0, (int) Math.pow(26, 1)); dp[2] = new Info(0, 0, (int) Math.pow(26, 2)); dp[3] = new Info(0, 1, 17575); for (int i = 4; i <= n; i++) { int mod = 1000000007; long redNotOnlyOne = 26L * dp[i - 1].redNotOnlyOne + dp[i - 3].redOnlyOne; redNotOnlyOne %= mod; long redOnlyOne = 26L * dp[i - 1].redOnlyOne - dp[i - 3].redOnlyOne + dp[i - 3].none; redOnlyOne %= mod; long none = 26L * dp[i - 1].none - dp[i - 3].none; none %= mod; dp[i] = new Info((int) redNotOnlyOne, (int) redOnlyOne, (int) none); } return dp[n]; }
2 1

相关推荐

点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务