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

7.16做题总结

今日也是让我看到了繁神的ACM历程,确实,我觉得繁神的历程里面确实有一句很好

不想打算法竞赛了。这是因为有别的事情要做,不是因为我打不动。
  
不想打比赛凌晨两点才睡了。因为我会困。
  
不想在群里和高水平选手水群了,因为我想独处。
  
不想去打区域赛,和 ICPC 选手多交流什么了,因为感觉中国选手都没几个好好打的。
  
不想出题了,一是因为我菜,二是因为我没有时间。
  
不想一年拉着队友训练三百场,因为我更想读读论文。
  
不想把过多意义投入到比赛中,因为这不是我想看到自己的样子,也不会让我成为我想看到的未来自己的样子。

 好了,话不多说,进入正题

P4653 [CEOI2017] Sure Bet

 题意:就是说给你a,b两组灯泡,然后问你什么时候才有最大的最小可能收益

思路:先从大到小排序,因为你价值越大,你的最小可能收益才会越大,因此,我们排序之后,先将,L指针指向a数组,R指针指向b数组,然后,我们现将b数组的最大值加进来,然后如果a的总价值小于b,然后就加进来一个a的灯泡,然后依次让指针往后走,然后找出这个过程中的最大的最小权值即可,灰常的简单

#include<bits/stdc++.h>
using namespace std;
#define int long longint n;
double a[100005];
double b[100005];
double suma,sumb;
int l,r;
double ans;
bool cmp(double a,double b)
{return a>b;
}double Max(double a,double b)
{return a>b?a:b;
}double Min(double a,double b)
{return a<b?a:b;
}signed main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i]>>b[i];}sort(a+1,a+1+n,cmp);sort(b+1,b+1+n,cmp);for(r=1;r<=n;r++){sumb+=b[r];ans=Max(ans,Min(sumb-l-r,suma-l-r));while(suma<sumb&&l<=n){suma+=a[++l];ans=Max(ans,Min(sumb-l-r,suma-l-r));}}printf("%.4lf\n",ans);return 0;
}

P2216 [HAOI2007] 理想的正方形

题意:就是说给你一个矩阵,然后问你找出一个n*n的矩阵,然后找出每块矩阵的最大值和最小的差的小值

思路:二维单调队列秒了,先用单调递增队列先对行进行求单调递增队列,然后再对已经变换过的行的数组再对列进行求最大值,反正就是先对行变化,再对列变换

最小值同理,二维单调队列就解决了

#include<bits/stdc++.h>
using namespace std;
#define int long longint n,m,k;
int a[1005][1005];
deque<int> q;
int premax_x[1005][1005];
int premax_y[1005][1005];
int premin_x[1005][1005];
int premin_y[1005][1005];signed main()
{cin>>n>>m>>k;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}//先求极大值//先在行求最大值 for(int i=1;i<=n;i++){q.clear();for(int j=1;j<=m;j++){if(!q.empty()&&j-q.front()>=k){q.pop_front();}while(!q.empty()&&a[i][j]>a[i][q.back()]){q.pop_back();}q.push_back(j);if(j>=k){premax_x[i][j]=a[i][q.front()];}}}//列也求最大值for(int i=1;i<=m;i++){q.clear();for(int j=1;j<=n;j++){if(!q.empty()&&j-q.front()>=k){q.pop_front();}while(!q.empty()&&premax_x[j][i]>premax_x[q.back()][i]){q.pop_back();}q.push_back(j);if(j>=k){premax_y[j][i]=premax_x[q.front()][i];}}} //再求极小值 //先在行求最小值 for(int i=1;i<=n;i++){q.clear();for(int j=1;j<=m;j++){if(!q.empty()&&j-q.front()>=k){q.pop_front();}while(!q.empty()&&a[i][j]<a[i][q.back()]){q.pop_back();}q.push_back(j);if(j>=k){premin_x[i][j]=a[i][q.front()];}}}//列也求最小值for(int i=1;i<=m;i++){q.clear();for(int j=1;j<=n;j++){if(!q.empty()&&j-q.front()>=k){q.pop_front();}while(!q.empty()&&premin_x[j][i]<premin_x[q.back()][i]){q.pop_back();}q.push_back(j);if(j>=k){premin_y[j][i]=premin_x[q.front()][i];}}} int ans=0x3f3f3f3f;for(int i=k;i<=n;i++){for(int j=k;j<=m;j++){ans=min(ans,premax_y[i][j]-premin_y[i][j]);}}cout<<ans;return 0;
}

 P1725 琪露诺

