返回顶部

随笔分类 -  Codeforces

上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要:题意:有一个长度为$n$(odd)的序列,可以更改所有的数的正负,要求最少$\frac{2}$个$a_{i+1}-a_i\ge0$,并且要求最少$\frac{2}$个$a_{i+1}-a_\le0$,求更改后的序列. 题解:因为$n$是奇数,并且随便改正负,那我们直接构造正负正负.....正负这样的 阅读全文
posted @ 2020-07-07 13:42 _Kolibri 阅读(181) 评论(0) 推荐(0)
摘要:题意:给你两个一元多项式$f(x)$和$g(x)$,保证它们每一项的系数互质,让$f(x)$和$g(x)$相乘得到$h(x)$,问$h(x)$是否有某一项系数不被$p$整除. 题解:这题刚开始看了好久不知道怎么写,但仔细看题目给的条件可能会看出一点门道来,我们知道,$c_$是由$f(x)$和$g(x 阅读全文
posted @ 2020-07-01 21:33 _Kolibri 阅读(189) 评论(0) 推荐(0)
摘要:题意:有一个长度为$n$的字符串,你可以选取一个值$k(1\le k \le n)$,然后遍历字符串,每次将区间长度为$k$的字符串反转,求反转后字典序最小的字符串,并输出$k$的值. 题解:这题我是打表找规律写的,观察样例不难发现,当区间长度为$k$时,答案字符串就是将前$k-1$个字符移到了尾部 阅读全文
posted @ 2020-07-01 21:06 _Kolibri 阅读(136) 评论(0) 推荐(0)
摘要:题意:有一个整数$n$,每次可以对加$10x$或减$10x$,问最少操作多少次能得到$n$. 题解:对于某一位上的数,我们可以从$0$加几次得到,或者从前一位减几次得到.所以对于每一位,我们都要求得一个最优解,所以用dp来写. dp数组的一维表示当前的位置,二维表示是用第一种情况还是第二种情况. 而 阅读全文
posted @ 2020-07-01 18:19 _Kolibri 阅读(211) 评论(0) 推荐(0)
摘要:题意:有$n$个数,选择某一对数使二者分别$or$和$and$得到两个新值,求操作后所有数平方和的最大值. 题解:不难发现每次操作后,两个数的二进制表示下的$1$的个数总是不变的,所以要让平方最大,那么只能使大的尽可能大,那我们就统计每个数二进制下的每一位上$1$的个数,然后每个数的位置都尽可能的分 阅读全文
posted @ 2020-07-01 01:06 _Kolibri 阅读(145) 评论(0) 推荐(0)
摘要:题意:有$n$本书,A和B都至少要从喜欢的书里面读$k$本书,如果一本书两人都喜欢的话,那么他们就可以一起读来节省时间,问最少多长时间两人都能够读完$k$本书. 题解:我们可以分$3$种情况来存,即: ​ 1.\(a=b=1\). 2.\(a=1,b=0\). 3.\(a=0,b=1\). 对于2和 阅读全文
posted @ 2020-06-29 13:49 _Kolibri 阅读(239) 评论(0) 推荐(0)
摘要:题意:有一组数,刚开始时$x=0$,每次可以让$x$或让某一个元素+=$x$后$x$,每个元素只能加一次$x$,问最少操作多少次使得所有元素能被$k$整除. 题解:每个元素只能被加一次,我们对每个元素%\(k\),然后记录他们出现的次数(不考虑$k$能整除的情况),因为$x$是递增的,所以如果我们将 阅读全文
posted @ 2020-06-29 13:23 _Kolibri 阅读(293) 评论(0) 推荐(0)
摘要:题意/题解:经典括号匹配题目,不多说了. 代码: int t; int n; string s; int cnt; int main() { ios::sync_with_stdio(false);cin.tie(0); cin>>t; while(t--){ cnt=0; int ans=0; c 阅读全文
posted @ 2020-06-29 13:10 _Kolibri 阅读(120) 评论(0) 推荐(0)
摘要:题意:有一个数$n$,每次操作可以使$n*=2$或$n/=6$(如果能被整除),求最少操作次数使得$n=1$,如果不满足,输出$-1$. 题解:我们只要看$n$的质因子即可,如果要满足条件,那么它的质因子只能含有$2$和$3$,并且$2$的次数不大于$3$的次数.直接去找$2$和$3$的次数即可.( 阅读全文
posted @ 2020-06-29 11:46 _Kolibri 阅读(189) 评论(0) 推荐(0)
摘要:题意:有三个正整数$x,y,n$,再$1$~$n$中找一个最大的数$k$,使得$k\ mod\ x=y$. 题解:先记$tmp=n/x$,再判断$tmp*x+y$的值是否大于$n$,如果是,直接输出$(tmp-1)x+y$,否则输出$tmpx+y$. ps:这题好像可以直接二分搞 代码: int t 阅读全文
posted @ 2020-06-29 11:41 _Kolibri 阅读(141) 评论(0) 推荐(0)
摘要:题意:有一个矩形,有$k$个警报器,警报器所在半径$r$内不能走,问是否能从左上角走到右下角. 题解:用并查集将所有相交的圆合并,那么不能走的情况如下图所示 所以最后查询判断一下即可. 代码: #include <iostream> #include <cstdio> #include <cstri 阅读全文
posted @ 2020-06-22 14:03 _Kolibri 阅读(299) 评论(0) 推荐(0)
摘要:题意:有$n$袋爆米花,某个队伍有$c$个队员,每个队员每秒做多可以吃$t$粒爆米花,但一袋爆米花只能由一个队员吃完,并且一个队员只能吃连续的一袋或几袋,不能隔着吃某一袋,求将所有爆米花吃完的最少时间. 题解:这道题当时想了半天,发现怎么也求不出答案,后来想到了二分答案的办法,将答案代入并模拟题意判 阅读全文
posted @ 2020-06-22 13:44 _Kolibri 阅读(236) 评论(0) 推荐(0)
摘要:题意:给你$m$个长度为$n$的二进制数,求最少选多少个使它们$|$运算后所有位置均为$1$,如果不满足条件,则输出$-1$. 题解:这题$n$的范围很大,所以我们先用$string$读,然后再转化为$bitset$,之后再直接dfs爆搜,对于满足条件的维护一个最小值即可. 代码: #include 阅读全文
posted @ 2020-06-21 15:48 _Kolibri 阅读(189) 评论(0) 推荐(0)
摘要:题意:有$n$堆物品,每次可以将两堆捆成一堆,新堆长度等于两个之和,每次消耗两个堆长度之和的长度,求最小消耗使所有物品捆成一堆. 题解:贪心的话,每次选两个长度最小的来捆,这样的消耗一定是最小的,但是我们需要一个容器来存这些数,这时候很明显要用到优先队列(小根堆),我们将所有元素入队,每次取前两个捆 阅读全文
posted @ 2020-06-21 15:35 _Kolibri 阅读(160) 评论(0) 推荐(0)
摘要:题意:对于正整数$n$,每次可以选择使它变为$n-1$或者$n/t$ ($n\ mod\ t=0$且$t$为奇数),当$n=1$时便不可以再取,问先手赢还是后手赢. 题解:首先特判$1$和$2$的情况,然后显然如果$n$是奇数,一定是先手赢. ​ 如果$n$是偶数,那么我们去找它的奇数因子. ​ 如 阅读全文
posted @ 2020-06-21 15:22 _Kolibri 阅读(208) 评论(0) 推荐(0)
摘要:题意:有一个长度为$2n$的数组,删去两个元素,用剩下的元素每两两相加构造一个新数组,使得新数组所有元素的$gcd\ne 1$.输出相加时两个数在原数组的位置. 题解:我们按照新数组所有元素均为偶数来进行构造,因为旧数组的长度为$2n$,所以无论原数组有多少个奇数和偶数,我们都可以选择删去两个数,使 阅读全文
posted @ 2020-06-21 15:07 _Kolibri 阅读(156) 评论(0) 推荐(0)
摘要:题意:在$1$~$n$中找两个不相等的数使得他们的$gcd$最大. 题解:水题,如果$n$是偶数,那么一定取$n$和$n/2$,$n$是奇数的话,取$n-1$和$(n-1)/2$. 代码: #include <iostream> #include <cstdio> #include <cstring 阅读全文
posted @ 2020-06-21 14:57 _Kolibri 阅读(167) 评论(0) 推荐(0)
摘要:题意:有一组数,每次操作可以将某个数移到头部或者尾部,问最少操作多少次使得这组数非递减. 题解:先离散化将每个数映射为排序后所对应的位置,然后贪心,求最长连续子序列的长度,那么最少的操作次数一定为$n-len$. 感觉不好解释,直接上图,其实就是排序后它们一定是连续的,所以我们就求一个最长的连续的, 阅读全文
posted @ 2020-06-19 13:11 _Kolibri 阅读(293) 评论(0) 推荐(0)
摘要:题意:有一个字符串,要求使用其中字符构造一个环(不必全部都用),定义一个环是k美的,如果它转$k$次仍是原样,现在给你$k$,要求最长的k美环的长度. 题解:我们首先看$k$,如果一个环转$k$的因子次是美的,那么$k$次也一定是美的,然后再看环,假如一个环最少转$d$次是美的,那么这个环的长度$n 阅读全文
posted @ 2020-06-19 12:50 _Kolibri 阅读(244) 评论(0) 推荐(0)
摘要:题意:有一个字符串和一组数,可以对字符串删去任意字符后为数组的长度,且可以随意排序,要求修改后的字符串的每个位置上的字符满足:其余大于它的字符的位置减去当前位置绝对值之和等于对应序列位置上的数. 题解:贪心,我们发现,数组中$0$的位置一定对应字符串中最大的字符,所以我们从这个位置来构造,我循环来找 阅读全文
posted @ 2020-06-19 12:26 _Kolibri 阅读(362) 评论(0) 推荐(0)

上一页 1 ··· 8 9 10 11 12 13 14 15 下一页