首页 > 其他分享 >Day2 前缀和 差分 双指针

Day2 前缀和 差分 双指针

时间:2023-10-14 11:46:04浏览次数:31  
标签:前缀 int Day2 差分 long ans 1005 include

前缀和

Luogu P2004 领地选择

二维前缀和板题,注意开 long long

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

int n, m, c, x, y;
long long ans, a[1005][1005], s[1005][1005];


int main() {
	scanf("%d%d%d", &n, &m, &c);
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			scanf("%lld", &a[i][j]);
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1] + a[i][j];
	for (int i = 1; i <= n - c + 1; i++) {
		for (int j = 1; j <= m - c + 1; j++) {
			long long val = s[i+c-1][j+c-1] - s[i+c-1][j-1] - s[i-1][j+c-1] + s[i-1][j-1];
			if (val > ans) ans = val, x = i, y = j;
		}
	}
	cout << x << ' ' << y;
	return 0;
}

Luogu P3397 地毯

前缀和 + 差分


实际上枚举也是可以过的

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

int n, m, a[1005][1005], s[1005][1005];
int x1, y1, x2, y2;

int main() {
	scanf("%d%d", &n, &m);
	for (int i = 1; i <= m; i++) {
		scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
		for (int l = x1; l <= x2; l++)
			for (int r = y1; r <= y2; r++)
				a[l][r]++;
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++)
			cout << a[i][j] << ' ';
		cout << '\n';
	}
	return 0;
}

Luogu P8772 [蓝桥杯 2022 省 A] 求和

对于 \(a_i\),计算 \(a_i\) * \((a_{i+1} + ... + a_n)\),可以使用前缀和

#include <iostream>
#include <cstdio>

using namespace std;

int n, a[200005], s[200005];
long long ans;

int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
		scanf("%d", &a[i]), s[i] = s[i-1] + a[i];
	for (int i = 1; i <= n; i++) {
		ans += 1LL * a[i] * (s[n] - s[i]);
	}
	cout << ans;
	return 0;
}

标签:前缀,int,Day2,差分,long,ans,1005,include
From: https://www.cnblogs.com/Gmor-cerr-blog/p/17763946.html

相关文章

  • Laravel 设置表前缀
    Laravel是一个流行的PHP框架,被广泛地应用在Web应用程序的开发中。在Laravel中,我们可以非常方便地操作数据库,不仅支持多种类型的数据库,还提供了丰富的ORM实现,比如EloquentORM,使得我们可以非常高效地与数据库进行交互。在一些情况下,我们可能需要给Laravel的表添加一些......
  • Trie-前缀查询
    Tire专门为处理字符串设计的。平衡二叉树,查询复杂度是O(logn)但是100万个条目,2^20,logn大约20.但是Tire的复杂度,和字段中一共有多少条目无关!世间复杂度为O(w),w为查询单词的长度大多数的单词长度小于10图示整个字符串以字母为单位拆开cat、dog、deer、panda 可以看出每......
  • 6577: 暗的连锁 LCA+树上差分
    描述  Dark是一张无向图,图中有N个节点和两类边,一类边被称为主要边,而另一类被称为附加边。Dark有N–1条主要边,并且Dark的任意两个节点之间都存在一条只由主要边构成的路径。另外,Dark还有M条附加边。你的任务是把Dark斩为不连通的两部分。一开始Dark的附加边......
  • noip赛前20天冲刺集训 day2 ###寻找有向图中的最小疲惫路径###
    T1###寻找有向图中的最小疲惫路径###题目描述有一张n个点m条边的有向图,每条边上有一个正整数边权,你要顺着图上的有向边从1号点走到n号点。假设你经过的边边权依次为(w_1,w_2,\dots,w_t),则你的疲惫程度为\[\f(w)=\max_{i=1}^{t}w_i\timesi\,.\]你需要找到最......
  • Python word'str'(字符串前缀string prefix)的种类
    Python字符串前缀(Stringprefix) r'string'r'',用法是不会对后方字符串中的转义符进行转义,如: str=r'\n'print(str)#会直接输出\n,并不会输出换行 f'string'f'',用法是对字符进行格式化就和str.format()一样,会对{}进行格式化,如: str=f'你好,{}'......
  • MySQL进阶篇:第四章_四.一_ 索引使用_最左前缀法则
    索引使用_最左前缀法则最左前缀法则如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将会部分失效(后面的字段索引失效)。以tb_user表为例,我们先来查看一下之前tb_user表所创建的索引。在......
  • Conveyor (CF E) (dp 差分/前缀 条件迷惑t)
     思路: 找各种性质1每一秒只有史莱姆进入起始点,然后他会选一个方向走(右或者下),每一秒史莱姆都会这样走在考虑前t秒内有S个史莱姆到达这个点,然后就会有s+1/2个往右走,s/2往下走而且问t秒只会有t-n-m-1秒后的时刻影响(诈骗t)于是利用dp+差......
  • 谷粒商城-day2
    1人人开源搭建后台管理系统                 3、部署代码生成器                                     ......
  • 算法训练day29 LeetCode 39.40.131
    算法训练day29LeetCode39.40.13139.组合总和题目39.组合总和-力扣(LeetCode)题解代码随想录(programmercarl.com)classSolution{private:vector<vector<int>>result;vector<int>path;voidbacktracking(vector<int>&candidates,......
  • Day2 of my diary of C program learning
    somebugImeet1. if(a>b,a<c)shouldbeif(a>b&&a<c)2. scanf forget'&''3. exp1?exp2:exp3insteadofexp1?exp2;exp3。while for(;;)4. Asforexp1?exp2:exp3。exp==min=a,max=b0;exp==(min=a,max=b)1;两个代码的区别#include<st......