返回顶部

随笔分类 -  Codeforces

上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页
摘要:题意:给你两个长度为$n$的01串$s$和$t$,可以选择$s$的前几位,取反然后反转,保证$s$总能通过不超过$3n$的操作得到$t$,输出变换总数,和每次变换的位置. 题解:构造题一定要充分利用题目所给的条件,对于$s$中的某一位i,假如它和$t$中的对应位置不同,我们先对前i个字符取反反转,然 阅读全文
posted @ 2020-07-24 13:04 _Kolibri 阅读(235) 评论(0) 推荐(0)
摘要:题意:有$n$个点,$n-1$条边,每条边正向和反向有两个权值,且每条边最多只能走两次,有$m$次询问,问你从$u$走到$v$的最大权值是多少. 题解:可以先在纸上画一画,不难发现,除了从$u$走到$v$的路径上的反向权值我们取不到,其他所有边的正反权值均能取到,所以答案就是:\(sum-u->v路 阅读全文
posted @ 2020-07-23 11:14 _Kolibri 阅读(106) 评论(0) 推荐(0)
摘要:题意:有一个长度为$n=2^k$的字符串,对于某个字符$c$,我们定义他是一个$c-good$,如果: ​ 1.\(len=1\),并且$s[1]=c$. ​ 2.\(len>1\),\(s[1]=s[2]=...=s[\frac{len}{2}]=c\),并且另外一半是一个$(c+1)-good$ 阅读全文
posted @ 2020-07-18 01:36 _Kolibri 阅读(180) 评论(0) 推荐(0)
摘要:题意:给你一个数组$a$,可以删除其前缀,要求操作后得到的数组是"good"的.对于"good":可以从数组的头和尾选择元素移动到新数组,使得所有元素移动后得到的新数组是非递减的.问最少删除前多少个元素满足条件. 题解:因为只删除前缀,所以我们可以倒着来看,感觉自己搞复杂了. ​ 假如数组从最后一位 阅读全文
posted @ 2020-07-18 01:20 _Kolibri 阅读(292) 评论(0) 推荐(0)
摘要:题意:有两个完全相同的排列,将其中一个的元素按相对顺序插入另外一个排列中,给你操作完的排列,求原排列. 题解:感觉看看样例就能直接写了啊,直接遍历,用桶存数字个数,如果桶为空,直接输出即可. 代码: int t; int n; vector<int> v; map<int,int> mp; int 阅读全文
posted @ 2020-07-18 01:05 _Kolibri 阅读(126) 评论(0) 推荐(0)
摘要:题意:给你三个正整数$x$,\(y\),\(z\),问能够找到三个正整数$a$,\(b\),\(c\),使得$x=max(a,b)$,\(y=max(a,c)\),\(z=max(b,c)\). 题解:容易看出,$a,b,c$中最大的数一定会在$x,y,z$中出现两次,所以我们只要判断$x,y,z$ 阅读全文
posted @ 2020-07-18 01:00 _Kolibri 阅读(174) 评论(0) 推荐(0)
摘要:题意:有一个数组,每次可以修改子数组,但是修改后每个元素的位置都必须变化,求最少修改多少次使得这个数组有序. 题解:假如这个数组本来就有序,我们直接输出0.否则,对于数组两端,假如它们有序,那么我们可以不用做任何操作,直接看中间部分,所以我们分别扫一遍两端,分别找到两端第一个不满足条件的位置,然后我 阅读全文
posted @ 2020-07-16 14:03 _Kolibri 阅读(204) 评论(2) 推荐(0)
摘要:题意:给你一个正整数$n$,求两个正整数$a$和$b$,使得$a+b=n$,并且$LCM(a,b)$要尽可能的小. 题解:首先对于偶数,构造$\frac{2}\(和\)\frac{2}$一定是最优解,对于奇数,我们去找除它本身的最大因子$a$,为什么呢? ​ 我们假设$a$是$n$的一个真因子,那么 阅读全文
posted @ 2020-07-16 13:50 _Kolibri 阅读(243) 评论(0) 推荐(0)
摘要:题意:构造一个长度为$n$的序列,要求所有元素总和不大于$1000$,并且任意两项的和不等于另外一项. 题解:全构造$1$就好了. 代码: int t; int n; int main() { ios::sync_with_stdio(false);cin.tie(0); cin>>t; while 阅读全文
posted @ 2020-07-16 13:08 _Kolibri 阅读(166) 评论(0) 推荐(0)
摘要:题意:有$n$个队员,每个队友都有一个能力值,构造队伍,要求队伍人数*队伍中最低能力值不小于$x$,求能构造的最大队伍数. 题解:大水题,排个序,倒着模拟就行了. 代码: int t; int n,x; ll a[N]; int ans; int main() { ios::sync_with_st 阅读全文
posted @ 2020-07-16 13:02 _Kolibri 阅读(112) 评论(0) 推荐(0)
摘要:题意:石头剪刀布,bot有一串字符,表示他要出什么,你需要事先确定你的出招方案,然后遍历bot的字符串,从$i$位置开始跑一个循环,每次跑都要记录你赢的次数贡献给$sum$,现要求$\frac$最大,求你的最佳处找方案. 题解:贪心,全输出bot出招次数最多的对应即可. 代码: int t; str 阅读全文
posted @ 2020-07-16 12:57 _Kolibri 阅读(175) 评论(0) 推荐(0)
摘要:题意:有一长度为$n$的序列,问是否能找到$a_<a_,a_>a_,(i<j<k)$,如果满足,输出其位置. 题解:直接暴力两头找即可,最坏复杂度:\(O(n^2)\). 代码: int t; int n; int a[N]; int main() { ios::sync_with_stdio(fa 阅读全文
posted @ 2020-07-16 12:38 _Kolibri 阅读(123) 评论(0) 推荐(0)
摘要:题意:有两个$01$字符串$a$和$b$,每次让$a$和$b$进行与运算,将值贡献给答案,然后将$b$右移一位,直到$b=0$. 题解:因为$a$不变,而$b$每次右移一位,所以我们看$b$中$1$的位置在$a$中所对应的位置,从该位置到最低位,所有为$1$的位置都要算一次十进制的数贡献给答案,那么 阅读全文
posted @ 2020-07-11 23:02 _Kolibri 阅读(136) 评论(0) 推荐(0)
摘要:题意:有一个一维的书架,$L$表示在最左端放一本书,$R$表示在最右端放一本书,$?$表示从左数或从右数,最少数多少次才能得到要找的书. 题解:我们开一个稍微大一点的数组,从它的中间开始模拟,$L$就--$l$放进去,$R$就++$r$放进去,然后每次更新某一本书的最新位置,因为后放的肯定离最左侧或 阅读全文
posted @ 2020-07-11 22:30 _Kolibri 阅读(123) 评论(0) 推荐(0)
摘要:题意:有$n$个桩子,$1$表示该位置有一个火炉,可以使两边距离为$r$的范围照亮,问最少使用多少炉子使得所有范围都被照亮. 题解:贪心,首先我们从$r$位置开始向左找,如果找到了就记录这个位置,然后答案+1,然后再从$2*r-1$这个位置开始向左找第一个没有标记的火炉,如果没有找到就直接输出$-1 阅读全文
posted @ 2020-07-11 22:22 _Kolibri 阅读(125) 评论(0) 推荐(0)
摘要:题意:构造一个$n$x$n$只含$0$和$k$个$1$的矩阵,统计每一行每一列$1$的sum,然后构造一个权值最大行和最小行的差的平方加权值最大列和最小列的差的平方的最小和($f(A)=(max(R)-min(R))^2+(max(C)-min(C))^2$的最小值). 题解:假如$k\ mod\ 阅读全文
posted @ 2020-07-07 15:48 _Kolibri 阅读(211) 评论(0) 推荐(0)
摘要:题意:有$a$个蛋糕,$b$个巧克力,第一类人有$n$个,总是吃多的东西(若$a>b$,吃蛋糕,否则吃巧克力),第二类人有$m$个,总是吃少的,可以随便调整这两类人吃的顺序,问是否能让所有人都吃到东西. 题解:首先$a+b\ge n+m$,这个条件是一定要成立的, 然后我们最优先的方法一定是让第二类 阅读全文
posted @ 2020-07-07 15:13 _Kolibri 阅读(173) 评论(0) 推荐(0)
摘要:题意:你需要在长度从$1$~\(k\),宽度无限的网格图中造图形(每个点四周必须连通),问最多能造出多少种不同的图形. 题解:感觉没什么好说的,就是画图找规律,如果$r\ge n$的话(即没有任何空间限制),那么就是1+1+....+n-1,否则就被网格图限制了,这时的方案数只能是1+2+....+ 阅读全文
posted @ 2020-07-07 14:35 _Kolibri 阅读(251) 评论(0) 推荐(0)
摘要:题意:有一个长度$n$的序列,如果$a_<a_{i+1}$,那么可以选择删除$a_$或者$a_{i+1}$,再继续操作,问是否能够将序列删到只剩一个元素. 题解:感觉这种序列变化的题目能用stack写,所以用数组模拟stack写了一发. ​ 首先,假如栈为空或者$a_<a_$,那么就让$a_$入栈. 阅读全文
posted @ 2020-07-07 14:26 _Kolibri 阅读(209) 评论(0) 推荐(0)
摘要:题意:给一个$n$X$m$的矩阵,矩阵中某个数字$k$表示其四周恰好有$k$个不为0的数字,你可以使任意位置上的数字变大,如果操作后满足条件,输出新矩阵,否则输出NO. 题解:贪心,既然能使任意位置加大任意数值,那么我们可以将所有位置都给他填满,这样的话,只要是满足条件的情况就都能这样输出,所以我们 阅读全文
posted @ 2020-07-07 14:07 _Kolibri 阅读(210) 评论(0) 推荐(0)

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