摘要: 这么久了才做LCA的题,以前是感觉很难不敢去尝试,现在学习了一番之后发现算法本身并不难。。。。 学习时看了这篇博文:https://www.cnblogs.com/JVxie/p/4854719.html, 我觉得实现的过程最重要,就把博文中Tarjan算法实现的方法以及伪代码贴到下面: Tarja 阅读全文
posted @ 2017-11-17 01:13 Bangbangbanana 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://codeforces.com/problemset/problem/878/A 题意:给出n个位运算操作, 化简这些操作, 使化简后的操作次数不多于5步。 思路:我们可以对二进制每一位上的1, 0, 进行讨论, 如果n次操作后1 -->1, 0 --> 1, 说明这一位要用或 阅读全文
posted @ 2017-10-31 13:30 Bangbangbanana 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 原题链接:Balanced Substring 题意:给出一个n长度的01串,其中含有相同0,1个数的子串被称为“平衡串”,问最长的平衡串的长度。 思路:官方题解里讲的比较清楚,我这里就翻译一下。 我们可以先对0,1的个数求前缀和,记为sum0[i], sum1[i],表示前i个字符中0、1分别有多 阅读全文
posted @ 2017-10-15 16:50 Bangbangbanana 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://codeforces.com/problemset/problem/868/C 题意:有k个队伍参加比赛,比赛有n个预选的题目,有些队伍对已经事先知道了一些题目。问能不能选出若干个题,使没有队伍提前知道了半数以上的比赛题目。 思路:可以肯定的是,只要存在满足条件的选题方案,必 阅读全文
posted @ 2017-10-13 00:25 Bangbangbanana 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1402 思路:借鉴了这篇博文http://blog.csdn.net/hnust_derker/article/details/52550426的思路和做法 从前往 阅读全文
posted @ 2017-10-04 12:38 Bangbangbanana 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 最小正子段和 基准时间限制:1 秒 空间限制:131072 KB 最小正子段和 基准时间限制:1 秒 空间限制:131072 KB 最小正子段和 基准时间限制:1 秒 空间限制:131072 KB N个整数组成的序列a[1],a[2],a[3],…,a[n],从中选出一个子序列(a[i],a[i+1 阅读全文
posted @ 2017-10-03 22:54 Bangbangbanana 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://codeforces.com/problemset/problem/819/B 题意:把一个数列整体往右移k位(大于n位置的数移动到数列前端,循环滚动),定义该数列的“偏差值”:, 求在移动最少k位时,得到的最小“偏差值”。 思路:对于每个数每次往右移,其与i的差值-1,差值 阅读全文
posted @ 2017-10-02 21:18 Bangbangbanana 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://codeforces.com/contest/785/problem/D 题意:有一行包含 “(”与“)”的字符串,若删去其中几个“(”和“)”得到形如“()”、“(())”的字符串,这种字符串叫做RSBS串。 每一种不同的删法得到一个不同的RSBS串,问有几个不同的RSBS 阅读全文
posted @ 2017-09-30 01:02 Bangbangbanana 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 原题连接:http://codeforces.com/problemset/problem/864/E 题意:一个人想从大火中带走一些东西。每次他只能带一个,耗时ti ,价值为pi, 当总时间超过di时不能被带走。问他如何按顺序带走物品使价值总和最大。 思路:背包问题。分为取和不取两种情况1.dp[ 阅读全文
posted @ 2017-09-28 00:46 Bangbangbanana 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 原题连接:http://codeforces.com/problemset/problem/863/D 题意:对a数列有两种操作: 1 l r ,[l, r] 区间的数字滚动,即a[i+1]=a[i], a[l]=a[r] 2 l r ,[l, r] 区间的数字位置反转。 若干个操作之后输出a[b[ 阅读全文
posted @ 2017-09-23 22:38 Bangbangbanana 阅读(244) 评论(0) 推荐(0) 编辑