返回顶部

随笔分类 -  Codeforces

上一页 1 2 3 4 5 6 7 ··· 15 下一页
摘要:题意:一个含有$k$个中子的原子,如果$k\le n$,那么它就直接爆炸释放$a_k$大小的能量,否则它会分裂成含有$i$个和$j$个中子的原子(\(i+j=k\)),然后继续分裂.给你$n$和$a_1,a_2,...,a_n$,询问$q$次,每次问你一个含有$k$个中子的原子分裂产生的最小能量. 阅读全文
posted @ 2021-05-10 21:58 _Kolibri 阅读(558) 评论(0) 推荐(0)
摘要:题意:有一长度为$n$的排列$p$,有两种询问,第一种可以询问$p$的两个不同为位置$i$和$j$和一个数$x$并返回$max(min(x,p_i),min(x+1,p_j))$,第二种返回$min(max(x,p_i),max(x+1,p_j))\(.要求你在\)\lfloor\frac{3*n} 阅读全文
posted @ 2021-05-10 21:40 _Kolibri 阅读(114) 评论(0) 推荐(0)
摘要:题意:有两个长度为$n$的数组$a$和$b$,你可以对$a$的子数组反转一次,问你$\sum_^a_i*b_i$的最大值. 题解:一眼区间dp的题目,对于长度为$len$的子区间$[l,r]\(,它可以从\)[l+1,r-1]$转移过来,那么我们设$dp[i][j]\(为子区间\)[i,j]$能得到 阅读全文
posted @ 2021-05-01 15:58 _Kolibri 阅读(44) 评论(0) 推荐(0)
摘要:题意:有一个长度为$n$的排列,A和B进行博弈,每次操作可以在当前数$a_i$的基础移动到另一个位置,但是新的位置上的数$a_j>a_i$且$|i-j|$ mod \(a_i\)=0.A先手,问你所有$[1,n]$的情况中,A从$i$开始的结局情况. 题解:因为$a_i$每次只能移动到比自己大的数的 阅读全文
posted @ 2021-05-01 15:49 _Kolibri 阅读(48) 评论(0) 推荐(0)
摘要:题意:给你$n$个数,每个数都有$3$~$5$个因数,问你将这$n$个数累乘后的因子数. 题解:对于求约数个数,很容易想到唯一分解定理:\(x=p_1^{a_1}*p_2^{a_2}*...p_k^{a_k}\),然后就能计算出因子数:\((a_1+1)*(a_2+1)*...(a_k+1)\).但 阅读全文
posted @ 2021-05-01 14:50 _Kolibri 阅读(59) 评论(0) 推荐(0)
摘要:题意:给你$n$个升序的点,问你是否能构造一颗二叉搜索树,且每个儿子节点和父节点的$gcd>1$. 题解:首先可以预处理每两个点之间的$gcd$,我们先考虑暴力的写法,设$dp[l][r][k]\(表示区间\)[l,r]$以$k$为根节点是否合法,那么如果$dp[l][r]k]$要合法的话,其左儿子 阅读全文
posted @ 2021-04-29 17:34 _Kolibri 阅读(50) 评论(0) 推荐(0)
摘要:题意:有一只老鼠,有$n$个位置,刚开始老鼠可能出现在任意位置,然后每次跑去第$a_i$个位置,如果$i=a_i$那么它就会停下,你可以在第$i$个位置花费$c_i$放置老鼠夹,你想要话费最小的代价来保证能抓到老鼠,问最小代价是多少. 题解:我们可以把数组$a$抽象成一张有向图,容易发现,对于一条链 阅读全文
posted @ 2021-04-29 16:59 _Kolibri 阅读(55) 评论(0) 推荐(0)
摘要:题意:给你$n$个数,有$q$个询问,每次询问一个区间,问你这个区间至少要分成多少个子区间,使得每个子区间的所有元素乘积等于它们的$lcm$. 题解:因为$lcm(x,y)=\frac{x*y}{gcd(x,y)}$,推广一下不难发现,要满足题目条件的话,区间内所有元素的$gcd=1$.即不能有公共 阅读全文
posted @ 2021-04-26 20:29 _Kolibri 阅读(94) 评论(0) 推荐(0)
摘要:题意:有一个$n$x$m$的矩阵,相邻点之间都存在边权,每次可以移动到相邻点,问你每个点移动$k$次后并回到该点的最短边权和. 题解:如果$k$是奇数的话,一定不能走回到自己,因为线段来回来走两次或走一个矩阵,他们的边长和都是偶数.$dp[i][j][k]\(表示点\)(i,j)$走$k$次后回到自 阅读全文
posted @ 2021-04-26 20:11 _Kolibri 阅读(46) 评论(0) 推荐(0)
摘要:题意:给你$n$个数,问你最少删去多少个数,使得剩下的数任意分成两组,两组数的所有元素均不同. 题解:我们先对这$n$个数求和,如果$sum$是奇数,那么我们不用删去任何元素.否则,我们对这$n$个数求整体的$gcd$,并对所有数去掉这些$gcd$.去掉后整体结果不变,但是其中一定会存在至少一个奇数 阅读全文
posted @ 2021-04-26 20:03 _Kolibri 阅读(51) 评论(0) 推荐(0)
摘要:题意:给你一个序列,有$q$个询问,每次询问一个区间$[l,r]\(,你要将这个区间内的数*最少*分成几个子序列,使得每个序列中的众数出现的次数不大于\)\lceil \frac{2}\rceil$($x$为子序列区间长度). 题解:假如区间内众数出现的次数$cnt<=\lceil \frac{2} 阅读全文
posted @ 2021-04-26 17:45 _Kolibri 阅读(52) 评论(0) 推荐(0)
摘要:题意:刚开始有一长度为$n$,空白的空数组,有$q$次询问,每次询问都会选一个区间$[l,r]$将其全部涂成颜色i,现在给你一个数组,问你能否得到所给的数组,$0$表示任何颜色都可以. 题解:首先这题有一个坑点,数组中必须要有颜色$q$,然后,易知两个相同颜色之间一定不能有比它小的颜色出现,那么对于 阅读全文
posted @ 2021-04-26 17:23 _Kolibri 阅读(52) 评论(0) 推荐(0)
摘要:题意:有一个$[1,2,...,n-1$]的序列,要你构造出一个子序列,使得子序列的所有元素的乘积%\(n\)=1. 题解:首先我们构造出的子序列的乘积一定是$k*n+1$,这个值一定和$n$互质. 证明:设$gcd(kn+1,n)=d$,那么$d|kn$,\(d|n\),\(d|1\),而整除$1 阅读全文
posted @ 2021-04-26 17:02 _Kolibri 阅读(84) 评论(0) 推荐(0)
摘要:题意:给你三个长度为$2n$的01串,要你构造出一个长度为$3n$的字符串$s$,使得$s$的两个子序列至少包含两个给出的01串. 题解:因为给出的字符串长度为$2n$且为01串,那么某一个串包含的$0$或$1$的个数必然不小于0,那么我们可以找到两个$0$的个数或$1$的个数不小于0的串,拿出$n 阅读全文
posted @ 2021-04-19 08:32 _Kolibri 阅读(124) 评论(0) 推荐(0)
摘要:题意:有一个$n$x$n$的空矩阵,有三种颜色,Alice每次给你一种颜色,你需要选择另外两种颜色填某一个空格子,不能出现相邻格子同一种颜色,交互题,Alice会根据你的决定来出最优的情况,每次输出颜色和单位. 题解:我们用两个栈将不相邻的格子存起来,栈1用来涂颜色1(Alice选颜色2的时候),栈 阅读全文
posted @ 2021-04-16 09:54 _Kolibri 阅读(64) 评论(0) 推荐(0)
摘要:题意:给你一个长度为$n$的01串$s$,要求你构造出两个长度为$n$的合法括号序列$a$和$b$,如果$s_i=1$,那么$a_i=b_i$,如果$s_i=0$,那么$a_i \ne b_i$,问你能否构造出两个序列,若可以,输出他们. 题解:首先,\(s_1=s_n=1\),这是一定要成立的,其 阅读全文
posted @ 2021-04-16 09:35 _Kolibri 阅读(94) 评论(0) 推荐(0)
摘要:题意:有$m$个党派,$n$个选民,每个选民都有自己要投的党派,你是党派1的首领,富可敌国,你想要贿赂一些选民使得所有党派中,你的票数最高,问最少要花多少钱才能当选. 题解:像这种贪心怎么想都想不出来的题的话,就应该考虑枚举和二分了,我们可以枚举我需要的票数来写,假设我们最终当选的票数为$k$,那么 阅读全文
posted @ 2021-04-14 13:34 _Kolibri 阅读(56) 评论(0) 推荐(0)
摘要:题意:有一组数$a$,如果$gcd(a_i,a_{i+1},...,a)=min(a_i,...,a{i+1},...,a)$,那么$i$和$j$之间就可以连一条边,边权为$min(a_i,...,a{i+1},...,a)$.$i$和$i+1$之间都可以连一天边权为$p$的边,现在给你这$n$个点 阅读全文
posted @ 2021-04-14 11:33 _Kolibri 阅读(113) 评论(0) 推荐(0)
摘要:题意:给你两个正整数$n$和$k$,要你构造一个只包含前$k$个字母的字符串(\([a,a+k-1]\)),使得对于任意两个不相交的连续长度为$2$的区间,相等的子串数最少. 题解:我们一共有$aa,ab,...,ba,bb,...,ca,cb...,a+(k-1),...$,这样的不同长度为$2$ 阅读全文
posted @ 2021-04-14 11:21 _Kolibri 阅读(54) 评论(0) 推荐(0)
摘要:题意:给你两个字符串$a$和$b$,有$q$个询问,每次给你一个区间$[l,r]\(,问你在\)[a_l,...,a_r]$中,子串$b$出现了多少次. 题解:我们可以先预处理出所有$b$在$a$中的起始和末尾位置,用两个数组分别存他们,其中存末尾位置的时候要取负,方便后面二分查找,然后每次询问的时 阅读全文
posted @ 2021-04-08 23:19 _Kolibri 阅读(41) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 15 下一页