【过题记录】 7.21

Mad MAD Sum

在这里插入图片描述

算法:思维,前缀最大值
模拟一下他的运行过程就会发现,两次之后整个数组就固定了,之后每次都是每个数往后移动一位,可以模拟两次之后计算每个数的存活轮数,计算贡献。

#include<bits/stdc++.h>
using namespace std;#define int long longconst int N = 2e5+100;
int n;
int a[N];
map < int , int > M;
int Max[N];void Work(){cin>>n;int sum = 0;for (int i = 1; i <= n; i++) cin>>a[i],sum+=a[i];int maxx = 0;M.clear();for (int i = 1; i <= n; i++){M[a[i]]++;if (M[a[i]] > 1) maxx = max(maxx,a[i]);Max[i] = maxx;sum+=maxx;}M.clear();maxx = 0;M.clear();for (int i = 1; i <= n; i++){M[Max[i]]++;if (M[Max[i]] > 1) maxx = max(maxx,Max[i]);sum+=maxx*(n-i+1);}cout<<sum<<endl;for (int i = 1; i <= n+1; i++) Max[i] = 0;return;
}signed main(){int t; cin>>t;while (t--) Work();return 0;
}

Grid Puzzle

在这里插入图片描述


算法:贪心
贪心很多时候就是靠一个直觉
其实2*2的收益很多时候是不如直接染一行的。
不难发现,只要一行黑色的格子数大于4,肯定就是直接用操作2更优(一旦黑色格子数大于4,就意味着你想消掉这一行至少要用两次,那收益肯定不如操作2。而且2 * 2的格子范围最多涉及两行,就算这两次操作让下一行也消失,收益也就等同于操作2.)
上述可以说明,只有当格子里的格子数量小于等于4的时候,我们才会考虑操作1.
什么时候我们可以直接上手用操作1?
只有当当前操作1可以直接消掉这一整行的时候,直接用操作1显然更优。
因为这个时候操作1不仅可以消除这一行,还可以惠及下一行,至少不会更劣。
发现这个规律以后,我们又发现,操作1所涉及到的格子只有两种情况,1,2格和3,4格。
每一行按照这两种情况讨论即可。

