Codeforces Round #426 (Div. 2)
摘要:AB都是水题。 C,设A和B是输入的最终分数,A和B一定具有这样的形式:A=a*b*b, B=a*a*b。那么A*B开三次方得到a*b,从而得到a和b,只要a和b存在答案便存在。开三次方使用二分即可。 D题,题意是使序列刚好分成k段,每段的贡献值为这段不同数字的个数,问一种分法使得分数最大,求最大的
阅读全文
CodeForces 787 题解
摘要:A题,因为数据范围很小,所以只要暴力即可,如果能相遇一定范围不大,如果范围很大还没相遇一定是不会相遇的了。正解应当是用扩展欧几里得计算这个方程的整数解,再想办法看看有没有正整数解才是。 B题,只要看懂了题意,用map维护一下即可。真不知道题目给的n是干嘛用的。。 C题,如果不存在loop的情况就用n
阅读全文
Codeforces Round #420 (Div. 2)
摘要:A题,水题,只要暴力即可,要注意的是题意要理解清楚。 B题,枚举每一个x作为矩形的右边,那么其中的贡献是可以用等差数列累和公式计算的,最后对所有可能的答案取一个max即可。该题很友好,使用floor没有被卡精度= =。 C题,由于题目是保证了一定能够使得满足要求,那么如果remove的时候这个栈不是
阅读全文
Codeforces 812E Sagheer and Apple Tree ——(阶梯博弈)
摘要:之前在bc上做过一道类似的阶梯博弈的题目,那题是移动到根,这题是移动到叶子。换汤不换药,只要和终态不同奇偶的那些位置做nim即可。因此这题给出了一个条件:所有叶子深度的奇偶性相同。同时需要注意的是,上次bc中,根节点是不能移动的,因此根节点是终态节点,而这里叶子上面还可以进行操作(可以吃掉),那么就
阅读全文
CodeForces 494B Obsessive String ——(字符串DP+KMP)
摘要:这题的题意就很晦涩。题意是:问有多少种方法,把字符串s划分成不重叠的子串(可以不使用完s的所有字符,但是这些子串必须不重叠),使得t串是所有这些新串的子串。譬如第一个样例,"ababa"和"aba",共有5种方法:{aba}(前3个),{aba}(后3个),{abab},{baba},{ababa}
阅读全文
Codeforces Round #402 (Div. 2)
摘要:现场打的,出3题,被rejudge掉B题= =。 A题,水题,两边数量不一样的总和除以4即可。 B题,写挫了,结果少了一个特判。 C题,水题。直接贪心即可。 D题,比赛时没做出来= =。判断b串是a串的子序列是线性的,那么二分答案即可。
阅读全文
BestCoder Round #92
摘要:现场赛就出了一题= =。 A题,水题。但是几天没写代码有点手生,调试了一会才A= =。 B题,考虑到只要连续的四个即可,那么枚举中间的两个即可。代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #inc
阅读全文
Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined)
摘要:A题,水题,判断所有点是不是入度和出度都相同即可。 B题, 题意搞懂了就是水题。 C题。一方分数mod k以后有余数,那么另外一方至少需要赢一场。根据这个方法判断即可。 D题,构造题,不会= =。 E题,题意是每次可以选一个节点,把儿子的两条相同长度的链合并成新的一条相同长度的链。问最后是否可以成为
阅读全文
Codeforces Round #365 (Div. 2)
摘要:A题,水题。 B题,题意挺简单的,但是要仔细。 C题,以前做过一次,不过这次还是不会= =。具体方法见代码: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #include <iostream> 5 #incl
阅读全文
Codeforces Round #366 (Div. 2)
摘要:A题,水题。 B题,博弈论题,找到的规律是当前数是奇数那么这个子游戏是必败的,否则必胜。那么异或一下即可。 C题,模拟题,考虑到第三个操作如果之前清空到第x条,且当前清空到第t条,如果t比x要小,那么可以忽略清空到t条的操作;另外所有元素最多入队列和出队列一次。那么总的复杂度是O(n)的。代码如下:
阅读全文
Codeforces Round #367 (Div. 2)
摘要:AB都是水题。 C题,DP题。没能够独立的做出来,但是会了以后感觉还是蛮简单的= =。代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #include <iostream> 5 #include <m
阅读全文
Codeforces Round #368 (Div. 2)
摘要:A题,水题。 B题,一开始看题目觉得蛮复杂的,其实很简单。存好图后找可以储存的点,再遍历这些点附近可以开店的点,维护一下答案的最小值即可。 C题,推不出公式= =。见代码好了: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <strin
阅读全文
Codeforces Round #396 (Div. 2)
摘要:AB都是大水题。 C题,题意稍微有点晦涩。但是还是一个比较简单的dp(虽然我不是独立的做出来的= =)。感觉我dp掌握的不是很好啊;看到这题突然想起前几天碰到的一题:不考虑顺序的整数划分问题。C题代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3
阅读全文
Codeforces Round #376 (Div. 2)
摘要:貌似是之前现场做的ABC。C开始没补。 C题,现在想了一会就会写了。并查集维护为一个root的,它们的颜色变成这个集合中颜色最多的那个颜色即可。 F题,题意是选定一个数字,其他数都变成不大于原来那个数的一个整数倍的数,求最大的所有数的和。做法的话,举个例子就能明白了。比如说当前选定的是5,那么5~9
阅读全文
Codeforces Round #371 (Div. 2)
摘要:之前做过E题,是一个DP。 A题,水题,两线段求交集。 B题,set一下判断即可。 C题,水题。但是我写麻烦了,直接转化成二进制再做,比用字符串relize()以后再map要好写得多。 D题,交互题,不做= =。
阅读全文
Codeforces Round #394 (Div. 2)
摘要:A题,水题,但是需要特判"0 0"因为至少至少走了一格= =。 B题,水题,但是补题的时候n=1的情况没考虑(或者说写挫了)导致WA了一发。 C题,数据小,可以直接暴力,用3个数组分别储存每一行变成3种类型的字符需要移动的最少位置。然后三个for来暴力枚举分别由这3行提供3种字符,更新答案即可。代码
阅读全文
Codeforces Round #395 (Div. 2)
摘要:现场打的。出了ABC,结果B被rejudge。。 A题,水题,找找lcm就行,都不会爆int。 B题,也是水题,我找的一个规律是没错,但是写挫了= =,结果又麻烦,又WA。。其实有更好的规律,只要每隔两个位置swap一下即可。 C题,看别人AC代码很短,,但是不是很理解。。我觉得自己的方法也可以接受
阅读全文
Codeforces Round #382 (Div. 2)
摘要:A题,水题。 B题,贪心一发。排序一下,从大到小,先拿个数较少的几个,再拿个数较多的几个即可。证明应该是显而易见的。 C题,本以为log一发即可。但是log的话不能保证深度最深,即不能保证最大分数最大。因此考虑递推,用f[i]表示要得到i分需要的最少的人数,显然要人数最少,最后剩下一个即可。那么要得
阅读全文
Codeforces Round #369 (Div. 2)
摘要:A题,水题,暴力找即可。 B题,水题,但是需要注意n=1的情况。 C题,dp。虽然是个水dp,但是我还是没能够自己独立的写出来。= =太菜了!代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #incl
阅读全文
Codeforces Round #361 (Div. 2)
摘要:我以为这场是昨天没做完的那场= =,结果是以前没做完的一场。。前3题以前做过了。也懒得再看一遍了= =。虽然前面的题感觉再做一遍也不一定做的出的样子- -。不过D和E都是好题,补这场不亏。 D题,题意是问有多少区间,这段区间里面,在a数组中的max和在b数组中的min是相同的。做法是枚举左端点,考虑
阅读全文