![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces
Sega_hsj
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #470 (rated, Div. 2, based on VK Cup 2018 Round 1)题解
A. Protect Sheep 只要wolf的四邻接格子中没有sheep,则肯定有办法放狗使得狼无法接触到羊,把所有空格替换成狗就行了。 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=505; const int maxm=100005; const int...原创 2018-03-11 11:21:05 · 485 阅读 · 0 评论 -
Codeforces 1005E2 - Median on Segments (General Case Edition)题解
连div3的题都不会写了。。。。 题意简单来说就是给你一串数字,求有多少个区间,使得区间内的数字排序后中位数恰好是m。 题解的做法是先找出所有满足中位数大于等于m的区间,然后减去满足中位数大于等于m+1的区间,就可以得到中位数为m的区间数了。 如何统计中位数大于等于m的区间?必须满足区间内不小于m的数值的数量>小于m的数值的数量。于是我们可以使用预处理出noless-less的前缀和k...原创 2018-07-18 20:01:08 · 340 阅读 · 0 评论 -
【补题计划】Codeforces Round #532 (Div. 2)
D. Dasha and Chess 交互题,黑白棋互奕,白棋与某个黑棋同行或者同列即可获胜。 利用棋盘大小和黑棋数量的性质就可以知道策略了。 移动白子到棋盘中心,然后往某个角落走,那么在500步内就能扫过棋盘的棋盘的3/4,而四等分棋盘后黑棋数量多的那三分是超过500个棋子的,所以往那个角落走一定能成功。 #include <bits/stdc++.h> using namespac...原创 2019-01-25 10:23:42 · 262 阅读 · 0 评论 -
【补题计划】Educational Codeforces Round 58 (Rated for Div. 2)
D. GCD Counting 寻找gcd不为1的最长路径 注意到一个数的质因子的数量不多,可以直接做树形dp 让质因子按需排列,然后双指针进行状态转移即可。 #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef unsig...原创 2019-01-25 10:30:51 · 204 阅读 · 0 评论 -
【补题计划】Educational Codeforces Round 59 (Rated for Div. 2)
E. Vasya and Binary String 消除连续相同的子段,消除不同长度的子段的收益不同,要求最大化收益。 搜了一下发现有几乎一样的原题,不过收益是l*l 状态设的还是有点厉害啊,DP的本质就是用尽量少的情况把所有情况表示出来复杂度只与状态数和转移复杂度有关了。 这题状态设置的是dp[i][j][k]表示考虑区间[i,j],且后面有k个与j相同的字符跟在后面(在原序列中不相邻,但是已...原创 2019-02-01 10:36:45 · 287 阅读 · 0 评论 -
【补题计划】Codeforces Round #533+#534(Div.2)
#533 D. Kilani and the Game 模拟一个游戏,每轮每个玩家可以把距离他拥有的领地的ki步内的格子占领,不能跨越别人的领地以及障碍,问最终每个人占领多少个格子。 写了好几种写法,然后调完才发现是不对的。 最终写了分轮dfs,每个人都有一个bfs队列。对于每一轮知道玩家占领格子的最远距离,当队列头是这些格子时就break出去,下一轮才会考虑从这些格子拓展,就能模拟出这题了。 #...原创 2019-02-06 10:52:25 · 246 阅读 · 0 评论