CodeForces div2 & Education
文章平均质量分 76
FearLessNOMAD
I stand in the corner like a tired boxer
展开
-
Codeforces 教育场 Round19 A B 题解
<A>题意:给一个数n,再给一个数k,问 n 能否拆成 k 个大于1的整数的乘积。思路:这题核心思想是分解质因数,上一篇博客我刚传过分解质因数的板子,大家可以直接套用。下面解释下这题的核心思想为什么是分解质因数,首先每个合数都能拆成若干质数的乘积形式,而每个质数的因子只有1和它本身,所以说,若想把某个数拆分成几个因子相乘的形式,那么当且仅当所分解出来的乘积项最多的时候,每个乘积项都是质...原创 2018-06-06 20:43:38 · 350 阅读 · 0 评论 -
Codeforces 59B 题解
题意:在一个序列里找最大的奇数和,和我上一篇博客题解里的B题有点挺像,只不过后者是一定存在答案,而且这题都是正数,这题如果有最大奇数和就打印,否则就输出0。思路:先对1个数的时候进行特判,如果是偶数就输出0,否则就打印这个数,接下来是多个数的情况,先对所有数求和记为sum,如果sum是奇数就直接打印,否则就进行如下操作:对所有奇数累加求和并存进 odd[ ] 数组里,再升序排序,并记录奇数个数p,...原创 2018-06-06 20:59:46 · 183 阅读 · 0 评论 -
Codeforces 922C 922D 题解
题意:给一个数 n,再给一个数 k,问是否存在数对 <i, j> 满足:(1) 1 <= i < j <= k(2) n % i == n % j若存在数对,就不符合题意打印No, 否则打印Yes。思路:我们ACM一个大佬,就是我师父YJH143,他说和中国剩余定理有关,我不懂,就大暴力过的,数据1e18的,当时怂了想写个O(1)的,发现一直写不出来,于是搏一搏单车...原创 2018-06-06 21:19:22 · 422 阅读 · 0 评论 -
Codeforces 987C 题解
题意:给定两个长度为 n 的序列,要求在第一个序列 a 里,找到一个严格递增的子序列,要求 i < j < k 且 a[i] < a[j] < a[k],问你找到的这三个位置i , j , k,在第二个序列 b 里所对应的 b[i] + b[j] + b[k],的最小值是多少。思路:先n^2处理出来每个元素 a[i] 后面比 a[i] 大的 a[j] 所对应的 b[j] 的...原创 2018-06-08 12:52:54 · 590 阅读 · 0 评论 -
Codeforces 988B 988C 题解
<Codeforces - 988B>题意:给定 n 个串,看这 n 个串能否形成一个序列,使得在序列中的任意位置的串都是他下一个串的连续子串,如果有,打印这个序列。思路:由于在某一位置的串是它下一个串的字串,所以这个序列里的串,首先就必须满足按照长度递增,所有按照长度进行结构体排序,然后再 O(n) 看位置 i 的串是否为位置 i + 1 的串的字串即可。这里要提一个黑科技,那就是如...原创 2018-06-16 00:17:13 · 1558 阅读 · 0 评论 -
Codeforces 988D 题解
<988D>题意:给定若干个数,问在其中挑选几个数组成一个集合,使得集合中任意以两个数a, b(a > b)的差值均为2^n。思路:这题要先找规律,这个规律就是,集合中的元素最多有3个,证明如下:假设集合内目前只有三个元素:x,y,z 且 x < y < z则根据题意,有如下关系:z - y = 2^a (1)y - x = 2^b (2)z - x = 2^c (3...原创 2018-06-17 11:20:03 · 417 阅读 · 2 评论 -
挂机水题日记 Cf - 75C
链接:http://codeforces.com/problemset/problem/75/C题意:给你两个数a ,b(1e9范围内),q个查询区间 [ l, r],问你这些区间内能找到的 a 和 b 的公因子最大是多少。思路:水题,枚举 gcd 因子的时候开平方优化完就过了。核心思路就是枚举 gcd (a, b) 的因子,用max维护一下,那么枚举的过程中,如果a,b 的...原创 2018-11-12 15:22:10 · 199 阅读 · 0 评论 -
Codeforces - 994B: pair型优先队列 and Codeforces - 992B
<Codeforces 994B>题意:给定一个 n,一个 k,表示有n个骑士,这n个骑士有相应的等级和价值,每个骑士最多可以杀比他等级低的 k 个人,被杀了的骑士的价值,会累加到杀了人的骑士身上,骑士可以重复被人杀,但是杀了人的骑士获得的价值,不会在被杀时累加到杀人骑士身上,即每个骑士获得的价值,就是被他杀了的那些骑士原本的价值的和,问这些骑士最后能获得的价值是多少。题以解释...原创 2018-06-19 17:51:40 · 348 阅读 · 0 评论 -
Codeforces 1082B(vector的应用) 题解 + 1088C(思维) 题解
Codeforces 1082B: http://codeforces.com/contest/1082/problem/B题意:给你一个串,只包含S和G这两个字符,让你最多交换一次 S和G的位置,使得连续的G的长度达到最长,打印这个最大长度。思路:记两个vector,分别存每个 S 前面有几个连续的 G,后面有几个连读的 G,然后用max维护一下,这两个值的和的最大值,有一点需要...原创 2018-12-06 12:01:26 · 308 阅读 · 0 评论 -
Codeforces 962B 解题报告
题意:给一个由 ' * ' 和 ' . ' 组成的串,有 a, b 两类人,* 不能坐人,. 可以坐人,且 a, b 不能相邻,问该串内最多能坐下多少人。思路:首先根据题意可知,需要比较a, b 的大小,肯定要先放多的,再把少的穿插进去,明白了这个,接下来就是怎么放了。如果a >= b, 当我在串内找到1个 ' . ' ,我就看该点前一个元素是什么,如果是 ' * ' , 那就把这个点赋成 ...原创 2018-04-21 11:31:56 · 223 阅读 · 0 评论 -
Codeforces 808B 解题报告
题意:输入n, m,在n个数中,求所有相邻m个数之和的平均数。思路:这题有两点要注意,第一次WA在样例17,因为数据范围需要开long long,int存不住;第二次TLE在样例21,因为我的循环复杂度是m * (n – m + 1),复杂度超标。int tmp = n - m + 1;int sum = 0;int s = tmp;int p = 1;while(s--) { for(i...原创 2018-05-02 12:09:53 · 225 阅读 · 0 评论 -
Codeforces 471 Div2 B 解题报告
题意:给定一个字符串, 问它能否被分成两个子序列,使得这两个子序列均恰好含有2种不同的字母思路:咳咳,水题啊,标准水题 ~ 我们acm集训队的一位大佬最开始开map写T了......Emmm......说实话由于我很辣鸡不太会用map,所以我选择疯狂特判 ~ 就是根据题意,分成两部分,每一部分有且只有两个不同字母,所以首先,字母种数必须介于2 ~ 4之间,一种或者四种以上都没法满足题意,然后串长必...原创 2018-04-03 22:33:01 · 305 阅读 · 0 评论 -
Codeforces 612C 教育场4 - C 题解
该题题意大致就是,检查括号是否匹配,若不匹配,最少经过多少次修改可以让它匹配,若无论怎么修改也永远无法匹配,输出“Impossible”。属于栈的应用,本人数据结构菜的要死,就朦朦胧胧懂一点点,下面说一下我这题是怎么用栈实现的。我先说下题里括号匹配的模式,举几个例子,<( [ ] )> , 这叫一次性匹配,就是不需要修改括号就自己匹配上了;< ( > ) , 这叫不匹配...原创 2018-04-17 21:52:52 · 492 阅读 · 0 评论 -
Codeforces 962C 解题报告
题意:给定一个数,让你删除其中的若干个数位,使其成为完全平方数,当然也可以不删除,若无论如何删除也无法满足题意,输出-1,求满足题意需要删除的最少数位个数。思路:大体思路就是,暴力枚举,我是直接把给定的数转成字符串scanf("%d", &n);itoa(n, sn, 10);以上两步代码,就是转整型为字符串的,itoa( )函数与atoi( )函数互逆。转换完时候,暴力枚举 n 以内的完...原创 2018-04-22 12:50:26 · 241 阅读 · 0 评论 -
Codeforces 教育场 41 - B - 前缀和
前缀和,复杂度O(1), 高效降维题意:你和你的一个基友在听微积分讲座,你的基友迷迷糊糊的,时醒时睡,大概是昨晚干了什么不可告人的事,身为他的基友,你有一个技能,不过由于你很虚,只能释放一次该技能,该技能就是,你发动时,你的基友会保持苏醒状态b分钟,由于你的基友是个大佬,一听就会,他醒着的时候,只要听到目前讲座上讲的所有定理,就都能学会。给两个数组n[], t[], n[]数组表示每个讲座所讲的定...原创 2018-04-13 00:20:48 · 348 阅读 · 0 评论 -
Codeforces 96B 解题报告
题意:找出不小于输入数X的超级幸运数(10进制中4和7数目相等且不含其他数字的数,范围是X<=1e9)思路:首先我的想法是将1 ~ 1e9中的超级幸运数预处理出来,大概是我对预处理方法理解不到位,没能达到降低时间复杂度的目的,但是通过我做的貌似预处理的这个处理,却可以做到筛选出1 ~ 1e9之内的超级幸运数。所以,我就改用大暴力写了,因为超级幸运数的定义,所以超级幸运数的数位必须有偶数个,同...原创 2018-05-02 11:16:33 · 615 阅读 · 0 评论 -
Codeforces 157B 解题报告
题意:算几个同心圆中存在的红色面积,最外部圆上色为蓝色,然后一直红色蓝色交替上色至最内部圆。思路:我的思路是先将输入圆的半径由小到大进行一次sort排序,然后对圆的个数进行奇偶讨论,再根据交替上色求面积。本人AC代码:#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath&g...原创 2018-05-02 11:23:54 · 220 阅读 · 0 评论 -
Codefoeces 755B 解题报告
题意:a, b两个人比赛,各有一些熟悉的单词,允许存在熟悉相同单词的情况,a先说,问最后谁能赢。思路:我的想法是,先求出共同熟悉单词的数目cnt,再对cnt进行奇偶讨论。如果cnt为偶数,那么就意味着对a更不利,即a获胜的条件较cnt为奇数时更为苛刻。因为a先说,a肯定会从共同知道的单词开始说,这样b就少了一个单词可以应对,而b也是和a一样的想法,所以也会从共同知道的开始说,由此可得出,经过若干回...原创 2018-05-02 11:28:12 · 168 阅读 · 0 评论 -
Codefoeces 259B 解题报告
题意:数独填数思路:赤裸裸的规律题本人AC代码:#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>using namespace std;int d1[5];int d2[5];int d3[5];int mai...原创 2018-05-02 11:51:17 · 174 阅读 · 0 评论 -
Codeforces 847M 解题报告
题意:输入一个数列,如果是等差数列就输出下一项,若非等差就输出末项。思路:在循环前定义一个flag = 1维护等差,循环中有相邻两项不是等差的差值,flag = 0,结束循环。本人AC代码:#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include &l...原创 2018-05-02 12:07:18 · 297 阅读 · 0 评论 -
Codeforces 1140C Playlist 题解
题意: 给你一个n,给你一个k,表示从n个二元组 <x, y> 中最多选出k个,产生一个贡献值。这个贡献值指的是,这选出的最多k个二元组的x属性加和,乘这些选出的二元组的y属性的最小值。求这个贡献值的最大值。思路: 我的想法是,结构体排序加优先队列维护队头处理,结构体本身按照y属性升序排,然后优先队列按照x属性降序,即队头是最小的 ,大体是为了让在x属性降序以后...原创 2019-03-27 19:46:55 · 428 阅读 · 0 评论