这几天打了一场比赛,手速练习赛服务器坏了,今日头条杯的比赛,就a了一道简单dp,f题,题意:给你一个矩阵变换m次之后求从左上角到右下角的路线里,权值最大的是哪个,刚开始读错题了,以为每次变换都要求,就没做,后来明白过来,就是简单的矩阵变换,然后就是一个dp结束。主要还是c题,题意:
由n个节点组成的树,求这颗树有多少不重复的无向图。赛后补的题,树形dp。 dp[i]是以i为无向图的起始点,向下延伸的所有无向图的个数。从叶子结点递推到根结点,每个结点初始值为1。父亲节点由 dp[u]*(dp[v]+1)计算而来。因为不同联通块相连都会有不同的无向图,要用乘法计算,进行一次dfs就好了。然后看笑着走完自己的路大佬的博客,后面看感觉都是水题,好题还是有不少的,nyoj 61这道题,也是求路线权值最大,但要走个来回,并且不能走重复的路,要我碰上就凉凉了,看了一下网上的思路,把问题转换成从左上到右下的两条了路径和最大的问题,而且是同时走,这样就变成了三维dp了。还有就是nyoj 16 矩形嵌套,题意:有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d,要求选出可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内。假设X可以嵌套在Y中,就从X到Y连一条边,这个有向图是无环的,然后就变成了DAG上的最长路径问题了。还有就是hdoj 3127 WHUgirls,题目大意:已知长宽分别为X,Y的大矩形,以及n个长和宽固定的小矩形的权值。求大矩形分割成小矩形后的能获得的最大权值。用dp[i][j]记录长宽为i,j的矩形分割后能获得的最大权值。而且每次从大矩形中切割出一个小矩形, 总是沿着大矩形的顶角边缘切割将不会丢失最优解。然后dp思路就是原始矩形能获得的最大价值 = max(小矩形价值 + 被水平一刀和竖直一刀切割后剩下的两个矩形能获得的最大价值和 )。
4月24日
最新推荐文章于 2024-05-01 10:31:31 发布