Codeforces
Wuliwuliii
谁无暴风劲雨时,守得云开见日明!
展开
-
New Year and Conference【树状数组+哈希】
Codeforces 1284 D 题意: 有N个会议,有A、B两个会议厅,现在我们有「1,2,3,……,N」这N个元素组成的集合S,现在我们定义ss是S的非空子集,我们要让全体的集合ss满足:所有重叠的会议在AB中同时重叠,或者同时不重叠,这样是开心的(YES),否则都是NO。 简化一下题意,对于任意两个会议,如果它们在A会议厅中是有重叠的,那么它们在B会议厅也得是重叠的,或者...原创 2020-01-05 14:32:17 · 484 阅读 · 0 评论 -
Codeforces Round #291 (Div. 2)
题目链接contest#514A. Chewbaсca and Number 不允许有前导零,所以如果第一位是9的话,需要特别考虑,一开始理解错了题意,又WA了呜呜呜……#include <iostream>#include <cstdio>#include <cmath>#include <string>#include &...原创 2020-01-03 16:03:30 · 136 阅读 · 0 评论 -
Codeforces Round #290 (Div. 2)【DFS、拓扑排序、DP、最大流】
题目链接A. Fox And Snake 蛇形填数,C语言基础问题。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>#include ...原创 2019-12-26 14:22:35 · 223 阅读 · 1 评论 -
K for the Price of One【Codeforces 1282 B】【二分答案(整体不单调、局部单调)】
Codeforces Round #610 (Div. 2) B 首先,题意有一处坑点,那个用K次的折扣是可以无限次使用的,但是前提是必须要刚好恰好K个的时候才可以用这个,不然只能单买。 然后一开始就想到了二分答案,但是我拿整体去二分答案了,这是不对的,因为整体是没有单调性的,因为我们取的单买的数量可能会变多,但是假如我们现在用的是一个更大的前去使用“K”这个技能的话,价钱是不一样的,...原创 2019-12-25 10:52:26 · 270 阅读 · 0 评论 -
Petya and Exam【Codeforces 1282 C】【贪心】
Codeforces Round #610 (Div. 2) C 有N道题目,题目有简单与困难之分,简单的题目花费A分钟,困难的题目花费B分钟,那么考试时间一共有T的情况下,我们是可以提前交卷的,但是有些时间限制,就是譬如说你现在第x分钟交卷,但是你这时候就是必须要完成所有的t[i]≤x的题目才行,不然就使算作0分。 所以,这里直接按照限制时间t[i]升序排列来进行贪心即可。每次看看能...原创 2019-12-25 10:32:20 · 490 阅读 · 0 评论 -
Codeforces Round #288 (Div. 2)【贪心、单调队列、欧拉通路、STL栈】
题目链接A. Pasha and Pixels 一个贪心判断它是在四周的那一个方块内满足条件即可。直接贪心。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <alg...原创 2019-12-24 21:57:22 · 136 阅读 · 0 评论 -
Codeforces Round #287 (Div. 2)【贪心、几何、二叉树性质、数位DP、最短路】
题目链接A. Amr and Music 简单贪心,直接sort一下,先从小的开始选就可以了。 然后直接存答案输出。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include ...原创 2019-12-23 23:41:40 · 170 阅读 · 0 评论 -
Educational Codeforces Round 78
题目链接A. Shuffle Hashing 开场即读加题,全称心态爆炸,上来看了看,签到题,哈希?然后再读了读,尺取吧,过了TEST……然后交,WA2,emmm???然后魔改一下,会不会尺取的时候出了什么问题?魔改,继续……WA2???时间过去了半小时,第一次敲那么久的A…… ,开B,然后回来再写了A(91分钟才读明白题…… ) 结果,题目竟然是可以移动位置,但是字母的数目是不会...原创 2019-12-20 11:07:41 · 233 阅读 · 0 评论 -
Spaceship Solitaire【Codeforces 1266 E】【思维】
Codeforces Global Round 6 E 题意:主人公想要造宇宙飞船,所以需要N种物资,每种物资的需求量是a[i]个。然后呢,如果我们没有任何加速器的话,总的时间需求是,但是现在我们有“里程碑”加速器! 里程碑加速器是这样的「S,T,U」我们如果有T个S物资的话,我们可以免费获得一个U物资。 思路:那么,不难发现,如果U这个物资的数量不足a[U],那么就是可以减少一...原创 2019-12-18 16:05:02 · 453 阅读 · 0 评论 -
Decreasing Debts【Codeforces 1266 D】【流入、流出量 + 思维】
Codeforces Global Round 6 D 一道思维题,也不知道为什么总是想建图,可能是想到最终的状态一定是多个菊花图的形式了吧。 我们可以知道最终的状态是可以变成:或者是指针朝内的形式。 但是,事实上,并没有那么的复杂。 我们可以看到每个点的流出和流入的量,我们把每个点设置一个流的值,是由流入的值减去流出的值。 然后呢,我们可以肯定的是,所有负的权...原创 2019-12-18 15:43:28 · 470 阅读 · 0 评论 -
Codeforces Round #367 (Div. 2)【贪心、差分、DP、字典树、二维链表】
Codeforces Round #367 (Div. 2)A. Beru-taxi 就是问,我们知道一个点,从其他点到它的最少花费的时间是多少?#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring&g...原创 2019-12-17 16:20:44 · 187 阅读 · 0 评论 -
Working routine【Codeforces 706 E】【二维链表】
Codeforces Round #367 (Div. 2) E 可以说是一道模拟题了,写了有些时候,可能是太菜了吧…… 题意:给出一个原始矩阵,之后有Q次操作,我们将两个矩阵交换位置,题目中保证两个矩阵不相交,给出的是两个矩阵的左上方的端点,以及它们对应的高和宽。 思路:很明显,题目中只有最多1e4次操作,矩阵的边最大也才不过是1e3,所以很明显的,我们可以O(1e4 * 1...原创 2019-12-17 16:12:10 · 204 阅读 · 0 评论 -
Vasiliy's Multiset【Codeforces 706 D】【01字典树模板问题】
Codeforces Round #367 (Div. 2) D 题意:有如下三种操作:"+ x"向堆中加入值为x的值; "- x"从堆中减去一个值为x的元素,保证x在堆中; "? x"询问堆A中与x异或值最大的数的值是多少,输出最大值。然后就是字典树的一般操作了,可惜卡C卡了点时间,赛后十分钟才写完。 记住一种特殊情况,如果你没往堆中放0,堆中也是有0的。#inc...原创 2019-12-17 16:03:07 · 119 阅读 · 0 评论 -
Hard problem【Codeforces 706 C】【DP】
Codeforces Round #367 (Div. 2) C 可以说是一道简单的DP了,但是一开始的时候没有看到写在外面的提示,是可以令它们相等的,也就是"a == a"也是认为是可行的。 然后就是一直WA 8,无解了大概一个小时了吧,想起来看看提示,然后…… 晕 可以DP,也可以用优先队列的Dijkstra或者是SPFA跑,都是可行的,想写的简单一点的话,就是用DP来写吧。...原创 2019-12-17 15:58:37 · 288 阅读 · 1 评论 -
Nearest Opposite Parity【Codeforces 1272 E】【SPFA】
Codeforces Round #605 (Div. 3) E 简单的说,就是每个点可以从i这号点跳转至(i - a[i]) 或(i + a[i])点,然后问的是从偶数点跳至奇数点,从奇数点跳至偶数点的最少次数是多少。很容易想到的是反向建边,然后去跑SPFA就可以了,因为这里的边特别的少,SPFA的O(NM)的复杂度是完全可以的。#include <iostream&g...原创 2019-12-16 09:17:04 · 292 阅读 · 0 评论 -
Catowice City【Codeforces 1248 F】【Tarjan】
Codeforces Round #594 (Div. 2) F 这道题的解法还真是不少,写了个枚举也可以做这道题,当然Tarjan自然也是可以的。 我一开始没捋清楚思路,再想想,发现,我们看到审判者,他们都会指向一些参赛选手,那么我们是不是可以尽力去找那些没有指向的人,也就是出度为0的点,那么他们岂不是就没有指向了。然后我们可以把有关系的缩点,然后再DAG上找到一个审判就可以了,剩下...原创 2019-11-09 00:26:03 · 389 阅读 · 0 评论 -
Catowice City【Codeforces 1248 F】【BFS】
Codeforces Round #594 (Div. 2) F 一开始是听闻有人说这是一道Tarjan好题,然后就点进来做了,但是想来想去,却想了个另类的法子。 我们可以看到,如果N个人都要选择的话,那么每个人都只能是审判者,或者是参赛者,所以,我们可以假设第一位是两种职业中的一种,然后去搜索一下,复杂度O(N)。并且,题目中要求的是审判者和参赛者都至少为1个人,所以会有非法的情况。...原创 2019-11-08 23:11:51 · 226 阅读 · 0 评论 -
Connected Components?【Codeforces 920E】【补图的联通块的个数】
Educational Codeforces Round 37 (Rated for Div. 2) E 怎么说呢,跟这道题是一样的,这道题就变得很模板了。原题!!!#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <...原创 2019-11-07 20:57:52 · 161 阅读 · 0 评论 -
0-1 MST【补图的联通块个数】【Codeforces 1243 D】
Codeforces Round #599 (Div. 2) D 首先,这道题中,补图是可以通过0权值的边权链接起来的,那么就是最优解,但是这里的N有1e5,所以直接用补图的话会开不下这么大的空间还有不足这样的时间。所以在这里我们就需要去想办法了。 在这里,我的做法是,我们一开始给出一个集合T,集合T中放有所有的元素1~N,我们一开始从集合中取出一个点u,然后把与它连边的点作为遍历过的...原创 2019-11-07 20:05:20 · 297 阅读 · 1 评论 -
Daniel and Spring Cleaning【数位DP】【Codeforces 1245 F】
Codeforces Round #597 (Div. 2) F 这道题化简一下就是让我们求有上下限的2进制数中有几对满足每一位的相"&"值不为1的对数。 那么,首先看到这个1e9就会让人想到数位DP,然后接着就是如何去求的这样一个问题。 我们不如将上下限看作一个二维空间,那么就是这样的一张图: 我们现在想知道的是图中的矩形块的面积,也就是最后的答案。 那...原创 2019-11-06 19:58:21 · 206 阅读 · 0 评论 -
Codeforces Round #364 (Div. 2)【贪心、数学、尺取】
Codeforces 701A. Cards 直接贪心即可,写法各异。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>#include...原创 2019-11-06 09:49:28 · 122 阅读 · 0 评论 -
Fix a Tree【Codeforces 699 D】【dfs + 树的性质】
Codeforces Round #363 (Div. 2) D 题意:有N个点,每个点i都有一个父节点p[i],如果“i == p[i]”则是说明i结点是根结点,现在我们给出这样的1~N的p[i],这可能是不合法的,问,我们应该最少改变多少个使它变成一棵合法的树。 思路:有两种情况,一种是多棵树,另一种是一个环,也就是这个块是没有树,他们构成了一个环,如果是一个环的话,拆解环上任意一...原创 2019-10-30 22:01:38 · 191 阅读 · 0 评论 -
Vacations【Codeforces 699 C】【dp】
Codeforces Round #363 (Div. 2) C 有四种状态:gym不开,contest不开;gym不开,contest开;gym开,contest不开;gym开,contest开;然后我们可以选择休息一天,也可以选择打,但是如果昨天做了gym今天是不能做gym的,同理,昨天做了contest,今天也是不能打contest的。现在问的就是最少休息的天数是几...原创 2019-10-30 21:56:31 · 199 阅读 · 0 评论 -
One Bomb【Codeforces 699 B】
Codeforces Round #363 (Div. 2) B 简单思维题。 问的是我们可以选哪个点(或者没有点能选)可以打一个“十”字,然后求这个点的坐标,SPJ问题。 因为,N、M比较的小,所以直接枚举了。#include <iostream>#include <cstdio>#include <cmath>#include ...原创 2019-10-30 21:52:58 · 136 阅读 · 0 评论 -
Launch of Collider【Codeforces 699A】
Codeforces Round #363 (Div. 2) A 简单题。 问的是,有向左和向右的两种粒子,问最早什么时候粒子会撞到一起,每次移动一个单位,并且输入的点坐标是升序的。#include <iostream>#include <cstdio>#include <cmath>#include <string>#in...原创 2019-10-30 21:51:01 · 192 阅读 · 0 评论 -
Friends and Subsequences【Codeforces 689 D】【线段树+二分答案】
Codeforces Round #361 (Div. 2) D 我们现在有两个长度为N的区间,我们现在想知道满足在第一个区间的最大值与第二个区间的最小值相等的区间的这样的区间个数有多少个? 首先,我们可以知道,区间的最大值如果按某个端点来升序的话一定是线性关系的,同理最小值,所以我们完全可以枚举一维,然后二分一维,又有查询区间最值的复杂度是log()级别的,所以总的复杂度就是。...原创 2019-10-30 19:34:42 · 192 阅读 · 0 评论 -
Puzzles【Codeforces 697 D】【树形DP + 期望DP】
Codeforces Round #362 (Div. 2) D 我们从1号结点开始,给每个结点标序,问的是每个结点的序号的期望是多少,输出这N个结点的期望。那么1号点的期望一定就是1了,对于其他的点呢? 可以举例这样的一幅图,首先我们可以确定1(因为是根结点)的期望一定是1,那么在看3号结点的期望应该怎么计算呢? 3号结点的期望是,但是我们可以看成从上一个结点1号点推过来的...原创 2019-10-30 13:32:16 · 216 阅读 · 0 评论 -
Lorenzo Von Matterhorn【Codeforces 697 C】【map + 模拟LCA过程】
Codeforces Round #362 (Div. 2) C 题目说,每个点(价值为i的点)的下面的两个点分别是“2 * i”和“2 * i + 1”,那么不就是一个二叉树的嘛?这样子就算N、M是1e18,那样的每次找最近公共祖先结点的复杂度也不过是log2(1e18)而已。所以我们可以直接把这条链上的每一条边给加上权值,查询也是一样的操作,因为Q只有1000次,所以,我们用个map维护...原创 2019-10-30 12:41:52 · 314 阅读 · 0 评论 -
Barnicle【Codeforces 697 B】【模拟科学计数法】
Codeforces Round #362 (Div. 2) B 就是给你一个科学计数法,让你转换成为一般的数。注意一点,0.001000e1 = 0.01这类的细节,其他倒是没什么了。#include <iostream>#include <cstdio>#include <cmath>#include <string>#i...原创 2019-10-30 12:36:27 · 260 阅读 · 0 评论 -
Pineapple Incident【Codeforces 697 A】
Codeforces Round #362 (Div. 2) A 简单题#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>#include ...原创 2019-10-30 12:33:59 · 152 阅读 · 0 评论 -
Mike and Chocolate Thieves【Codeforces 689 C】【二分答案】
Codeforces Round #361 (Div. 2) C 题意:题目中给你一个M,是问你的是,如果我们现在方案数为M,请问小偷的背包最少应该容量为多大,求这样的N。那为什么可能存在-1呢?是因为我们不可能存在这样的方案数M。 思路:我们可以去二分答案这样的背包上限,然后我们去询问它对所有的的倍数关系,也就是答案的数量了。可千万要把i开的大一点,差不多要到5e5左右,一开始只开了...原创 2019-10-29 10:53:13 · 148 阅读 · 0 评论 -
Mike and Shortcuts【Codeforces 689 B】【最短路】
Codeforces Round #361 (Div. 2) B 题意:有N个十字路口,我们是从十字路口1号出发,问到1~N这几号十字路口的最短举例,然后,对于每个十字路口,都有一个近路可以走,路径长度都是1,并且是单向边。最后输出从1出发到1~N这些点的最短举例。 思路:我们可以直接建边,但是别忘了考虑,我们可以从i点回到i-1这个点的可能性,因为有可能回溯回来再走是更优的解。...原创 2019-10-29 10:34:37 · 167 阅读 · 0 评论 -
Mike and Cellphone【Codeforces 689 A】
Codeforces Round #361 (Div. 2) A 很容易看到,只有10个数,可以直接对给出的N个数进行移动,很多人没有考虑到8这个点下移时候是0的情况,所以出错了(WA 23 TEST)。#include <iostream>#include <cstdio>#include <cmath>#include <string...原创 2019-10-29 10:19:22 · 145 阅读 · 0 评论 -
Salary Changing【Codeforces 1251 D】【二分答案】
Educational Codeforces Round 75 (Rated for Div. 2) D 题意:有N名员工和S元钱,然后我们想知道在每一名员工有薪资要求在[li, ri]的情况下,我们如何在总共就S元钱的情况下做到员工薪资的中位数最高? 思路:我们可以去二分答案这个中位数,那么,如果说右区间小于这个中位数的,我们直接加他的左区间,同样的,当右区间大于这个中位数且左区间小...原创 2019-10-25 17:45:41 · 652 阅读 · 0 评论 -
Voting【Codeforces 1251 E1 && E2】【贪心】
Educational Codeforces Round 75 (Rated for Div. 2) E2Now elections are held in Berland and you want to win them. More precisely, you want everyone to vote for you.There are????nvoters, and two ways...原创 2019-10-25 13:58:37 · 665 阅读 · 0 评论 -
Robbers' watch【Codeforces 686 C】【DFS】
Codeforces 686 C 题意还是比较的难懂的,得亏最后给理解了。 题意:我们给一天的时间做了新的定义,一天中,有N小时,每个小时呢,有M分钟,然后呢时针是按照7进制的,也就是7小时(分钟)其实就是10小时(分钟)。 题目让我们求的是各数位都不相同的七进制的种类数。 首先,如果说小时转化成7进制加上分钟转化为7进制的长度会大于7,那么,无论怎样都不会有答案的了。...原创 2019-10-24 21:34:02 · 343 阅读 · 0 评论 -
Codeforces Round #595 (Div. 3)【AK】【并查集、数学、dp、差分】
Codeforces Round #595 (Div. 3)A. Yet Another Dividing into Teams 手速题#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#i...原创 2019-10-23 21:27:32 · 518 阅读 · 0 评论 -
Codeforces Round #553 (Div. 2)
A. Maxim and Biologytime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputToday in the scientific lyceum of the Kingdom of Kremland, th...原创 2019-04-19 15:32:42 · 609 阅读 · 0 评论 -
Codeforces Round #589 (Div. 2)【数学 + 构造】
A题 Distinct Digits 因为数的大小最长也就是5位,所以直接暴力求解即可,复杂度O(5 * N)。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <alg...原创 2019-10-03 21:18:42 · 220 阅读 · 0 评论 -
Sequence Sorting【Codeforces 1241 D】【思维+LIS最长上升子序列】
Codeforces Round #591 (Div. 2, based on Technocup 2020 Elimination Round 1) D 题意:给你有N个数,我们可以把其中的某个值为“val”的数集体移动到队首或者队尾,我们需要知道最少需要移动多少次。 思路:我们可以去先求的总的元素的种类数为all,那么接下去我们可以考虑的是不需要移动的数的个数,首先,先不看重复,假...原创 2019-10-08 10:49:10 · 329 阅读 · 3 评论