摘要: 题目:题目链接 思路:由于t最大值其实只有180 * 50 + 678,可以直接当成01背包来做,需要考虑的量有两个,时间和歌曲数,其中歌曲优先级大于时间,于是我们将歌曲数作为背包收益,用时间作为背包容量进行dp,记录下最多歌曲数目,最后通过最多歌曲数目得出最多歌曲数目下的最长时间,利用滚动数组我们 阅读全文
posted @ 2018-12-01 21:25 FanJiaming 阅读(153) 评论(0) 推荐(0)
摘要: 题目:题目链接 题意:对长为n的1到n的数列的前k个数排序后数列的最长上升子序列长度不小于n-1的数列的种数,训练赛时怎么都读不明白这个题意,最后还是赛后问了旁队才算看懂,英语水平急需拯救55555 思路:明白题意后就很容易了,有一个坑点是k可能比n大,所以我们对k取min(k, n),我们先不考虑 阅读全文
posted @ 2018-11-30 22:51 FanJiaming 阅读(606) 评论(0) 推荐(0)
摘要: 题目:题目链接 思路:直接计数显然是不好处理的,但分情况讨论只要不写错这题是一定可以出的,但这样基本做完这个题就没时间做其他题了,但当时我就这么蠢的这样做了,比赛一个半小时的时候突然发现一个似乎可行的规律,但因为时间问题没有证,当时那个思路已经快写完了也没有换思路写,就杯具了,最后那个写了一坨的代码 阅读全文
posted @ 2018-11-24 22:53 FanJiaming 阅读(367) 评论(0) 推荐(0)
摘要: 将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。 输入格式: 输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。 输出格式: 将输入的N个正整数顺序插入一个初始 阅读全文
posted @ 2018-11-24 12:41 FanJiaming 阅读(535) 评论(0) 推荐(0)
摘要: 题目:题目链接 思路:思路+构造,假设 i 在pos 位置,那么如果 (pos-i-1)*2+i+1 <= n,那么可以操作一次换过来,如果他们之间元素个数是偶数,那么交换 i - pos,如果是奇数,交换 i - pos+1,然后再经过一次就可以换到指定位置,如果是奇数并且pos==n,先与前一个 阅读全文
posted @ 2018-11-22 23:23 FanJiaming 阅读(218) 评论(0) 推荐(0)
摘要: 题目:题目链接 思路:从后往前进行dp,用next数组记录字典序最小的那一条路径 AC代码: 阅读全文
posted @ 2018-11-22 21:41 FanJiaming 阅读(176) 评论(0) 推荐(0)
摘要: 因为排序二叉树的有序性,建立与查询都不是很难,唯一的难点是删除结点的操作,删除节点且要保证该树仍为二叉树且仍满足有序的性质 二叉树的删除操作主要有三种情况: 所删除的节点是叶子节点,这样就可以先遍历这个树,然后找到需要删除的节点,把它free掉就好 所删除的节点只有一个左子结点,或者只有一个右子结点 阅读全文
posted @ 2018-11-15 20:07 FanJiaming 阅读(412) 评论(0) 推荐(0)
摘要: 题目:题目链接 思路:每个方块可以用任意多次,但因为底面限制,每个方块每个放置方式选一个就够了,以x y为底 z 为高,以x z为底 y 为高,以y z为底 x为高,因为数据量很小,完全可以把每一种当成DAG上的一个结点,然后建图找最长路径。 AC代码: 阅读全文
posted @ 2018-11-12 09:03 FanJiaming 阅读(129) 评论(0) 推荐(0)
摘要: 问题描述:有n个矩形,每个矩形可以用两个整数a,b描述,表示它的长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d,或者b<c,a<d(相当于把矩形X旋转90°)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)内。你的任务是选出尽可能多的矩形排成一行。使得除了最 阅读全文
posted @ 2018-11-04 22:18 FanJiaming 阅读(355) 评论(0) 推荐(0)
摘要: 题目:题目链接 思路:1到4是很容易写出来的,我们先考虑这四种情况的绘制顺序 1:ru 2:rulu 3:rululdlu 4:rululdluldrdldlu 不难发现,相较于前一行,每一次增加一倍数量,并且增加的这部分前一半和原来正好相反,后一半相同,根据这一性质,预处理出极端情况13的解答字符 阅读全文
posted @ 2018-11-02 23:37 FanJiaming 阅读(265) 评论(0) 推荐(0)