返回顶部
摘要: 题意:给你5个$A,B,C,D,E$大小关系式,升序输出它们,如果所给的大小矛盾,输出$impossible$. 题意:当时第一眼想到的就是连边然后排序,很明显是拓扑排序(然而我不会qwq,之后再补),但貌似可以直接暴力来写,用二维数组来记录两个数之间的大小关系,如果一维$>$二维就记录true,然 阅读全文
posted @ 2020-05-17 12:54 Rayotaku 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一组数,求数组中唯一的出现次数为奇数的那个数. 题解:这题其实直接桶排一下就行了,但是最后一个点会TLE. ​ 后来了解到这题可以用位运算来解决: ​ ^(异或)运算符:用于比较两个二进制数的相应位。在执行按位异或运算时,如果两个二进制数的相应位都位1或两个二进制数的相应位都位0,则返回 阅读全文
posted @ 2020-05-17 12:35 Rayotaku 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个长度为$n$元素均为$0$的序列,进行$n$次操作构造出一个新序列$a$:每次选择最长的连续为$0$的区间$[l,r]$,使得第$i$次操作时,\(a[\frac{l+r}{2}]=i\)(下取整),求$a$. 题解:刚开始我打算用归并分治的思想来写,但是发现左区间递归不到,然后就gg了 阅读全文
posted @ 2020-05-15 18:48 Rayotaku 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个$R*C$的矩阵,可以从矩阵中的任意一个数开始,每次都可以向上下左右选一个比当前位置小的数走,求走到$1$的最长路径长度. 题解:这题很明显看到就知道是dfs,但是直接爆搜会TLE,这里我们采用记忆化搜索,什么意思呢? ​ 我们在dfs的时候,每次都记录一下每个点到1的路径长度,然后,之 阅读全文
posted @ 2020-05-14 20:33 Rayotaku 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题意:给两个长度为$n$的全排列,求他们的LCS 题解:这题给的数据范围到$105$,用$O(n2)\(的LCS模板过不了,但由于给的是两个全排列,他们所含的元素都是一样的,所以,我们以第一个串为模板,第二个串的每一个元素都能对应到第一个串的元素的位置,第二串对映后的最长上升子序列,就是他们的LCS 阅读全文
posted @ 2020-05-14 19:49 Rayotaku 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个数列,求所有子序列对的$lcm$,然后求这些所有$lcm$的$gcd$. 题解:我们对所有数分解质因数,这里我们首先要知道一个定理: ​ 对于$n$个数,假如某个质数$p$,这$n$个数中有$\le n-1$个数的质因数包含$p$,那么他们的$lcm$中一定不含$p$这个因数,随意我们 阅读全文
posted @ 2020-05-14 19:13 Rayotaku 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个长度为$n$的序列$a$,求一个最长上升子序列,且这个子序列的元素在$a$中的位置满足$i_{j+1}modi_=0$,求这个子序列的最大长度. 题意:这题假如我们用$O(n^2)$的朴素DP来求肯定是会TLE的,我们在原有的方法上做一些优化. ​ 我们首先遍历$a$,确定子序列的首位置 阅读全文
posted @ 2020-05-14 17:16 Rayotaku 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 题意:求一个只由$01$组成的字符串,使得它所有长度为$2$的子串满足:每对子串的数字和为$0,1,2$的个数为$a,b,c$. 题解:我们先考虑子串数字和为$1$的情况,构造出一个$10$的循环串,然后在它的头部尾部适当添加$1$和$0$,使得a和c也满足即可.需要特判$b=0$的情况,并且$b$ 阅读全文
posted @ 2020-05-10 18:45 Rayotaku 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个无限长且元素均为$0$的排列,每次给你一对$(x,y)$,表示在所有$x$的后面插入一个元素$y$,最后给你一个区间$(l,r)\(,输出\)[l,r-1]$中的所有元素. 题解:我们用一个vector和pair来存储每次输入的$(x,y)$,显然,在$x$后插入的最后一个数一定是$x 阅读全文
posted @ 2020-05-10 17:21 Rayotaku 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题意:有一个长度为$n$的数组,从第一天开始,第$i$天可以使$i$位置上的数$+1$,当$i=n$时,下次从$i=1$再开始,另外,在每天结束时,你可以使任意一个位置上的数$+1;or;-1$,或者不变,求最少经过多少天可以使得每个位置上的数都相等. 题解:我们对天数进行二分,由中位数定理:数列中 阅读全文
posted @ 2020-05-09 12:20 Rayotaku 阅读(132) 评论(0) 推荐(1) 编辑