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

贪心+构造,CF 1592F1 - Alice and Recoloring 1

目录

一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

二、解题报告

1、思路分析

2、复杂度

3、代码详解


一、题目

1、题目描述

2、输入输出

2.1输入

2.2输出

3、原题链接

1592F1 - Alice and Recoloring 1


二、解题报告

1、思路分析


    操作2、3可以被更低廉的操作1替代
    
    一次操作4可以替代四次操作1,且更低廉
    两次操作4 = 1次操作4 + 6次操作1,价格相同
    也就是说, > 1 次的操作4我们都可以换成1次操作4加若干次操作1

    那么我们全用操作1,然后看能不能替换掉4个操作1为1个操作4
    只能替换一次,多了不会更便宜

2、复杂度

时间复杂度: O(NM)空间复杂度:O(NM)

3、代码详解

 ​
#include <bits/stdc++.h>
#include <ranges>using i64 = long long;
using i32 = unsigned int;
using u64 = unsigned long long;
using i128 = __int128;constexpr int inf32 = 1E9 + 7;
constexpr i64 inf64 = 1E18 + 7;
constexpr int P = 1'000'000'007;void solve() {int n, m;std::cin >> n >> m;std::vector<std::string> g(n);for (int i = 0; i < n; ++ i)std::cin >> g[i];std::vector<std::vector<int>> acc(n + 1, std::vector<int>(m + 1));int res = 0;for (int i = n - 1; ~i; -- i)for (int j = m - 1; ~j; -- j) {acc[i][j] = acc[i + 1][j] ^ acc[i][j + 1] ^ acc[i + 1][j + 1];if (acc[i][j] == (g[i][j] & 1)) {g[i][j] = '#';	// 标记 操作1acc[i][j] ^= 1;++ res;}}if (g[n - 1][m - 1] == '#') {for (int i = 0; i < n - 1; ++ i)for (int j = 0; j < m - 1; ++ j) {if (g[i][j] == '#' && g[i][m - 1] == '#' && g[n - 1][j] == '#') {-- res;std::cout << res;return;}}}std::cout << res;
}auto FIO = []{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);return 0;
}();int main () {#ifdef DEBUGfreopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);#endifint T = 1;// std::cin >> T;while (T --)solve();return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 每日一题-贪心算法
  • Vue状态管理工具:Pinia
  • 接口自动化-代码实现
  • SpringBoot 设置传入参数非必要
  • leetcode每日一题49
  • 微信小程序的四种弹窗使用
  • 【计算机操作系统】段页式管理方式
  • 【网络安全】IDOR之邮箱银行报价
  • 全面讲解Vue中的toRaw函数
  • Go第一个程序
  • 高性能web服务器2——Nginx概述
  • STM32 —— TIM(基本定时器)详解_stm32的tim
  • 实验十 编写子程序《汇编语言》- 王爽
  • 设计者模式:深度解析及应用
  • DC-DC 转换器中的压电谐振器:当前状态和限制
  • [译] React v16.8: 含有Hooks的版本
  • Docker入门(二) - Dockerfile
  • eclipse的离线汉化
  • E-HPC支持多队列管理和自动伸缩
  • JavaScript中的对象个人分享
  • Js基础知识(四) - js运行原理与机制
  • python_bomb----数据类型总结
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 基于webpack 的 vue 多页架构
  • 两列自适应布局方案整理
  • 面试总结JavaScript篇
  • 排序(1):冒泡排序
  • 前端面试之CSS3新特性
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 小程序01:wepy框架整合iview webapp UI
  • 写给高年级小学生看的《Bash 指南》
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 正则表达式-基础知识Review
  • #pragma multi_compile #pragma shader_feature
  • (八十八)VFL语言初步 - 实现布局
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • ***通过什么方式***网吧
  • ***详解账号泄露:全球约1亿用户已泄露
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .net 调用海康SDK以及常见的坑解释
  • @EnableWebMvc介绍和使用详细demo
  • @Not - Empty-Null-Blank
  • [c++] C++多态(虚函数和虚继承)
  • [C++] Windows中字符串函数的种类
  • [C++]18:set和map的使用
  • [C++]STL之map
  • [CC-FNCS]Chef and Churu
  • [CF]Codeforces Round #551 (Div. 2)
  • [dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径
  • [Docker]十.Docker Swarm讲解
  • [EFI]MSI GF63 Thin 9SCXR电脑 Hackintosh 黑苹果efi引导文件