题意:就是说对于一个坐标i,他只能移动到i+L~i+R这个区间范围内,然后问你最大手机到的冰冻指数是多少

思路:一开始我以为这就是个简单的动态规划,因为

dp[i]=max(dp[i-k])+a[i]    (   L<=k<=R   )

然后枚举L到R里面找到最大的即可,我也想这个也配绿题,降成橙题感觉还差不多,果然四个T也是成功打脸了我的这种感觉,因为需要优化,但是维护区间的最值,我们可以想到哪些方法呢,一个是老朋友线段树,还有一个是老朋友单调队列,那么我们该用哪个方法呢?那肯定是单调队列啊

O(N)的时间复杂度,比线段树快多了,

因此此题就为单调队列优化dp

 

#include<bits/stdc++.h>
using namespace std;
#define int long longint n,l,r;
int a[200005];
deque<int> que;
int dp[200005];
int ans=-0x3f3f3f3f;
signed main()
{cin>>n>>l>>r;int k=r-l+1;for(int i=0;i<=n;i++){cin>>a[i];}memset(dp,128,sizeof(dp));dp[0]=0;for(int i=0;i<=n-l;i++){if(!que.empty()&&i-que.front()>=k){que.pop_front();}while(!que.empty()&&dp[que.back()]<dp[i]){que.pop_back();}que.push_back(i);dp[i+l]=dp[que.front()]+a[i+l];}for(int i=n-r+1;i<=n;i++){ans=max(ans,dp[i]);}cout<<ans;return 0;
}

相关文章:

7.16做题总结

今日也是让我看到了繁神的ACM历程&#xff0c;确实&#xff0c;我觉得繁神的历程里面确实有一句很好 不想打算法竞赛了。这是因为有别的事情要做&#xff0c;不是因为我打不动。    不想打比赛凌晨两点才睡了。因为我会困。    不想在群里和高水平选手水群了&#xff0c;因…...

unity使用 MQTT复现plant simulate仿真

unity使用 MQTT复现plant simulate仿真 一、plant simulate端配置 1、plant simulate MQTT组件配置&#xff0c;该组件在类库的信息流类目下&#xff0c;端口不变&#xff0c;填写ip即可&#xff1b; 2、设备配置界面&#xff0c;在控件入口和出口处各挂一个脚本&#xff0c;…...

MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制

&#x1f3af;要点 &#x1f3af;概率论和图论数学形式和图结构 | &#x1f3af;数学形式、图结构和代码验证贝叶斯分类器算法&#xff1a;&#x1f58a;多类型&#xff1a;朴素贝叶斯&#xff0c;求和朴素贝叶斯、高斯朴素贝叶斯、树增强贝叶斯、贝叶斯网络增强贝叶斯和半朴素…...

初识HTML

一 HTML HTML(Hyper Text Markup Language),超⽂本标记语⾔.超文本:⽐⽂本要强⼤.通过链接和交互式⽅式来组织和呈现信息的⽂本形式.不仅仅有⽂本,还可能包含图⽚,⾳频,或者⾃已经审阅过它的学者所加的评注、补充或脚注等等.标记语言:由标签构成的语⾔。 1.HTML代码是由“标签…...

基于Rspack实现大仓应用构建提效实践|得物技术

一、实践背景 随着项目的逐步迭代&#xff0c;代码量和依赖的逐渐增长&#xff0c;应用的构建速度逐步进入缓慢期。以目前所在团队的业务应用来看&#xff08;使用webpack构建&#xff09;&#xff0c;应用整体构建耗时已经普遍偏高&#xff0c;影响日常开发测试的使用效率&am…...

什么是MOW,以bitget钱包为例

元描述&#xff1a;MOW凭借其富有创意的故事情节和广阔的潜力在Solana上脱颖而出。本文深入探讨了其独特的概念和光明的未来。 Mouse in a Cats World (MOW)是一个基于Solana区块链的创新meme项目&#xff0c;它重新构想了一个异想天开且赋予权力的故事。在这个奇幻的宇宙中&am…...

pytorch说明

深度学习中的重要概念&#xff1a; 激活函数&#xff1a; 激活函数的必要性&#xff1a;激活函数不是绝对必须的&#xff0c;但在深度学习中&#xff0c;它们几乎总是被使用。激活函数可以引入非线性&#xff0c;这使得神经网络能够学习更复杂的模式。 激活函数的位置&#x…...

AI语音机器人是否可以设计开放式问题

