codeforces
m0_37802215
这个作者很懒,什么都没留下…
展开
-
Codeforces AIM Tech Round 4 (Div. 2) B Rectangles(组合数学)
很简单的组合数学啊,统计每行每列,去一下重就行,感觉会溢出,等比赛完吧./* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#include <math.h>#inc原创 2017-08-25 02:16:23 · 226 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) C The Meaningless Game
题意 检测两个数是否可以表示成a=k1^2*k2+k3*k4^2 b = k1*k2^2*k3^2*k4 即一个是平方,一个就是原本的. 我推了一些简单的必要条件,进行堆叠,勉强过了,但是具体还不知道,留待后考吧./* Farewell. */#include <iostream>#include <vector>#include <cstdio>#include <strin原创 2017-10-30 19:46:56 · 176 阅读 · 0 评论 -
Marco and GCD Sequence
好久没做题了,这场的b题还是看了题解.. 算了先说b题把. b题很巧啊,我一直再想一些排列组合,但是好像很难,无从下手. 题解中说,只要算2^((m-1)*(n-1))就可以了,为什么呢?因为空出的最后两排,是必可以完美适配的.自己想,+-1的传递.真的很妙. 当然这题也很妙,题意是说有一个序列,把其中每一个子序列的gcd放入一个set中,给出这个set,让你给出这个序列. 一开始就想啊,原创 2017-11-25 10:53:22 · 205 阅读 · 0 评论 -
cf 600人 bit+大量stl乱搞
Remove Extra One 给出一个排列,问你移除其中那个数,可以使得其中的record最多. record定义为该数前所有数都小于他. 反正就是一通乱搞把,好笨啊./* Farewell. */#include <iostream>#include <vector>#include <cstdio>#include <stack>#include <cstring>#inc原创 2017-12-14 21:10:12 · 209 阅读 · 0 评论 -
cf 644人 二进制 数位dp?
一个数变成他的二进制表示中的一的个数 6->2->1 问2^1000以下所有数中,可以进行这个操作k次的数有多少个. 找到每个数需要几次的思路是容易的,问题是这个组合数的计算过程 1,有自己和没自己,0则直接没自己#include #include #include #include #include #include using namespace std;#defin原创 2018-01-22 21:50:28 · 138 阅读 · 0 评论 -
CF 线段树 gcd改变
Bash and a Tough Math Puzzle 可以过100的数据 但是50w就过不了了,具体不明,没看过题解. 没加第二种情况的返回值..#include #include #include #include #include #include #include #include #include #include #include #include原创 2018-01-22 21:51:27 · 222 阅读 · 0 评论 -
cf Substring(dfs,判环)
给出一个有向图,每个点标一个字母,问你找到一条路径,使得这条路径上出现的某个字母出现次数最多的最大值. 5 4 abaca 1 2 1 3 3 4 4 5 这题的思路是不难想的,一个树上dp,每个父节点用子节点返还的信息更新自己,表达数据为从本处往下走,任何一种字母,最多经过多少次. 但是本题要判一下环,有向图的判联通是这样.bool huan = false;void原创 2018-02-01 15:25:57 · 187 阅读 · 0 评论 -
cf Exams 贪心+二分
n天,有m门考试10 30 0 1 2 3 0 2 0 1 21 1 4为0则代表当天只可复习,1~m则代表可以参加某一门考试,不参加也可以复习. 每一门考试有自己需要的复习时间. 这题的做法是二分后,贪心检测. 实在是不知道怎么做.. 因为这个题目是某种”分开的”,也就是你直接二分,二分后直接贪心,而不是他们混杂在一起,这一点我确实没有想到..这里的贪心,不像一些很难原创 2018-01-25 20:45:19 · 236 阅读 · 0 评论 -
Codeforces Round #461 (Div. 2) D 922D Robot Vacuum Cleaner
给出一些子串,问你如何组合这些子串,可以使得总串中的s-h对最多.4sshhsshhhs=>ssshhshhhs = 18想法是,如果两者交换,可以使得总和增加,那么就交换. 块内块外的细节比较有意思,但是不难.#include <iostream>#include <algorithm>using namespace std;#de...原创 2018-02-09 13:37:40 · 187 阅读 · 0 评论 -
Codeforces Round #457 (Div. 2) 916B Jamie and Binary Sequence (二进制)
给一个数n,让你用k个2的幂来表示他.但是这种表示中,必须要找到最大幂次最小,且字典序最小的那个序列. 例如 23,5 = 3 3 2 1 0 核心思想是,任何一个longlong,都可以二进制表示出来(废话). 但是任何一个二进制数,都可以通过2^x = 2*2^x-1来加一.所以,任何int,都可以被表示(在k足够大的情况下,即便x放到很大的负数,仍然可以.) 做法是,先将n的二进制表原创 2018-01-20 22:57:51 · 137 阅读 · 0 评论 -
Educational Codeforces Round 39 D Timetable
500 有n天,每天m个小时,1为有课,0为没课,每天都必须要从第一节课开始待到最后一节课结束,但是可以翘课,最多翘k节,问你最少只需要在学校呆几天. 都是500的数量级 事实上..这是个很容易的dp.. 先处理一个zt[i][j],意为第i天如果翘j节课,最少再学校呆多少小时 n^3可以处理出来. (这个像一个格子移来移去的方法好像好常用啊,没什么好讲的就是..) 然后就是一个简单...原创 2018-03-08 16:03:46 · 132 阅读 · 0 评论 -
Codeforces Round #438 C 868C Qualification Rounds(思维,非状压dp)
注意到这题很多大佬都是用的类似状压dp的方法,但是我不会啊.. 虽然想了很久很久.. 菜如狗的我 具体看代码,虽然丑,但是清晰. 事实上,只要分四种情况特判即可. 只有第四种有一些难度. (似乎我这个思路挺奇怪的??)/* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string原创 2017-10-05 20:57:23 · 178 阅读 · 0 评论 -
Codeforces Round #437 (Div. 2) B 865A Save the problem! (思维)
这题感觉很棒啊. 想了蛮久的. 事实上跟多重背包没什么关系,似乎只要1,2两个数,就可以构造出所有种类数量./* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#i原创 2017-10-01 19:51:25 · 367 阅读 · 0 评论 -
Codeforces AIM Tech Round 4 (Div. 2) C Sorting by Subsequences (dfs)
也不算dfs吧,因为每一个数只能出现一次,所以他必要找到”下家”才行,也就是他该在的位置,那么这是一个连锁的反应./* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>#原创 2017-08-25 02:18:06 · 623 阅读 · 0 评论 -
Codeforces Round #432 (Div. 2) C 850A Five Dimensional Points(思维)
我要承认这题我真的一点思路都没有. 想着怎么样能弄一个n^2logn的算法出来,还傻乎乎算了好久角啊边啊什么的,好菜好蠢啊.可能自从高中毕业之后就很久没接触几何了,有点懵逼. 这题的核心在于,假设二维平面上,一个点要和其余的点都构不成锐角(以该店为顶点),那么我们可以想象到,其余的点最多有四个,想一想,对吧?也就是一个十字架的情况.那么我们推广一下,三维中,最多的其余点只有6个,对吧?那么我们就原创 2017-09-05 12:54:31 · 235 阅读 · 0 评论 -
Codeforces Round #432 (Div. 2) D 850B Arpa and a list of numbers(gcd 枚举)
一看到感觉是dp,但是dp也太难了呀,然后就滚了. gcd的问题很多时候都是枚举,因为gcd其实是很难递推的一个东西,所以观察一下ai的范围,大概也能猜到. 那么我们枚举每一个gcd,当然,是素数啦,然后发现每一个gcd我们数列的值可以O(n)算出来,可是素数有很多,这样不够,那么我们怎么样更快呢,就是可以利用一个区间的思想,假设x/y=delta,也就是说,假设p是gcd的一个倍数,那么在p-原创 2017-09-06 07:24:04 · 207 阅读 · 0 评论 -
Codeforces Round #433 (Div. 1) B Jury Meeting(思维)
感觉cf的题目很难分类,但是总能给个思维.. 这题卡了很久啊,一开始没看清题目,老觉得有很多很多城市,里面选出个别来参加会议,后来发现是所有城市都要来..T^T 扫一遍,然后更新一个数组,l[i],意为在i天及i天之前所有人都要抵达需要的最少钱,r[i]同理了. 然后枚举l~l+k就可以了 还是那句话,d题从题目信息,思路,代码难度,代码细节都完爆了c题 我好菜啊好菜啊T^T/* xzp原创 2017-09-09 20:51:32 · 195 阅读 · 0 评论 -
Codeforces Round #430 (Div. 2) 842C Ilya And The Tree(暴力)
这题我个人觉得是有问题的. 想了很久,感觉想不出下至n上至nlogn的算法,非常难受,然后上网看题解,发现居然是一个暴力,遍历所有情况,居然不会超时,n^2logn的也行,真是无言以对.既然这样,这题也失去了意义. (好在我没打这场比赛啊,A题都过不了,b题估计也要wa个好几次,C就跟别提了,少说要掉100分,T_T)/* xzppp */#include <iostream>#incl原创 2017-08-31 13:17:16 · 203 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) 849B Tell Your World(暴力+枚举)
这题一开始有点混乱,想着dfs什么的,有点傻. 枚举一号点的各种情况,假设他和之后的某一个点相连,得出该情况下第一条平行线能过几个点,然后根据平行,判断第一个没被第一条平行线过的点,如果这个时候,过的点总和是n,那么就可以了,复杂度是n^2. 最后加个特判,就是只有第一个点单一条线的情况. 我死在特判的if中,if(sg&&(!(((double)a[2]-a[1])==gd))) can =原创 2017-09-02 07:25:34 · 293 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) 848A From Y to Y(思维)
今早补题感觉思路不错,这题昨天连看都没看,真是菜到无法想象了. 一开始看到,有点懵逼,觉得很难,因为有一些,exactly,minimal,这样的词语,搞得好像这题状况很多一样. 但是仔细看会发现,每一种字符串的形式,他的”操作值”,是固定的,那么,这题就不那么难了. 又分析发现,假如是aaaa这种,他们要合在一起,操作值一定是1+2+3=6, aaaaa呢,一定是6+4 = 10,也就是一原创 2017-09-02 08:45:30 · 370 阅读 · 0 评论 -
Codeforces Round #434 (Div. 2) D Polycarp's phone book(字符串,字典树)
其实是个暴力题.. 枚举所有的九位子串,检查它是否会只在某个子串中出现. 具体实现方法是,把所有原串和他们的所有后缀存入字典树,进行一些标记,记录一个边被不同原串经历的次数. 然后就可以枚举遍历. D题还是不看题解做不出,看了题解也不能瞬间搞懂.. 代码强度也很高. 容易re,字典树放大一点. (不懂啊,为什么70还会RE啊??)/* xzppp */#include <iost原创 2017-09-20 16:48:33 · 138 阅读 · 0 评论 -
Codeforces Round #439 (Div. 2) C 869C The Intriguing Obsession(思维+简单组合)
题意. 三组岛屿,要求在岛屿间建桥,每一个桥距离为1.但是每一种建法,必须满足两个同组的岛屿要不就不可达,要不最短距离至少为3. 思路. 考虑到不可出现同组岛屿间有任何桥,所以仅考虑不同组岛屿的情况. 又不能出现两个同组间距离为2的情况,也就是,不可有任意两同组岛屿连在同一岛上.那么,考虑a,b两组岛屿,要使他们之间满足要求,(假设a < b),只需计算A(b,i)*C(a,i)(i=0,1原创 2017-10-07 15:20:09 · 183 阅读 · 0 评论 -
Codeforces 864E Fire(01背包)
记录一下我并没有死.. 虽然每天吃鸡的我 跟死了也差不多 这个01背包感觉有问题啊. 不是很懂他这个排序的道理/* xzppp */#include <iostream>#include <vector>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <map>原创 2017-09-29 22:48:38 · 222 阅读 · 0 评论 -
Codeforces Round #470 Div. 2 D Perfect Security(字典树求异或最小 唯一)
给出一些数a[i],和一些数b[i],要你把a[i]中的数,依次找到b[i]中的某个数进行异或,使得越前的a,得到的值越小即可,但是b的数只能用一次. 显然是用字典树,在插入的过程中,每个数在他的路径上标记,那么在他被选中的时候,删去标记,就可以了.#include <iostream>#include <cmath>#include <cstring&...原创 2018-03-12 15:04:26 · 226 阅读 · 0 评论