【过题记录】 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
*/

星际导航


Cunning Gena


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

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

相关文章

PD协议芯片ECP5701兼容PD 2.0和PD 3.0(5V,9V,12V,15V,20V),支持 PD 输入多种类型无线充方案

文章目录 前言 一、TYPE-C口无线充与传统充电器的对比 1. TYPE-C口无线充的特点&#xff08;无需线材&#xff0c;更方便&#xff1b;接口定位性强&#xff0c;分明&#xff1b;兼容多个设备&#xff1b;充电速度更快&#xff1b;充电效率更高&#xff09; 2. 传统充电器的特点…

为什么 FPGA 的效率低于 ASIC?

FPGA是“可重构逻辑”器件。先制造的芯片&#xff0c;再次设计时“重新配置”。 ASIC 不需要“重新配置”。你先设计&#xff0c;把它交给代工厂&#xff0c;然后制造芯片。 现在让我们看看这些芯片的结构是什么样的&#xff0c;以及它们的不同之处。 ● 逻辑单元&#xff1a;F…

神经网络理论(机器学习)

motivation 如果逻辑回归的特征有很多&#xff0c;会造出现一些列问题&#xff0c;比如&#xff1a; 线性假设的限制&#xff1a; 逻辑回归是基于线性假设的分类模型&#xff0c;即认为特征与输出之间的关系是线性的。如果特征非常多或者特征与输出之间的关系是非线性的&#…

【Linux】线程——线程池、线程池的实现、线程安全的线程池、单例模式的概念、饿汉和懒汉模式、互斥锁、条件变量、信号量、自旋锁、读写锁

文章目录 Linux线程7. 线程池7.1 线程池介绍7.2 线程池的实现7.3 线程安全的线程池7.3.1 单例模式的概念7.3.2 饿汉和懒汉模式 8. 常见锁使用汇总8.1 互斥锁&#xff08;Mutex&#xff09;8.2 条件变量&#xff08;Condition Variable&#xff09;8.3 信号量&#xff08;Semaph…

探索 GPT-4o mini:成本效益与创新的双重驱动

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

79页PDF免费下载 | 全域数字化转型评估模型研究报告

一、前言&#xff1a; 随着数字技术的飞速发展&#xff0c;零售行业正站在转型的十字路口。如何在变革中找到方向&#xff0c;如何通过数字化转型提升企业竞争力&#xff0c;已成为每个零售企业必须面对的课题。腾讯智慧零售与伏羲智库深度合作&#xff0c;推出《2024年全域数…

05-用户画像+mysql-hive数据导入

将用户数据导入数仓 新建 create_hive_table.sh文件 在终端执行以下文件 sh create_hive_table.sh sqoop create-hive-table \ --connect jdbc:mysql://up01:3306/tags_dat \ tags_dat库名 --username root \ root 用户名 --password 123456 \ 123456 密码 --ta…

前端练习<HtmlCSS>——悬浮抽卡片(附完整代码及实现效果)

这个小练习来源于b站up小K师兄&#xff0c;大家可以通过下面的链接学习哦~up讲的非常详细。 写一个好玩的悬浮抽卡片效果&#xff5e; 先看一下效果&#xff1a; 1.鼠标没有放置到card上 2.鼠标放到card上&#xff0c;所有card呈角度散开 3.单击选中某一张卡片&#xff0c;…

vue2 使用代码编辑器插件 vue-codemirror

vue 使用代码编辑器插件 vue-codemirror 之前用过一次&#xff0c;当时用的一知半解的&#xff0c;所以也没有成文&#xff0c;前几天又因为项目有需求&#xff0c;所以说有用了一次&#xff0c;当然&#xff0c;依旧是一知半解&#xff0c;但是还是稍微写一下子吧&#xff01;…

vue2使用univerjs

1、univerjs Univer 提供了一个全面的企业级文档与数据协同的解决方案&#xff0c;支持电子表格、文本文档和演示幻灯片三大核心文档类型。通过灵活的 API 和插件机制&#xff0c;开发者可以在 Univer 的基础上进行个性化功能的定制和扩展&#xff0c;以适应不同用户在不同场景…