什么叫开放式提问&#xff1f; 是指提出比较概括、广泛、范围较大的问题&#xff0c;对回答的内容限制不严格&#xff0c;给对方充分自由发挥的余地。 试想一下&#xff0c;就算不是语音机器人&#xff0c;是一个真人销售&#xff0c;和客户沟通时提的问题是开放式的&#xf…...

ModuleNotFoundError: No module named

python脚本执行出现这个错误&#xff0c;检查是否安装了对应的模块&#xff0c;确认已经安装&#xff0c;执行还是出错 原因是我时在c程序中启动执行的python脚本&#xff0c;c程序执行是使用了sudo权限&#xff0c;此时会报错&#xff0c;而在shell中执行python&#xff08;下…...

【操作系统】进程管理——用信号量机制解决问题,以生产者-消费者问题为例(个人笔记)

学习日期&#xff1a;2024.7.10 内容摘要&#xff1a;利用信号量机制解决几个经典问题模型 目录 引言 问题模型 生产者-消费者问题&#xff08;经典&#xff09; 多生产者-多消费者问题 吸烟者问题 读者写者问题&#xff08;难点&#xff09; 哲学家进餐问题&#xff0…...

算法刷题笔记 KMP字符串(C++实现,并给出了求next数组的独家简单理解方式)

文章目录 题目描述基本思路实现代码 题目描述 给定一个字符串S&#xff0c;以及一个模式串P&#xff0c;所有字符串中只包含大小写英文字母以及阿拉伯数字。模式串P在字符串S中多次作为子串出现。求出模式串P在字符串S中所有出现的位置的起始下标。 输入格式 第一行输入整数…...

SpringCloud架构师面试

一、微服务是什么 1、基本概念 微服务是一种架构风格&#xff08;区别于单体架构、垂直架构、分布式架构、SOA架构&#xff09;&#xff0c;应用程序被划分为更小的、流程驱动的服务。 2、微服务的特征 轻量化&#xff1a;将复杂的系统或者服务进行纵向拆分&#xff0c;每个…...

C语言 | Leetcode C语言题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; char** summaryRanges(int* nums, int numsSize, int* returnSize) {char** ret malloc(sizeof(char*) * numsSize);*returnSize 0;int i 0;while (i < numsSize) {int low i;i;while (i < numsSize && nums[i] nums[i …...

入职前回顾一下git-01

git安装 Linux上安装git 在linux上建议用二进制的方式来安装git&#xff0c;可以使用发行版包含的基础软件包管理工具来安装。 红帽系 sudo yum install gitDebian系 sudo apt install gitWindows上安装git 去官网下载和操作系统位数相同的安装包.或者可以直接安装GitHub…...

this指向解析

先看题目&#xff1a; 第一题&#xff1a; var name window var person1 { name: person1, show1: function () { console.log(this.name) }, show2: () > console.log(th show3: function () { return function () { …...

学习小记-Nacos的服务注册与发现原理

服务注册&#xff1a; 当一个服务实例启动时&#xff0c;它会向 Nacos 服务器注册自己的信息&#xff0c;包括 IP 地址、端口号、元数据&#xff08;如服务版本、区域信息等&#xff09;。服务实例使用 Nacos API 发送注册请求&#xff0c;Nacos 服务器接收请求并存储服务实例信…...

视频号矩阵系统源码,实现AI自动生成文案和自动回复私信评论,支持多个短视频平台

在当今短视频蓬勃发展的时代&#xff0c;视频号矩阵系统源码成为了自媒体人争相探索的宝藏。这一强大的技术工具不仅能帮助我们高效管理多个短视频平台&#xff0c;更能通过AI智能生成文案和自动回复私信评论&#xff0c;为自媒体运营带来前所未有的便利与效率。 一、视频号矩…...

[Spring] SpringBoot基本配置与快速上手

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…...

tomcat的优化、动静分离

tomcat的优化 tomcat自身的优化 tomcat的并发处理能力不强&#xff0c;大项目不适应tomcat做为转发动态的中间件&#xff08;k8s集群&#xff0c;pytnon rubby&#xff09;&#xff0c;小项目会使用&#xff08;内部使用的&#xff09;动静分离 默认配置不适合生产环境&…...

Python与自动化脚本编写

Python与自动化脚本编写 Python因其简洁的语法和强大的库支持&#xff0c;成为了自动化脚本编写的首选语言之一。在这篇文章中&#xff0c;我们将探索如何使用Python来编写自动化脚本&#xff0c;以简化日常任务。 一、Python自动化脚本的基础 1. Python在自动化中的优势 Pyth…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...