![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cf
pbihao
这个作者很懒,什么都没留下…
展开
-
【codeforce 141D】Take-off Ramps 最短路问题
【codeforce 141D】Take-off Ramps 最短路问题原创 2016-10-21 15:28:58 · 465 阅读 · 0 评论 -
【codeforce 141E】Clearing Up 奇葩生成树
【codeforce 141E】Clearing Up 奇葩生成树原创 2016-10-21 15:37:18 · 513 阅读 · 0 评论 -
【codeforce 708e】Recover the String
每一次写codeforce的时候都感觉好像智商不够用,各种套路脑洞。结果下来看题解又莫名.....首先 我们需要知道0和1各出现了多少次,就好够造了,因为每增加一个0或者1 00,11的对数就会增加之前出现的0,才数个,求出了0,1的总个数以后我们先特判不可能的情况,很显然00,11的个数和==1的个数*0的个数。好了,现在来构造,考虑这样一个事实如果01的个数比1多说明了什么?说明之原创 2016-10-24 22:19:51 · 227 阅读 · 0 评论 -
【codeforce 713D】Animals and Puzzle dp+二维rmq
给你一个矩阵T次询问询问(x1,y1)->(x2,y2)之间最大的全部由1构成的正方形的边长首先考虑只要求你求出最大正方形的方法。定义f[i][j]表示以(i,j)为左下角顶点的最大的正方形的边长,那么不难写出转移方程f[i][j]=min(f[i-1][j],f[i][j-1],f[i-1][j-1])+1但是现在不仅需要多次查询,而且每一次的查询区间都不一样,那么二维rmq维护dp原创 2016-10-25 21:16:12 · 304 阅读 · 0 评论 -
【codeforce】XOR and Favorite Number 莫队
只有询问操作,考虑用莫队,基本操作就不说了,不会的自己百度。首先我们处理一个类似于前缀和一样的东西sum[i]=sum[i-1]^cur[i] 然后根据异或运算的性质有 a^b=c 那么 c^b=a所以再摸对算法中,加入一个元素和删除一个元素和之前的状态相比的贡献就只有 sum[i]^k 然后用times数组记录每一个异或值出现的次数加减就好了注意:1.处理 l (左边界)的时候原创 2016-10-17 16:22:50 · 251 阅读 · 0 评论 -
【CodeForces 208E】Blood Cousins dps序+二分
开一个vector记录所有深度的dfs序,每一次查询的时候先倍增到他的祖先找到进出时间戳然后再这一个点的深度进行二分查找这个给出的时间戳就好了#include#include#include#include#include#define maxn 100010using namespace std;int n,f[maxn][20],head[maxn],tot,tim,Ma原创 2016-10-28 08:12:03 · 275 阅读 · 0 评论 -
【cf 570d】Tree Requests
【cf 570d】Tree Requests原创 2016-09-27 17:21:16 · 349 阅读 · 0 评论