题解-[MdOI2020] Decrease

博客介绍了 MdOI2020 比赛中的 Decrease 题目的解题方法,重点在于使用简单差分法解决。作者首先分享了自己在比赛中尝试暴力和二维线段树但未成功的情况,然后详细解释了如何通过差分数组来优化问题,枚举覆盖正方形的左上角并更新答案。文章强调了审题和暴力法在某些问题中的有效性,并提供了完整的代码实现。
摘要由CSDN通过智能技术生成

[MdOI2020] Decrease

今天巨佬团队 luogu \texttt{luogu} luogu 公开赛中的第三题,当时我写了好久才想到暴力做法 42分 \color{orange}\texttt{42分} 42,后来我还很离谱的写了个二维线段树,最终也没做出来。看来我还是太蒻了。

其实此题的做法是:简单差分

审题很重要,按照题目描述输入矩阵,题目中也说了,要快读:

for(int i=1,x,y,z;i<=m;i++){
   
	x=d(),y=d(),z=d();
	a[x][y]=z;
}

暴力做法:枚举覆盖正方形的左上角,暴力覆盖。 代码:

int main(){
   
	n=d(),m=d(),k=d();
	for(int i=1,x,y,z;i<=m;i++){
   
		x=d(),y=d(),z=d();
		a[x][y]=z;
	}
	for(int i=1;i<=n-k+1;i++)
		for(int j=1;j<=n-k+1;j++)
			if(a[i][j]!=0){
   
				ans+=abs(a[i][j]);
				int tmp=a[i][j];
				for(int x=i;x<=i+k
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值