当前位置: 首页 > news >正文

【枚举+差分】P6070 『MdOI R1』Decrease

题目

P6070 『MdOI R1』Decrease

在这里插入图片描述
在这里插入图片描述

分析

刚拿到这道题的时候很明显就看出来要做差分,而且将矩阵中所有的数变成0大概率是要暴力枚举,再结合数据范围 n 只有 5e3,可以确定是暴力枚举+差分了。
但是如何枚举呢?想了半天也感觉无从下手。这是因为本题的关键点没有理解,本题考察了原数组跟差分数组的联系,原数组全部为0的时候,其对应的差分数组的值也全部为0。那么这样就可以从枚举 k x k 矩阵的所有点挨个修改值优化成只枚举 k x k 的左上端点,然后使用insert修改矩阵的值。时间复杂度由O(n∗k2)O(n*k^2)O(nk2)优化成了O(n)O(n)O(n)

代码

#include<iostream>using namespace std;typedef long long LL;const int N = 5e3 + 10;int n,m,k;//只需要差分数组 
LL f[N][N]; void insert(int x1, int y1, int x2, int y2, int z)
{f[x1][y1] += z;f[x1][y2 + 1] -= z;f[x2 + 1][y1] -= z;f[x2 + 1][y2 + 1] += z;
}int main()
{cin >> n >> m >> k;while(m--){int x,y,z; cin >> x >> y >> z;insert(x, y, x, y, z);}LL sum = 0; //总操作次数可能超过int范围for(int i=1;i<=n-k+1;i++){for(int j=1;j<=n-k+1;j++){sum += abs(f[i][j]);insert(i, j, i + k - 1, j + k - 1, -f[i][j]); //-f[i][j]为了抵消原f[i][j],使其值变为0 }}//检查n x n范围内的差分数组的值有没有不为0的,如果有就代表无法完成 for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(f[i][j]){cout << -1 << endl;return 0;}cout << sum << endl;return 0;
}
http://www.dtcms.com/a/277838.html

相关文章:

  • RAG升级:Re-rank模型微调,实现极致检索精度
  • 【读书笔记】《C++ Software Design》第八章 The Type Erasure Design Pattern
  • 虚拟线程,多线程,单线程
  • 小白成长之路-LVS
  • 神经网络的基础原理介绍(网络、传播、梯度、以及一些常见的神经网络原型介绍)
  • 【设计模式】策略模式(政策(Policy)模式)
  • pycharm+SSH 深度学习项目 远程后台运行命令
  • AI生成单词消消乐游戏. HTML代码
  • hercules zos 安裝 jdk 8
  • 【读书笔记】《C++ Software Design》第十章与第十一章 The Singleton Pattern The Last Guideline
  • MyBatis04-MyBatis小技巧
  • 【读书笔记】《Effective Modern C++》第六章 Lambda Expressions
  • Spring AI多模态API初体验:文字、图片、语音,一个接口全搞定!
  • 【研报复现】开源证券:均线的收敛与发散
  • DevOps
  • 深度学习图像分类数据集—玉米粒质量识别分类
  • 设计模式之单例模式:深入解析全局唯一对象的艺术
  • JVM 锁自动升级机制详解
  • 哈希扩展 --- 布隆过滤器
  • 肿瘤浸润淋巴细胞是什么,与三级淋巴结构的关系
  • 会计 - 22 - 外币折算
  • Linux713 SAMBA;磁盘管理:手动挂载,开机自动挂载,自动挂载
  • 补:《每日AI-人工智能-编程日报》--2025年7月12日
  • CTFSHOW pwn161 WP
  • 如何成为 PostgreSQL 中级专家
  • 论文学习_SemDiff: Binary Similarity Detection by Diffing Key-Semantics Graphs
  • 4G PPP模式与以太网接口在LwIP中的融合应用
  • JAVA AI智能体——1 入门
  • Redis 基础详细介绍(Redis简单介绍,命令行客户端,Redis 命令,Java客户端)
  • day5--上传视频