随笔分类 -  Codeforces

摘要:[传送门] 来填徐州 M 题的坑了... M 题题面叙述的就是求子树的重心... 百度百科对树的重心的介绍... 树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个重心,他们的距离和一样。 把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。 一棵树添加或者删除一个节点,树的 阅读全文
posted @ 2019-11-04 20:18 Mrzdtz220 阅读(163) 评论(0) 推荐(0)
摘要:把原字符看成 $X$,每个位置看成 $Y$,每种字符向每个能去的位置连边,就成了一个二分图完美匹配的问题。现要得到字典序最小,那么就枚举每一位要放什么,然后看放完这种字符,剩下的字符的个数和后面能不能形成完美匹配。根据霍尔定理,选择 $X$ 中的一个子集 $s$,和 $Y$ 连边的点集为 $N(s) 阅读全文
posted @ 2019-10-14 22:04 Mrzdtz220 阅读(136) 评论(0) 推荐(0)
摘要:A. Antipalindrome 直接暴力判断就行了。 #include <bits/stdc++.h> using namespace std; const int N = 100; char s[N]; bool check(int i, int j) { while (i <= j) { i 阅读全文
posted @ 2019-10-14 22:00 Mrzdtz220 阅读(125) 评论(0) 推荐(0)
摘要:A. Kefa and First Steps 求最长递增连续子序列。 B. Kefa and Company 排序二分就行了。 #include <bits/stdc++.h> #define ll long long using namespace std; const int N = 1e5 阅读全文
posted @ 2019-10-14 21:46 Mrzdtz220 阅读(144) 评论(0) 推荐(0)
摘要:A. Raising Bacteria 数二进制位有多少个1就好了。 B. Finding Team Member 题意:有 $2n$ 个人,任意两个人配对有一个价值,如果一人的目前的最优配对那个人的最优配对也是自己,那么两个人可以配对。 思路:直接模拟,每次至少能让两个人配对成功。所以复杂度 $O 阅读全文
posted @ 2019-10-14 21:43 Mrzdtz220 阅读(192) 评论(0) 推荐(0)
摘要:[传送门] 题意就是单点加以及查询下标为等差数列位置上的值之和。刚开始看到这道题。我以为一个数的倍数是log级别的。就直接写了发暴力。就T了。还在想为啥,优化了几发才发现不太对劲。然后才想到是$\dfrac {n}{x}$级别的。不过看到$\dfrac {n}{x}$应该就出来了。当$x \leq 阅读全文
posted @ 2019-10-14 18:57 Mrzdtz220 阅读(170) 评论(0) 推荐(0)
摘要:A. World Football Cup #include <bits/stdc++.h> using namespace std; const int N = 60; char name[N][N]; map<string, int> mp; char s[N]; struct P { int 阅读全文
posted @ 2019-10-14 18:48 Mrzdtz220 阅读(155) 评论(0) 推荐(0)
摘要:A. Twins 题意就是问取最少的物品使价值严格大于总价值的一半。 排序就OK了。 #include <bits/stdc++.h> using namespace std; const int N = 1011; int a[N]; int main() { int n; scanf("%d", 阅读全文
posted @ 2019-10-14 18:40 Mrzdtz220 阅读(187) 评论(0) 推荐(0)
摘要:[传送门] 题意就是给一排围栏,每个围栏都有一个高度,查询区间$\left[l, r\right]$之间长度为$w$的子区间的最小高度的最大值。首先,这个最大值肯定是这个区间里的围栏的某个高度,如果是一个未出现过的高度,显然能有更高的高度满足条件。那么就可以考虑在离散化后的高度数组里二分答案,然后c 阅读全文
posted @ 2019-10-14 18:21 Mrzdtz220 阅读(167) 评论(0) 推荐(0)
摘要:[传送门] 其实就是这些数字前面能加正负号,在满足正负号均出现的情况下价值最大。那么就可以无脑DP$f[i][j][k]$表示到了第$i$位,正号是否出现($j$、$k$为$0$或$1$)能得到的最大价值答案就是$f[n][1][1]$$n$为1的时候特判一下就行举几个例子就能发现加正负号这个方法是 阅读全文
posted @ 2019-10-14 18:17 Mrzdtz220 阅读(150) 评论(0) 推荐(0)
摘要:[传送门] 将第二维离散化一下,按第一维从大到小,第二维从小到大,第三维从大到小排序,这样即使第一维相同的情况下也不会重,然后用一棵线段树维护第二维为$I_{i}$时第三维的最大值,插入每一个元素之前先查询$\left[I_{i} + 1, n\right]$的最大值,若查询得到的$x$大于$R_{ 阅读全文
posted @ 2019-10-14 14:27 Mrzdtz220 阅读(128) 评论(0) 推荐(0)
摘要:[传送门] 分块,每一块维护一个单调递增的数组$w$,修改时因为区间加不会影响相邻元素的大小关系,所以在对于一整块的区间加打标记就行了。若不在同一块内就暴力修改每一个数,重新维护一次$w$数组,每次修改最多需要重构两块。查询操作先对每一块的$w$数组二分看存不存在$y$,最优解肯定由第一次出现$y$ 阅读全文
posted @ 2019-10-14 14:23 Mrzdtz220 阅读(170) 评论(0) 推荐(0)
摘要:A. Alternating Sum 就是个等比数列,特判公比为 $1$ 的情况即可。 #include <bits/stdc++.h> using namespace std; const int MOD = 1e9 + 9; const int N = 1e5 + 7; int qp(int a 阅读全文
posted @ 2019-10-13 01:40 Mrzdtz220 阅读(207) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/1114/F 题意:序列$a$,有两种操作,1 区间里的数同时乘上$x$ 2 求区间的积的欧拉函数 线段树好题。 思路:最直观的思路是,线段树每个节点维护的是一个数组,表示这个数每个素因子及出现的次数,欧拉函 阅读全文
posted @ 2019-07-21 21:28 Mrzdtz220 阅读(200) 评论(0) 推荐(0)
摘要:A. Reverse a Substring 题意:给一字符串,把一个区间的字符串倒置 要求倒置后字典序严格变小 只要看这个字符串有没有逆序对就好了 有的话输出 #include <bits/stdc++.h> using namespace std; const int maxn = 3e5 + 阅读全文
posted @ 2019-04-23 19:05 Mrzdtz220 阅读(312) 评论(0) 推荐(0)
摘要:K - Cut 'em all! CodeForces - 982C 给一棵树 求最多能切几条边使剩下的子树都有偶数个节点 如果n是奇数 那么奇数=偶数+奇数 不管怎么切 都会有奇数 直接打印-1 贪心 如果子树中的点是偶数 就可以直接切了 最后答案要减一 因为原来的树也是偶数个节点 会被统计进去 阅读全文
posted @ 2019-03-12 08:32 Mrzdtz220 阅读(262) 评论(0) 推荐(0)
摘要:J - Military Problem CodeForces - 1006E 就是一道dfs序的问题 给定一个树, 然后有q次询问。 每次给出u,k, 求以u为根的子树经过深搜的第k个儿子,如果一个节点有多个儿子,按照儿子从小到大的顺序,依次访问,不存在则输出-1。 预处理记录一下每个节点的出入时 阅读全文
posted @ 2019-03-12 08:26 Mrzdtz220 阅读(170) 评论(0) 推荐(0)
摘要:I - Vasya and a Tree CodeForces - 1076E 其实参考完别人的思路,写完程序交上去,还是没理解啥意思。。昨晚再仔细想了想。终于弄明白了(有可能不对 题意是有一棵树n个点,初始时候每个点权值都为0,m次修改,对v的叶子节点且距离小于d的都加上x 也就是v以下d层包括v 阅读全文
posted @ 2019-03-12 08:20 Mrzdtz220 阅读(162) 评论(0) 推荐(0)
摘要:Paint it really, really dark gray CodeForces - 717E 题意 有一棵树 每个结点是粉色或黑色 每经过一个结点 就改变他的颜色 从1开始遍历 打印出一条路径 让所有结点都变成黑色 思路就是 每到达一个结点 就改变它的颜色 打印这个结点 然后看它的叶子结点 阅读全文
posted @ 2019-03-11 23:25 Mrzdtz220 阅读(198) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/1051/D 看了大佬的题解后觉着是简单的dp,咋自己做就做不来呢。 大佬的题解:https://www.cnblogs.com/tobyw/p/9685639.html 刚看的时候有点感觉 状态肯定是(i, 阅读全文
posted @ 2019-03-10 00:52 Mrzdtz220 阅读(146) 评论(0) 推荐(0)