返回顶部

随笔分类 -  Codeforces

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页
摘要:题意:给$n$场考试的时间,每场考试可以提前考,但是记录的是原来的考试时间,问你如何安排考试,使得考试的记录时间递增,并且最后一场考试的时间最早. 题解:因为要满足记录的考试时间递增,所以我们用结构体记录两个时间,并按第一个时间排序,然后遍历考试时间,$ans$记录上次考试的时间,我们每次将两个时间 阅读全文
posted @ 2020-10-23 14:17 _Kolibri 阅读(112) 评论(0) 推荐(0)
摘要:题意:有一组数,问子数组和最大不超过$t$的最多元素个数. 题解:用数组模拟队列,不断的往里面放,队列中的元素之和大于$t$,就不断地从队头弹出直到满足条件,维护一个最大值即可. 代码: int n,t; int a[N]; int q[N]; int hh,tt=-1; int main() { 阅读全文
posted @ 2020-10-23 11:26 _Kolibri 阅读(69) 评论(0) 推荐(0)
摘要:题意:有两个正整数$n$和$m$,每次操作可以使$n*=2$或者$n-=1$,问最少操作多少次使得$n=m$. 题解:首先,若$n\ge m$,直接输出$n-m$,若$2n>=m$,分$m$的奇偶判断一下,如果是奇数就输出$n-(m+1)/2+2$,是偶数就输出$n-m/2+1$.否则我们就需要用d 阅读全文
posted @ 2020-10-22 21:40 _Kolibri 阅读(71) 评论(0) 推荐(0)
摘要:题意:给出两个正整数$n$和$k$,构造一个长度为$k$的好序列$b_1,b_2,...,b_k(1\le b_1\le b_2\le ...\le b_k \le n)$,并且满足$b_i|b_{i+1}$,问最多能够造出多少这样的序列(同一个元素可以出多次). 题解:我们记$dp[i][j]$表 阅读全文
posted @ 2020-10-22 19:49 _Kolibri 阅读(79) 评论(0) 推荐(0)
摘要:题意:有$n$个画家,$m$幅画,每个画家负责$m$幅画,只有前一个画家画完时,后面一个画家才能接着画,一个画家画完某幅画的任务后,可以开始画下一幅画的任务,问每幅画最后一个任务完成时的时间. 题解:这题可以用dp来写,当某个画家开始他的任务时,他的上一幅画的任务必须完成,并且他的前一个画家必须完成 阅读全文
posted @ 2020-10-16 19:58 _Kolibri 阅读(101) 评论(0) 推荐(0)
摘要:题意:找出序列中有多少子序列是$wow$,但是$w$只能用$vv$来表示. 题解:我们分别记录连续的$v$和$o$的个数,用$v1$和$v2$存,这里要注意前导$o$不能要,观察一下写出答案公式:\(ans=v1[i]*(v2[i]*(v1[i+1]+...+v1[k])+v2[i+1]*(v1[i 阅读全文
posted @ 2020-10-14 13:19 _Kolibri 阅读(124) 评论(0) 推荐(0)
摘要:题意:给你一串只含$4,8,15,16,23,42$的序列,如果它满足长度是$6$的倍数并且有$\frac {6}\(个子序列是\)[4,8,15,16,23,42]$,则定义它是好的,问最少删除多少元素使得序列是好的. 题解:我们开个桶(要离散化)记录这些数字出现的次数,然后线性遍历,当遇到$4$ 阅读全文
posted @ 2020-10-14 13:04 _Kolibri 阅读(113) 评论(0) 推荐(0)
摘要:题意:有一个$01$串,每次操作要先删除一个位置上的元素,然后删除相同前缀和,直到字符串被删完,问最多能操作多少次. 题解: 对于一个长度大于$1$的相同前缀,我们最多只能对它操作一次,然后就整个直接被删除了,所以它能提供的贡献就很少,我们记录所有连续的串的长度,然后我们最理想的删除条件是,最前面是 阅读全文
posted @ 2020-10-14 00:48 _Kolibri 阅读(132) 评论(0) 推荐(0)
摘要:题意:有一个长度为$n$的序列,找出最大的长度不为$n$的子段和,问最大子段和是否小于所有元素和. 题解:最大子段和我们可以直接用dp来找,每次状态转移为:\(dp[i]=max(dp[i-1]+a[i],a[i])\),而我们不能求长度为$n$的子段和,所以可以跑两次,从$[1,n-1]\(和\) 阅读全文
posted @ 2020-10-09 18:52 _Kolibri 阅读(102) 评论(0) 推荐(0)
摘要:题意:给你一个只含$+\(和\)-\(的字符串,统计它的加减和,然后再给你一个包含\)+,-,?\(的字符串,其中\)?\(可以表示为\)+\(或\)-$,问有多少种情况使得第二个字符串的加减和等于第一个. 题解:首先我们统计第一个字符串的和,然后统计第二个字符串的加减和以及$?\(的个数,然后对于 阅读全文
posted @ 2020-10-09 18:45 _Kolibri 阅读(135) 评论(0) 推荐(0)
摘要:题意:有$n$个数,每次可以选$k(1\le k\le n)$个数,并且得到$a_1+max(0,a_2-1)+max(0,a_3-2)+...+max(0,a_k-k+1)$的贡献,问最少选多少次使得总贡献不小于$m$. 题解:我们从大到小排序,然后二分答案,贪心,如果答案是$k$天,那么对于前$ 阅读全文
posted @ 2020-10-02 22:09 _Kolibri 阅读(83) 评论(0) 推荐(0)
摘要:题意:给你$n$个数,判断是否能构成一个$n$X$n$的回文矩阵,若可以,输出$YES$和矩阵,否则输出$NO$. 题解:如果这个矩阵的行/列元素是偶数的话,很好办,所有出现的数一定是$4$的倍数,我们直接判断然后模拟输出一下即可.如果是奇数,就要麻烦一点,我们首先用桶存一下所有元素的出现次数,然后 阅读全文
posted @ 2020-10-02 21:53 _Kolibri 阅读(147) 评论(0) 推荐(0)
摘要:题意:有$n$个数,你可以任意去除某个位置的元素然后得到一个新数组,使得新数组奇数位和偶数的元素相等,现在问你有多少种情况合法. 题解:先求个后缀和,然后遍历,记录奇数和偶数位置的前缀和,删去$i$位置的元素,意味着原来$i$位置之后的奇数和变成了偶数和,偶数和变成了奇数和,将前缀和与差位的后缀和相 阅读全文
posted @ 2020-10-02 21:47 _Kolibri 阅读(116) 评论(0) 推荐(0)
摘要:题意:有一组数,分别用长度从$[1,n]\(的区间去取子数组,要求取到的所有子数组中必须有共同的数,如果满足条件数组共同的数中最小的数,否则输出\)-1$. 题解:我们先从后面确定每两个相同数之间的距离,然后维护每个$i$位置上的数到后面所有相同数的最大距离,然后我们就可以dp来搞了,我从$1$开始 阅读全文
posted @ 2020-09-29 01:35 _Kolibri 阅读(202) 评论(0) 推荐(0)
摘要:题意:给你一组数$a$和一个数$T$,将这组数分为两组$c$和$d$,定义$f(x)$为数组$x$中任意两个不同元素的和为$T$的个数,问为了使$min(f(c)+f(d))$,应该怎样对$a$分组. 题解:我们可以分成三种情况,假如一组数中所有元素都$< \frac{2}\(,或者\)>\frac 阅读全文
posted @ 2020-09-29 00:48 _Kolibri 阅读(158) 评论(0) 推荐(0)
摘要:题意:给你$n$个区间,从这$n$区间中选$k$个区间出来,要求这$k$个区间都要相交.问共有多少种情况. 题解:如果$k$个区间都要相交,最左边的区间和最右边的区间必须要相交,即$min(r[1],...,r[k])>=max(l[1],...,l[k])$.我们先按左边界对所有区间进行排序,然后 阅读全文
posted @ 2020-09-26 17:30 _Kolibri 阅读(225) 评论(0) 推荐(0)
摘要:题意:给你一组数$a$,构造一个它的子序列$b$,然后再求$b_1-b2+b3-b4...$,问构造后的结果最大是多少. 题解:线性DP.我们用$dp1[i]$来表示在$i$位置,并且此时子序列的长度是奇数的情况,而$dp2$则是偶数情况,对于每个$a_i$,$dp[i]$都可以选它或者不选,拿$d 阅读全文
posted @ 2020-09-25 16:37 _Kolibri 阅读(174) 评论(0) 推荐(0)
摘要:题意:给你一组数,求有多少对$(i,j)$,使得$a_$&$a_\ge a_\ xor\ a_$. 题解:对于任意两个数的二进制来说,他们的最高位要么相同要么不相同,如果相同,那么肯定是满足题目条件的,因为异或是不进位的加法,所以我们只要找到所有最高位相同的数的个数,用桶存下来,然后再对他们求个和就 阅读全文
posted @ 2020-09-25 16:24 _Kolibri 阅读(220) 评论(2) 推荐(0)
摘要:题意:有一长度为$n$的一组数,每次可以交换两个数的位置,问能否在$\frac{n*(n-1)}{2}-1$次操作内使得数组非递减. 题解:不难发现,只有当整个数组严格递减的时候,操作次数是$\frac{n*(n-1)}{2}$,所以我们可以直接遍历判断有无$a[i]<=a[i+1]$即可. 代码: 阅读全文
posted @ 2020-09-25 16:15 _Kolibri 阅读(176) 评论(0) 推荐(0)
摘要:题意:一个台阶由一些单元格组成,如果一个高度为$n$的台阶中有$n$个不相邻的正方形(如图中的样例),就称这个台阶是"好台阶",现给你$x$个单元格,问最多能组成多少个"好台阶"? 题解:题目数据范围最多给了$10^{18}$,而样例中的$10^{18}$最多有$30$个好台阶,而前几个"好台阶"的 阅读全文
posted @ 2020-09-23 12:39 _Kolibri 阅读(142) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页