#include<bits/stdc++.h>
using namespace std;const int N = 2e5+100;
int a[N];
int n;int l[N],r[N];int Work(){cin>>n;int s = 0;for (int i = 1; i <= n; i++) cin>>a[i],s+=a[i];int sum = 0;int la = 0;for (int i = 1; i <= n; i++){if (a[i] == 0){la = 0; continue;}if (la == 0){if (a[i] > 2) {sum++; la = 0; continue;}sum++; la = 1; continue;}if (la == 1){if (a[i] > 4){sum++; la = 0; continue;}if (a[i] <= 2){la = 0; continue;}sum++; la = 2; continue;}if (la == 2){if (a[i] > 4){sum++; la = 0; continue;}sum++; la = 1; continue;}}return sum;
}int main(){int t; cin>>t;while (t--) cout<<Work()<<endl;return 0;
}
/*
100
4
2 2 2 2
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaSE 知识梳理(下)

1.继承 继承是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特 性 的基础上进行扩展&#xff0c;增加新功能&#xff0c;这样产生新的类&#xff0c;称派生类。 继承主要解决的问题是&#xff1a;共性的抽取&#xff0c;实现代码复用&a…

【D3.js in Action 3 精译_018】2.4 向选择集添加元素

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可视化最佳实践&#xff08;下&#xff09;1.4 本章小结 第二章…

【PyTorch】图像二分类项目-部署

【PyTorch】图像二分类项目 【PyTorch】图像二分类项目-部署 在独立于训练脚本的新脚本中部署用于推理的模型&#xff0c;需要构造一个模型类的对象&#xff0c;并将权重加载到模型中。操作流程为&#xff1a;定义模型--加载权重--在验证和测试数据集上部署模型。 import torch…

基于PSO算法优化PID参数的一些问题

目录 前言 Q1&#xff1a;惯性权重ω如何设置比较好&#xff1f;学习因子C1和C2如何设置&#xff1f; Q2&#xff1a;迭代速度边界设定一定能够遍历&#xff08;/覆盖&#xff09;整个PID参数二维空间范围吗&#xff1f;还是说需要与迭代次数相关&#xff1f;迭代次数越高&a…

MATLAB图像处理分析基础(一)

一、引言 MATLAB软件得到许多数字图像处理学生、老师和科研工作者的喜爱&#xff0c;成为数字图像处理领域不可或缺的工具之一&#xff0c;其与其他软件相比有以下诸多显著优点。首先&#xff0c;MATLAB 拥有强大的内置函数库&#xff0c;涵盖了图像读取、显示、处理及分析的全…

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(九)-无人机区域地面探测与避让(DAA)

引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及A2X&#xff08;Aircraft-to-Everything&#xff09;服务的支持。 3GPP TS 23.256 技术规范&#xff1a; 【免费】3GPPTS23.256技术报告-无人机系…

星火模型大体验简单实现一个LLM Chat平台

星火文档 利用axios封装 星火模型 API 请求 为了管理好的key,需要把对应的环境放置env.json文件中。 源码 const axios = require(axios); const ENV = require(../env.json); /*** * @param {*} messages 数组* @returns */ function request(messages) {return new Pro…

Unity UI 开发:代码与示例全解析

在 Unity 游戏开发中&#xff0c;用户界面&#xff08;UI&#xff09;的设计和实现是至关重要的一部分。一个直观、美观且功能完善的 UI 能够极大地提升玩家的游戏体验。本文将为您介绍一些 Unity UI 相关的代码和示例&#xff0c;帮助您更好地掌握 UI 开发。 一、创建基本 UI…

《昇思 25 天学习打卡营第 14 天 | 基于MindSpore的红酒分类实验 》

《昇思 25 天学习打卡营第 14 天 | 基于MindSpore的红酒分类实验 》 活动地址&#xff1a;https://xihe.mindspore.cn/events/mindspore-training-camp 签名&#xff1a;Sam9029 使用MindSpore实现K近邻&#xff08;KNN&#xff09;红酒聚类 实验目的和KNN算法概述 本次实验的…

gfsk调制相对于FSK调制优点

GFSK调制相对于FSK调制主要有以下优点&#xff1a; 抗噪声性能&#xff1a;GFSK调制采用高斯滤波器&#xff0c;这使得其抗噪声性能较好。在同样的信噪比下&#xff0c;GFSK调制能够实现更高的误码率性能。 频带利用率&#xff1a;GFSK调制的频带利用率相对较高。由于其带外衰…

ESP8266模块(2)

实例1 查看附近的WiFi 步骤1&#xff1a;进入AT指令模式 使用USB转串口适配器将ESP8266模块连接到电脑。打开串口终端软件&#xff0c;并设置正确的串口和波特率&#xff08;通常为115200&#xff09;。输入以下命令并按回车确认&#xff1a; AT如果模块响应OK&#xff0c;…

微信小程序:自定义 tabBar 效果

自定义 tabBar 效果 自定义 tabBar 在 app.json 中的 tabBar 里设置 custom 为 true 就可以关闭原生 tabBar。 开启自定义 tabBar 原生的 tabBar 内容不删除&#xff0c;兼容低版本。 {// 注册vant组件"usingComponents": {"van-tabbar": "vant/weapp…

【计算机网络】0 课程主要内容(自顶向下方法,中科大郑烇、杨坚)(待)

1 教学目标 掌握计算机网络 基本概念 工作原理 常用技术 为将来学习、应用和研究计算机网络打下坚实基础 2 课程主要内容 1 计算机网络和互联网2 应用层3 传输层4 网络层&#xff1a;数据平面5 网络层&#xff1a;控制平面6 数据链路层和局域网7 网络安全8 无线和移动网络9 多…

构建gitlab远端服务器(check->build->test->deploy)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言构建gitlab远端服务器一、步骤一:搭建gitlab的运行服务器【运维】1. 第一步:硬件服务器准备工作(1)选择合适的硬件和操作系统linux(2)安装必…

Learning vtkjs之WarpScalar

过滤器 WarpScalar 介绍 先看一个官方的一句话介绍&#xff1a; vtkWarpScalar - deform geometry with scalar data vtkWarpScalar - 使用标量数据变形几何体 详细介绍 vtkWarpScalar is a filter that modifies point coordinates by moving points along point normals by…

Linux服务器安装nginx,nginx配置详解。

前置 一台linux服务器。nginx安装包&#xff08;地址&#xff1a;NginxDownload&#xff09;ssh连接工具&#xff1a;putty,Tssh等推荐使用tssh或者服务器云平台自带的 部署 通过ssh工具连接到服务器&#xff0c;su进入root账户&#xff0c;先更新三方库。 更新三方库 Cen…

spss数据分析是什么 怎么下载spss

什么是SPSS SPSS是社会统计科学软件包的简称&#xff0c; 其官方全称为IBM SPSS Statistics。SPSS软件包最初由SPSS Inc.于1968年推出&#xff0c;于2009年被IBM收购&#xff0c;主要运用于各领域数据的管理和统计分析。作为世界社会科学数据分析的标准&#xff0c;SPSS操作操作…

【Rust光年纪】超越ORM:探索Rust语言多款数据库客户端库的核心功能和使用场景

数据库操作新选择&#xff1a;从异步操作到连接管理&#xff0c;掌握Rust语言数据库客户端库的全貌 前言 在现代软件开发中&#xff0c;与数据库进行交互是一个常见的任务。Rust语言作为一种高性能、内存安全的编程语言&#xff0c;拥有丰富的生态系统来支持各种数据库操作。…

C++合作开发项目:美术馆1.0

快乐星空MakerZINCFFO 合作入口&#xff1a;CM工作室 效果图&#xff1a; 代码&#xff1a; &#xff08;还有几个音乐&#xff01;&#xff09; main.cpp #include <bits/stdc.h> #include <windows.h> #include <conio.h> #include <time.h> #in…

Codeforces 1733D 891C Envy+1681F Unique Occurrences(可撤销并查集)

891C Envy 题意 给定一张图以及q个查询&#xff0c;输出每个查询中的边是否全部会出现在某个最小生成树里。 思路 首先如果只考虑一次查询&#xff0c;这一次查询只有一条边&#xff0c;那么只要用kruskal算法处理完所有边权小于这条边的边&#xff0c;此时如果这条边的两点已…