CodeForces 455C.Civilization(并查集)(树的直径)
摘要:题意:给出一个由n个点,m条边组成的森林,两种类型共k次操作。 类型一:给出点x,输出点x所在的树的直径的大小。 类型二:给出点x,y(如果x,y在同一棵树中忽略此操作),在x所在树中选一个结点,在y所在的树中选择一个结点,连接这两个结点,要求使生成的树的直径最小。 分析:首先给出公式,假设x所在的
阅读全文
CodeForces 1021B. Chemical table(并查集)
摘要:题意:给定一个n * m的矩形,每个格子有两种颜色,一开始有t个格子上是黑色。对于任意的两行两列,如果交汇的四个格子中有三个是黑色,那么第4个会被自动变成黑色。问你至少需要手动涂黑几个格子,可以使得整个矩形内的格子都变成黑色。 分析:对于三个已经涂黑的格子$(r1, c1)(r1, c2)(r2,
阅读全文
CodeForces 961E. Tufurama(主席树)
摘要:题意:给定一个长度为n(1 ⇐ n ⇐ 3e5)的数组a[i](1 ⇐ a[i] ⇐ 1e9)。求有多少对下标(l, r)(1 ⇐ l < r ⇐ n)是合法的。我们认为一对下标是合法的,当且仅当l < r, a[l] >= r, a[r] >= l三者同时成立。n, a[i]都是整数。 分析:典型
阅读全文
CodeForces 1024C. Array Product(模拟)(分类讨论)
摘要:题意:给定一个长度为n(2 ⇐ n ⇐ 3e5)的数组$a[i](-1e9 ⇐ a[i] ⇐ 1e9)$,n和a[i]都是整数。你的任务是留下一个可以尽可能最大的数字。你可以进行n - 1次下面的操作直到留下一个最大的数字。 操作1:选择一对下标(i, j)满足(1 ⇐ i, j ⇐ n, i !=
阅读全文
CodeForces 558C.Amr and Chemistry(多源BFS)
摘要:题意:给定一个序列ai,你需要通过下面两个操作让序列中的所有数相等。 1.选中某个数ai, ai = ai * 2 2.选中某个数ai, ai = ai / 2(如3 / 2 = 1) 求使全部数都相等的最小操作数。 分析:这是道BFS,需要对每个数都BFS一下,搜索出这个数所能到达的每个数,累加到
阅读全文
CodeForces 572C. Lengthening Sticks(不定方程的根的方案个数)
摘要:题意:给你三条边$x,y,z$,你可以给三条边各自增加任意数值,但是增加的总和最多为$w$。求可以组成三角形的方案数。 分析:设$x y z$的增量为p1,p2,p3,假定$p1 + p2 + p3 = t,t\in{[0, w]}$,题目中要求的增量可以为0,如果按平常来说,对于形如$p1 + p
阅读全文
LightOJ1079. Just another Robbery(01背包)(概率)
摘要:题意:哈利波特想去挣快钱。他决定去抢银行,但是他的朋友-赫敏和罗恩觉得他会有p概率被抓住,他们认为他安全,如果他被抓的概率低于p。 分析:设f[i][j]为前i个银行抢劫j元被抓的概率,如果对于当前不抢劫银行的决策,那么f[i][j] = f[i - 1][j],否则f[i][j] = f[i -
阅读全文
CodeForces 1375D. Replace by MEX
摘要:题意:你被给予了一个数组,包含n个[0, n]的整数。每一次操作,你可以选择数组中的一个元素替换成这个数组的MEX。例如,如果数组是[0, 2, 2, 1, 4],你可以选择第二个元素替换成整个数组元素的MEX,数组会变成[0, 3, 2, 1, 4]。\(MEX的定义为不包含这个于这个数组的最小的
阅读全文
CodeForces 674B.Bear and Two Paths(构造)(思维)
摘要:题意:Bearland有n个城市,从1到n编号。城市通过双向道路连接,每条道路连接了两个不同的城市。Bear Limak想从城市a去到城市b,这里没有直达的路从a直接到b,必须经过一些城市,具体来说,他要从a到b,每个城市必须都经过一次,确切地来说,这里存在一个序列,\(v1,v2,...,vn\)
阅读全文
CodeForces 1374A.Required Remainder
摘要:题意:你被给予了三个整数x,y和n。你的任务是找到一个最大的k,满足$0 ⇐ k ⇐ n$,使得$k\quad mod\quad x = y$。 分析:令k = p * x + y,满足k ⇐ n,即$p * x + y ⇐ n$,那么$p = \lfloor \frac{n - y} \rfloo
阅读全文
CodeForces 1244D. Paint the Tree
摘要:题意:树是一个无向联通的无环图,现在给你一棵树,你有三种不同的颜色1,2,3可以选择,你要把树上的每个点涂一种颜色,使得任何一条由三个不同的点构成的路(这一段路上只能有三个点,就是0-0-0),他们之间的颜色是不同的。现在给你三种颜色,每种颜色染每个点需要的花费。请你给出一种染色的方案,满足以上条件
阅读全文
CodeForces 106C. Buns
摘要:题意:wzc有n份面粉,有m种糕点可以制作。每种糕点的制作除了面粉之外还需要对应的馅料(每种糕点与其馅料是一一对应的)。对于第i种糕点,目前剩余的对应馅料还有ai份,制作一份糕点需要bi份馅料和ci份面粉,可以销售处di元钱。当然他也可以选择不加馅料直接卖,利用c0的面粉制作出一份糕点,可以售出d0
阅读全文
CodeForces 1373D. Maximum Sum on Even Positions(最大连续子段和)
摘要:题目:你被给予了一个n个整数的数组a。数组的下标从0开始。你可以逆置一个数组的子数组(连续的)最多一次,你的任务是使得这个数组的偶数位置的数字的和最大。 分析:奇数长度的子数组翻转并不会改变偶数位置的数字,因此,我们只需要考虑长度为偶数的子区间。偶数长度的子数组我们有两种情况,一种是偶数位置开始,奇
阅读全文
CodeForces 438D. The Child and Sequence(线段树区间更新)
摘要:题意:给定一个数组a[1],a[2],...,a[n],他可以进行如下的m个操作,一个操作可以是如下三个的其中一个:1.打印[l, r]的和,即求$\sum_^a[i]$。2.对[l, r]之间的每个数取模x,\(a[i] = a[i]\quad mod\quad x\)。$3.让a[k] = x$
阅读全文
CodeForces 1373C. Pluses and Minuses
摘要:题意:你有一个字符串只包含+和-,你可以进行一些程序在这个字符串上,这个程序的操作如下。 分析:可以发现,当外层循环结束时,依赖的是内层循环的每一次cur都>=0,意味着当cur初值为这个字符串内部前缀和的最小值的绝对值时(当内部有负数的前缀和时),那么整个程序就会结束。即$cur >= abs(m
阅读全文
CodeForces 2A. Winner(模拟题)
摘要:题意:给定n轮游戏,每轮游戏都有1个人的名字和增加或者减少的分数。比赛结束后,如果一个人的负数为负数,那么他就被淘汰了。我们求出最大分数的人的名字,如果这个最大分数有多个,我们就求出这些最大分数中最先达到>=这个最大分数的人的名字。 分析:用$STL map$模拟,我们不用管最后分数为负的人,第一轮
阅读全文
CodeChef - ECJN209 H - Happy Birthday Horsbug98
摘要:题意:给定6个品牌的智能手机,从1~6编号。这里有N个智能手机,有价格pi和品牌编号bi。每个顾客喜欢给定品牌子集的智能手机,并且他准备买价格为第k大的手机。你会有Q个询问,每个询问给出顾客喜欢的品牌子集和k,输出这个手机价格。 分析:品牌个数很小,我们可以考虑$状态压缩$,我们把所有子集的组合用二
阅读全文
LightOJ - 1038 Race to 1 Again(期望)
摘要:题意:Rimi学到了一个关于整数的知识,就是任何大于1的整数可以被它的任何因子整除。所以,他准备玩这个特性。他选择了一个整数N,每一次,他随机的选择这个整数的因子,并且整除这个数。直到使得这个数变成1。求N到1的期望值。 分析:一个数可以被它的因子整除,那么整除完的新值也是它的因子。我们定义f[i]
阅读全文
CodeForces 1369E. DeadLee
摘要:题意:这里有n种类型不同的食物,还有m个Lee的朋友。Lee有wi盘第i种类型的食物,并且每个朋友都有两种喜欢的类型的食物,第i个朋友喜欢xi和yi类型的食物。Lee将会按顺序叫他的每一个朋友过来吃食物,他会吃这两种食物的一盘,如果只存在一种他喜欢的食物,他会吃掉这种食物的一盘,如果都没有,他会吃了
阅读全文
CodeForces 1369C. RationalLee
摘要:题意:Lee有n个整数a1,a2,...,an在他的背包里面,并且他有k个朋友。Lee把它的背包里面的整数分发给k个朋友,第i个朋友会获得wi个整数,每个整数只会属于一个人。让我们定义一个朋友的幸福度为他得到的数中的最小值和最大值的和。 Lee想让他的朋友的幸福度尽量最大,最大化朋友的幸福值的总和,
阅读全文