提升网站性能:ThinkPHP6中如何实现Mysql分页查询

随着互联网的快速发展&#xff0c;web应用程序的开发也越来越复杂。而分页查询是web应用程序中常见的功能之一。thinkphp6是一个web框架&#xff0c;可以帮助开发人员快速开发应用程序。在本文中&#xff0c;我们将讨论如何在thinkphp6中使用mysql进行分页查询。 首先&#xf…

【python】OpenCV—Shape Detection

文章目录 1、需求描述2、代码实现3、涉及到的库函数cv2.arcLengthcv2.approxPolyDP 4、案例5、参考 1、需求描述 给出图像&#xff0c;找出其轮廓&#xff0c;近似确认其为几变形图像 输入 输出 2、代码实现 # 导入必要的包 import cv2 import argparse import imutils imp…

C++STL初阶(7):list的运用与初步了解

在了解了vector之后&#xff0c;我们只需要简单学习List与vector不一样的接口即可 1.list的基本接口 1.1 iterator list中&#xff0c;与vector最大的区别就是迭代器由随机迭代器变成双向迭代器 string和vector中的迭代器都是随机迭代器&#xff0c;支持-等&#xff0c;而LIS…

centos系统mysql集群复制双主双从

文章目录 MySQL 双主双从集群一、 准备环境二、 配置主服务器1. 配置 MySQL 主服务器 1 (192.168.1.1)2. 配置 MySQL 主服务器 2 (192.168.1.2) 三、配置从服务器1. 配置 MySQL 从服务器 1 (192.168.1.3)2. 配置 MySQL 从服务器 2 (192.168.1.4)3. 在主服务器 1 上配置复制到主…

【接口测试】params传参与body传参区别

文章目录 一.params传参二.body传参三.两者区别说明 一.params传参 params传参一般用于get请求 params传参时,参数会附于URL后面以问号形式展示。 示例&#xff1a; http://ip地址:端口号/login?usernamexm&pwd111二.body传参 body传参一般用于post请求 body传参时需…

JavaScript(12)——内置对象

JavaScript内部提供的对象&#xff0c;包含各种属性和方法给开发者调用。 Math Math对象是JavaScript提供的一个“数学”对象 包含的方法有&#xff1a; random:生成0-1之间的随机数 ceil&#xff1a;向上取整 floor&#xff1a;向下取整 max&#xff1a;找最大数 min&#…

前置-Linux相关知识速记

linux Linux命令大全 [!IMPORTANT] chown-chmod-ls-chgrp-cdpwd-mkdir-rmdir-cp-rm-mv-cat-tac-nl-more-less-head-tail 应用领域 通常服务器使用 LAMP&#xff08;Linux Apache MySQL PHP&#xff09;或 LNMP&#xff08;Linux Nginx MySQL PHP&#xff09;组合。 目前…

STM32智能工业监控系统教程

目录 引言环境准备智能工业监控系统基础代码实现&#xff1a;实现智能工业监控系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;工业监控与优化问题解决方案与优化收尾与总结 1. 引言 智能工业监控系统通…

Chapter18 基于物理的渲染——Shader入门精要学习

Chapter18 基于物理的渲染 一、PBS理论和数学基础1.光是什么微表面模型 2.渲染方程3.精确光源4.双向反射分布函数 BRDF5.漫反射项&#xff08;Lambert 模型&#xff09;Lambertian BRDF为&#xff1a;Disney BRDF中漫反射项 6.高光反射项微面元理论BRDF的高光反射项①菲涅尔反射…

C# 委托函数 delegate

在C#中&#xff0c;委托&#xff08;Delegate&#xff09;是一种特殊的类型&#xff0c;它可以持有对方法的引用。 委托是实现事件的基础。事件本质上是多播委托&#xff0c;允许多个方法被触发 委托允许你将方法作为参数传递给其他方法&#xff0c;或者将方法作为返回值从方法…