前缀和
人菜瘾大aaabbbb
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 52 C(1065C)巧妙的前缀和
题意: 割到平整,每次割的个数不超过k,可以最少割几次。 这个题目有意思的点,就是用前缀和求出每个高度的个数,举个例子,3 1 2 2 4高度为1的数量为所有个数的前缀和,因为每个高度都比1高,每个高度都包含1。 #include<iostream> using namespace std; int h[2*100010],num[2*100010],sum[2*10001...原创 2018-10-22 19:48:48 · 202 阅读 · 0 评论 -
Codeforces 515(Div. 3) E (1066E)二进制求前缀和&&与运算
题意: 现在,给你两个位数为 nn 和 mm 的两个二进制数aa,bb,现在,我们要进行如下操作: 计算aa&bb 答案累加上一个操作的值 bb右移一位,最后一位直接舍弃 现在,请你算出最终的答案,并输出,答案对998244353取模 这题的关键是这个前缀和,因为暴力是1-2e5的和肯定超时,想想如果仅仅是a,b求&怎么运算?肯定是跑一遍n。 算每次b右移的串利用...原创 2018-10-24 19:45:36 · 313 阅读 · 0 评论 -
Educational Codeforces Round 55 (Rated for Div. 2) C 前缀和&思维
题意:n个人,m种课程,每个人掌握一种课程,有个掌握分数,可能是负数,选择一部分人使得掌握分数之和最大,选择的每门课程的人数必须相等 需要注意当前种类当前选择人数如果贡献值是负的就不选了。还看到一些每次排序写法,一开始以为那种复杂度比较大过不了的,emmmm #include<iostream> #include<algorithm> using namespace...原创 2019-01-13 15:04:53 · 119 阅读 · 0 评论 -
Codeforces 611C New Year and Domino 二维前缀和
题意: 关于二维前缀和:二维前缀和用于计算在矩阵中的任意一个矩形中数字之和; 首先我们定义一个sum[][]的二维数组。sum[i][j]表示左上角为(1,1)右下角为(i,j)的矩阵内所有元素的和。 根据容斥定理,可以递推求出所有sum[i][j]。 for(int i = 1 ; i<=n ; i++){ for(int j = 1 ; j<=m; j++){...原创 2019-01-21 19:17:27 · 210 阅读 · 0 评论 -
Codeforces 539 (Div. 2) C.Sasha and a Bit of Relax (前缀异或 // 异或性质 // 计数方法 // 思维)
#include <bits/stdc++.h> using namespace std ; const int Maxn = 3e5 + 10 ; int pre[Maxn],cnt[2][10000010]; int a[Maxn] ; int n ; typedef long long ll; int main(){ cin>>n; pre[0]=0...原创 2019-02-22 20:10:27 · 124 阅读 · 0 评论 -
Educational Codeforces 30 B. Balanced Substring 前缀和&&思维
题意: 给一个01串寻找一个最长字串,这个字串中的0和1数量相等 思路: 将0变成-1,求前缀和,两个位置前缀和大小相等,说明这之间的01数量相等 注意!第0位的前缀和位0 #include<iostream> #include<map> using namespace std; int sum[100010]; char s[100010]; map<i...原创 2019-02-24 09:41:21 · 184 阅读 · 0 评论 -
Codeforces Global Round 2 D.Frets On Fire // 差分+二分+前缀和
题意: n个数,每个数是一个序列的起点,后面无限个数每个数比前一个大1,形成的这n个序列。t次查询,每次查询所有序列的区间l--r,所有区间的l--r中的数形成一个集合,输出这个集合中一共有多少种数。 思路: 这里数的大小1e18说明这是一道规律题,这里有一个规律,对所有数从大到小排序后,求一个差分数组cf,代表两个数之间的差,如果r-l+1就是查询的区间的长度,那么每个数产生序列对这个...原创 2019-04-11 19:44:39 · 179 阅读 · 0 评论 -
牛客小白月赛14 G. many sum
#include<bits/stdc++.h> using namespace std; int a[2000100],b[2000100]; int main(){ int n,a1,m; cin>>n>>a[1]>>m; for(int i=2;i<=n;i++){ a[i]=(a[i-1]+7*i...原创 2019-05-12 00:32:52 · 185 阅读 · 0 评论 -
2019 ICPC徐州网络赛I题(区间整除对数 && 树状数组)
题意: 给一个1-n的排列的序列,m次询问,每次询问区间L—R之间内有多少个整除数对。 思路: 首先需要解决统计整除数对的问题,如果1-n是有序的序列,那么很好统计,每次将i加上i一直加到n,每次加到的数即是i的倍数,这个经典的方法即可以得到每个数与这个数成对的整除数对。对于这个题目,n个数是1-n的一个排列,所以需要稍微修改一下这个方法,将整除数对应的下标位置存起来。对于这个题目需要每个...原创 2019-09-12 15:45:53 · 241 阅读 · 0 评论