摘要: 问了学长,感觉还是很迷啊,不过懂了个大概,这个翻转操作,实质不就是在序列后面加上前面部分比如 bw | wwbwwbw 操作过后 wbwbwwbww 而 bw | wwbwwbwbw 这样我们就知道这样的实质了,因此我们只需要把序列再次倍增,求最长的间隔序列即可 阅读全文
posted @ 2018-08-20 18:55 bluefly-hrbust 阅读(610) 评论(0) 推荐(0) 编辑
摘要: 题目链接https://www.nowcoder.com/acm/contest/136/J 这题我还是不找规律了,老老实实推吧,传说找规律也可以,我还是算了 递推式:f(n)=k*f(n-1)+p 是的,你没有看错,这玩意是什么???是高中的数列求和啊,什么你没看出来,这玩意外号——一阶线性递推 阅读全文
posted @ 2018-08-19 19:30 bluefly-hrbust 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一;树的直径:树上的最长简单路径)。再从找到的点出发,找到据该点的最远点,那么这两点就确定了树的一条直径,两点间距即为所求距离 阅读全文
posted @ 2018-08-19 10:48 bluefly-hrbust 阅读(735) 评论(0) 推荐(1) 编辑
摘要: 首先得了解,期望是线性的。。。但是期望的平方和立放却不是emmmmm 我们求的是x^3的期望,明摆着就是求E[X^3]的期望但是。。。E[X^3]!=E[X]^3 不如这样!!! E[(X+1)^3]=E(X)^3+3*E[X]^2+3E[X]+1 E[(X+1)^2]=E[X]^2+2*E[X]+ 阅读全文
posted @ 2018-08-18 16:05 bluefly-hrbust 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 我们知道不满足的肯定是两边大中间小的,这样就用RMQ查询两个相同等值的区间内部最小值即可,注意边界条件 阅读全文
posted @ 2018-08-18 14:57 bluefly-hrbust 阅读(233) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std; char s[200005]; int main(){ int k,n; int zk; int yk; while(~scanf("%d%d",&n,&k)){ zk=0; yk=0; scanf("%s",s); int lens=... 阅读全文
posted @ 2018-08-18 09:23 bluefly-hrbust 阅读(167) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std; char a[200006]; char b[200006]; int main() { int n,m; int lena; int lenb; while(~scanf("%d%d",&n,&m)) { scanf("%s"... 阅读全文
posted @ 2018-08-18 09:22 bluefly-hrbust 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 枚举每个获胜的可能的票数+按照花费排序 阅读全文
posted @ 2018-08-13 23:58 bluefly-hrbust 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 度度熊剪纸条 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1397 Accepted Submission(s): 206 Problem D 阅读全文
posted @ 2018-08-13 10:14 bluefly-hrbust 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 由于序列有序,求其中一个最优解,二分答案即可,注意二分时上边界满足才保存 阅读全文
posted @ 2018-08-12 20:23 bluefly-hrbust 阅读(377) 评论(0) 推荐(0) 编辑