摘要: 题目链接:http://codeforces.com/problemset/problem/978/C 题目的意思:告诉你几个宿舍,然后每个宿舍有多少个房间,每个房间的编号是一次从第一个加起来的,现在给你一些信封,信封上只有房间号,现在让我们判断这个房间是属于哪个宿舍,在这个宿舍里他是第几个房间。 阅读全文
posted @ 2019-07-10 22:34 _Ackerman 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 【二分查找】 二分查找是一个基础的算法,也是面试中常考的一个知识点。二分查找就是将查找的键和子数组的中间键作比较,如果被查找的键小于中间键,就在左子数组继续查找;如果大于中间键,就在右子数组中查找,否则中间键就是要找的元素。 常规的二分查找: 这里强调下不要忘记 left <= right 的等号 阅读全文
posted @ 2019-07-10 21:00 _Ackerman 阅读(400) 评论(2) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/580/B 题目大意: n个人,告诉你n个人的工资,但是请的客人的收入差值不能够超出给定的数字。每个人还有一个权值,现在从这n个人中选出m个人,使得他们的权值之和最大 思路:首先对每个人的工资进行排序,然后用 阅读全文
posted @ 2019-07-10 19:05 _Ackerman 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/279/B 题目大意:有n本书,阅读第i本书所需要的时间是a[i] 现在你有 t 时间 ,你最多能阅读几本书 (注意读书必须连续读) 连续区间的问题我感觉基本上尺取法都可以解决 ,这里用的也就是尺取法 AC代 阅读全文
posted @ 2019-07-10 18:15 _Ackerman 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/466/C 题目大意: 给你一个长度为n的序列,让你将其分为三个区间,每个区间的和相等,求分的方法有几种? 正好最近学了前缀和,这道题目恰巧是一个前缀和的题 首先我们进行判断该序列的总和是否可以整除3: 如果 阅读全文
posted @ 2019-07-10 17:12 _Ackerman 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 尺取法: 顾名思义,像尺子一样取一段,借用挑战书上面的话说,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后根据实际情况不断地推进区间左右端点以得出答案。尺取法比直接暴力枚举区间效率高很多,尤其是数据量大的时候,所以说尺取法是一种高效的枚举区间的方法,是一种技巧,一般用于求取有一定限制 阅读全文
posted @ 2019-07-10 11:31 _Ackerman 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 【前缀和】 什么是前缀和?前缀和是一个数组的某项下标之前(包括此项元素)的所有数组元素的和。 设b[]为前缀和数组,a[]为原数组,根据这句话可以得到前缀和的定义式和递推式: 定义式 递推式 一维前缀和 二维前缀和 【一维前缀和】 根据上面的定义,我们可以很容易得到 sum[i] = sum[i-1 阅读全文
posted @ 2019-07-10 11:11 _Ackerman 阅读(23068) 评论(2) 推荐(13) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/313/B 题目的意思就是:给你一个字符串它只有# 和 . 字符,给你一段区间让你统计[x,y] ,让你统计这个区间内 s[i] = s[i+1] 的个数 思路: 感觉有点像前缀和的思想。 我们统计前i个 s 阅读全文
posted @ 2019-07-10 10:22 _Ackerman 阅读(286) 评论(0) 推荐(0) 编辑