摘要: 一个数塔问题,以时间为纵坐标、位置为横坐标创建一个二维数组,然后从下往上相加。 状态转移方程:9>= j>=1时 dp[i][j]+=max(max(dp[i+1][j],dp[i+1][j+1]),dp[i+1][j-1]) j=0时 dp[i][j] += max(dp[i+1][j],dp[i 阅读全文
posted @ 2024-05-16 23:34 XiaohuangTX 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 寒假的时候,ACBOY要去拜访很多朋友,恰巧他所有朋友的家都处在坐标平面的X轴上。ACBOY可以任意选择一个朋友的家开始访问,但是每次访问后他都必须回到出发点,然后才能去访问下一个朋友。比如有4个朋友,对应的X轴坐标分别为1, 2, 3, 4。当ACBOY选择坐标为2的点做为出发点时,则他最终需要的 阅读全文
posted @ 2024-05-16 00:15 XiaohuangTX 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 简单卡特兰数题,卡特兰序列:1,1,2,5,14,42,132,429,1430············· 递推式f(n)=f(n-1)*(4n-2)/ (n+1) import java.math.BigInteger; import java.util.Scanner; public class 阅读全文
posted @ 2024-05-15 23:49 XiaohuangTX 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 思路:从顶层走到底层可以变为从底层走到顶层,dp[i][j]=a[i][j]+max(dp[i+1][j],dp[i+1][j+1]) import java.util.Scanner; public class hdu2084 { public static void main(String[] 阅读全文
posted @ 2024-05-14 22:19 XiaohuangTX 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 【题解】 假设有一种合法的放置方案,有n-1个位置,那么我们在末尾多放一个M,必定是一个合法的方案。(放F则不一定) 有n-2个位置的合法放置方案,我们在末尾多放FF,必定是一个合法的方案。(其实放MM也是必定合法的,但是会和上一种情况重复,不能考虑进去。FM和MF则不能保证合法) import j 阅读全文
posted @ 2024-05-12 23:04 XiaohuangTX 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 解法:从N中选出M个C[n][m],然后乘上错排公式;f[n]=(n-1)*(f[n-1]+f[n-2]);f[0]=0;f[1]=1; import java.util.Scanner; public class hdu2049 { public static int C(int a,int b) 阅读全文
posted @ 2024-05-12 17:02 XiaohuangTX 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 题目思路: 其实我还真没怎么看出来这个是递推(嘤嘤自己好菜哇)……不过很清楚的是我们需要求出每个人拿到的都不是自己的牌子的情况有几种,按照日常经验,如果前n个人已经做到了错排(也就是拿的都不是自己的牌子),当第n+1个人来的时候,他跟任意一个人交换后就能做到这n+1个人都实现错排,!!但是注意还有一 阅读全文
posted @ 2024-05-12 12:26 XiaohuangTX 阅读(1) 评论(0) 推荐(0) 编辑
摘要: import java.util.Scanner; public class hdu2046 { public static void main(String[] args) { // TODO 自动生成的方法存根 long[] aa = new long[51]; aa[1] = 1; aa[2] 阅读全文
posted @ 2024-05-11 23:28 XiaohuangTX 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 这道题的解法就是站在涂色后的最后一块,思考前一块是怎么涂色的就可以了,比如 如果最后一块的前一块是与第一块颜色不同的情况,则最后一块只有一种颜色可以涂,其方法的数目等于f(n-1),而当最后一块前面一块的颜色与第一块相同时,则倒数第三块一定与第一块的颜色不同,则涂到倒数第三块有f(n-2)方法,到倒 阅读全文
posted @ 2024-05-11 22:42 XiaohuangTX 阅读(2) 评论(0) 推荐(0) 编辑
摘要: import java.util.Scanner; public class hdu2044 { public static void main(String[] args) { // TODO 自动生成的方法存根 //坑点 long[] aa = new long[51]; aa[1] = 1; 阅读全文
posted @ 2024-05-10 14:48 XiaohuangTX 阅读(1) 评论(0) 推荐(0) 编辑