前缀和
Joey丶sunk
古今成大事者 不惟有超世之才 亦必有坚忍不拔之志
展开
-
POJ - 2566 Bound Found 前缀和数组尺取法-区间和绝对值与有序化前缀和
题意:给定一个序列,包含正负数,给定一个数,找到最接近这个数的一段连续区间的和的绝对值,问这断区间的和是多少,左右下标是多少,,思路:求连续区间的和尽量接近这个数,我们可能会想到尺取法,如果序列中不存在负数的话因为有了负数,尺取的时候我们没法判断怎样移动双指针,完全枚举区间又不现实我们会想怎么转化成可以利用尺取法的一段序列,这时候是没有方向的,然后可以去想,跟一段区间的和有相关原创 2017-11-09 23:59:53 · 301 阅读 · 0 评论 -
Codeforces 1070C - Cloud Computing 思路+线段树+贪心 (2018-2019 ICPC, NEERC)
CF:*2000 题意:有n天,每天需要用k个cpu, 然后给定m个计划,对于每个计划包含 L, R, c, p 表示,从第L天到第R天期间,每天你都可以选用c个cpu,每个cpu的花费为p; 问n天的最小花费;(当某天不能得到k个cpu时,就把能选的全选)思路:首先按暴力的思路选择,肯定是对于某一天 优先选择价格p小的cpu,这样没错,但是复杂度不允许;然后我想到了把m...原创 2018-11-05 15:19:19 · 430 阅读 · 0 评论 -
Codeforces 1067A - Array Without Local Maximums 计数dp+详细推导 (Codeforces Round #518 (Div. 1))
CF: *2000 比起同难度级别的题,dp可真的难做,可能是我做dp的题太少了吧。。。。 题意:给定一个长度为n(1~ 1e5)的序列a[],其中a[i] 应该在1-200中间,但是有的值看不到了,用-1表示,但是知道的是对于 1 < i && i < n 这样的i :a[i] <= max(a[i-1], a[i+1]) ,并且 a[1] ...原创 2018-11-06 22:44:32 · 565 阅读 · 0 评论 -
Educational Codeforces Round 53 (Rated for Div. 2) D. Berland Fair 二分+树状数组 O(n*logn*logn) 思路
题意:给定n个店铺,每个店铺买的东西有个价格a_i,数量有无限个,然后主人公从1号开始走到n号,每走到一个店铺,只要他的钱大于价格,他就要买,然后重复上述过程,直到他不能购买,输出他能买的物品件数;思路:直接模拟的话,必然不可行,但是我们知道模拟时到达一个位置后买不起这里的东西就可以把这个店铺给踢了(好坏!),然后继续后面的过程,如果要是我的钱足够买完一轮的话,我会除一下,取下膜,这样...原创 2018-11-03 13:39:12 · 223 阅读 · 0 评论 -
Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot 二分+前后缀预处理
题意:给定长度为n的字符串,每个字符表示朝上下左右四个方向前进,给定一个目标位置,找一个最小的区间,使得改变这个区间的若干个字符,使得整个串的操作能到达目标位置只需要输出最小区间长度思路:首先暴力的想法就是枚举所有的区间,这样这个区间两边就会有一些操作不会改变,然后我们根据这些操作得到一个位置,跟目标位置比较,看看我们能否通过设置这个区间达到目标位置,显然复杂度很高;然后就可以想到...原创 2018-11-03 13:17:09 · 249 阅读 · 0 评论 -
Mail.Ru Cup 2018 Round 1 D - Changing Array 前缀异或和&贪心
题意:给定n个数的序列,每个数的二进制数看作是k位的,你可以改变任意一个数,使得区间异或和不为零的个数最多,改变的规则可以是把每个数跟 2^k - 1 进行异或思路:首先我们需要知道区间异或和可以有区间前缀异或和得到,,即 a_i-j = sum_j ^ sum_(i-1);还要知道这样的一段区间,不论改变那个数,改变几个,区间的异或和只有两种可能; // 刚刚知道这样的...原创 2018-10-28 19:35:50 · 223 阅读 · 0 评论 -
Codeforces Round #512 F. Putting Boxes Together 推导+树状数组+带权中位数
题意:给定n个物品,每个物品有一个位置和权值,移动一个物品的花费是 移动距离*物品权值,问:把一部分物品合并成相邻的一段,需要的最小花费思路:最优策略是某个物品不动,这个物品左边的依次往右移动,其右边的物品依次往左移动,(下文中的上述情况)反证一下:假设最优情况下不动的这个物品往右移动了,那他和他左边的物品相当于上述情况下增加了他们权值和的花费,而右边的物品减少了权值和的花费,...原创 2018-10-16 19:04:11 · 168 阅读 · 0 评论 -
Codeforces Round #448 (Div. 2) A. Pizza Separation 前缀和
题意:给定n个披萨块,分成两部分 分别连续的,使得两个部分角度和之差最小思路:明显的前缀和问题,枚举其中一部分的连续的长度,然后记录最小的差值可能#include#include#include#include#include#include#include#include#include#include#include#define PI acos(原创 2017-11-27 16:35:10 · 385 阅读 · 0 评论 -
Codeforces 903D - Almost Difference 前缀和+map
题意:求:每个数和他前面的数,跟他差值大于一的数的差值的和思路:对于每一个数ai,减去他之前的所有的数和,这样的话 有一部分会多减,就是跟这个数差值是一的数,这样我们再记录每一个数的数量,可以知道ai+1 和 ai-1 的数目,再相应的加上减去个数就是了#include#include#include#include#include#include#incl原创 2017-12-14 13:33:18 · 672 阅读 · 0 评论 -
HYSBZ - 1303 中位数图 伪前缀和,区间问题
题意:给定 1-n 的排列,找到以 b 为中位数的区间(奇数长度)个数;思路:这个区间要包含 b,可能是b及其左边的一段区间,或者b及其右边的一段区间,或者左右两边的区间组合;开始没有看见 1-n 的排列组合,以为是任意的数,那样不容易搞,后来发现1-n这个排列以后就很简单了,这是这个区间满足b是中位数这个条件的话,那大于他的数的个数等于小于他的数到个数;左右两边分别计数,原创 2017-11-24 22:24:58 · 300 阅读 · 0 评论 -
URAL - 1032 Find a Multiple 前缀和利用+鸽巢原理
首先这个题一定有解每个数对 n 取模后不会影响最后结果,所以计算 sum [ i ] 表示前 i 个的和,当sum [ i ] 等于0时 说明是 n 的倍数否则 我们可以知道 所有的 n 个 sum 包括 1 - (n-1) 这 n-1个数,所以一定有两个 sum 是相同的,也就是说他们之间的和满足n的倍数#include#include#includeusing n原创 2017-11-05 00:14:29 · 244 阅读 · 0 评论 -
Educational Codeforces Round 54 (Rated for Div. 2) A B C D E题解
这些题目挺有意思,起码我都错过,可能这两天精力有点不足,脑子不太够用??? A题链接:http://codeforces.com/contest/1076/problem/A题意:给定一个字符串,最多可以删掉一个字符,使得字典序最小;思路:首先跟原串比较的话,某一个字符大于后面相邻的字符的话,删去这个字符,显然这样字典序就会变小了,我们也知道,如果有多个这样的字符对的话,删掉第一个...原创 2018-11-13 12:37:12 · 200 阅读 · 2 评论