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历程,确实,我觉得繁神的历程里面确实有一句很好 不想打算法竞赛了。这是因为有别的事情要做,不是因为我打不动。 不想打比赛凌晨两点才睡了。因为我会困。 不想在群里和高水平选手水群了,因…...

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

MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制
🎯要点 🎯概率论和图论数学形式和图结构 | 🎯数学形式、图结构和代码验证贝叶斯分类器算法:🖊多类型:朴素贝叶斯,求和朴素贝叶斯、高斯朴素贝叶斯、树增强贝叶斯、贝叶斯网络增强贝叶斯和半朴素…...

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

基于Rspack实现大仓应用构建提效实践|得物技术
一、实践背景 随着项目的逐步迭代,代码量和依赖的逐渐增长,应用的构建速度逐步进入缓慢期。以目前所在团队的业务应用来看(使用webpack构建),应用整体构建耗时已经普遍偏高,影响日常开发测试的使用效率&am…...

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

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

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

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

【操作系统】进程管理——用信号量机制解决问题,以生产者-消费者问题为例(个人笔记)
学习日期:2024.7.10 内容摘要:利用信号量机制解决几个经典问题模型 目录 引言 问题模型 生产者-消费者问题(经典) 多生产者-多消费者问题 吸烟者问题 读者写者问题(难点) 哲学家进餐问题࿰…...

算法刷题笔记 KMP字符串(C++实现,并给出了求next数组的独家简单理解方式)
文章目录 题目描述基本思路实现代码 题目描述 给定一个字符串S,以及一个模式串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模式串P在字符串S中多次作为子串出现。求出模式串P在字符串S中所有出现的位置的起始下标。 输入格式 第一行输入整数…...

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

C语言 | Leetcode C语言题解之第228题汇总区间
题目: 题解: 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,可以使用发行版包含的基础软件包管理工具来安装。 红帽系 sudo yum install gitDebian系 sudo apt install gitWindows上安装git 去官网下载和操作系统位数相同的安装包.或者可以直接安装GitHub…...

this指向解析
先看题目: 第一题: var name window var person1 { name: person1, show1: function () { console.log(this.name) }, show2: () > console.log(th show3: function () { return function () { …...

学习小记-Nacos的服务注册与发现原理
服务注册: 当一个服务实例启动时,它会向 Nacos 服务器注册自己的信息,包括 IP 地址、端口号、元数据(如服务版本、区域信息等)。服务实例使用 Nacos API 发送注册请求,Nacos 服务器接收请求并存储服务实例信…...

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

[Spring] SpringBoot基本配置与快速上手
🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...

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

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

树与二叉树
前言: 树这个结构想必在日常生活中很常见到,而现在要介绍的是一种独特的数据结构--二叉树。 1.树 (1)定义: 是一种非线性结构,有一个特殊的节点叫做根节点,树没有前驱节点;树是递…...

SpringBoot+Vue实现简单的文件上传(Excel篇)
SpringBootVue实现简单的文件上传 1 环境 SpringBoot 3.2.1,Vue 2,ElementUI 2 页面 3 效果:只能上传xls文件且大小限制为2M,选择文件后自动上传。 4 前端代码 <template><div class"container"><el…...

科研绘图系列:R语言金字塔图(pyramid plot)
介绍 金字塔图(Pyramid chart)是一种用于展示人口统计数据的图表,特别是用于展示不同年龄段的人口数量。这种图表通常用于展示人口结构,比如性别和年龄的分布。 特点: 年龄分层:金字塔图按年龄分层,每一层代表一个年龄组。性别区分:通常,男性和女性的数据会被分别展…...

Tomcat多实例
一、Tomcat多实例 Tomcat多实例是指在同一台服务器上运行多个独立的tomcat实例,每个tomcat实例都具有独立的配置文件、日志文件、应用程序和端口,通过配置不同的端口和文件目录,可以实现同时运行多个独立的Tomcat服务器,每个服务…...

前端Vue组件化实践:自定义加载组件的探索与应用
在前端开发领域,随着业务逻辑复杂度的提升和系统规模的不断扩大,传统的开发方式逐渐暴露出效率低下、维护困难等问题。为了解决这些挑战,组件化开发作为一种高效、灵活的开发模式,受到了越来越多开发者的青睐。本文将结合实践&…...

半小时获得一张ESG入门证书【详细中英文笔记一】
前些日子,有朋友转发了一则小红书的笔记给我, 标题是《半小时获CFI官方高颜值免费证书 ESG认证》。这对考证狂魔的我来说,必然不能错过啊,有免费的羊毛不薅白不薅。 ESG课程的 CFI 官方网址戳这里:CFI 于是信心满满的…...

类形断言和和类型推导的区别是什么?
类型断言(Type Assertion)和类型推导(Type Inference)在TypeScript中的区别 如下: 定义: 类型断言:是程序员明确指定一个值的类型,即允许变量从一种类型更改为另一种类型。它不会进行…...

Spring-Spring、IoC、DI、注解开发
1、Spring是什么 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。 Spring整体架构 Spring优点: Spring属于低侵入设计。IOC将对象之间的依赖关系交给Spring,降低组件之间的耦合,实现各个层之间的解耦,让我们更专注于业务…...

Facebook的未来蓝图:从元宇宙到虚拟现实的跨越
随着科技的不断演进和社会的数字化转型,虚拟现实(VR)和增强现实(AR)作为下一代计算平台正逐渐走进人们的视野。作为全球领先的科技公司之一,Facebook正在积极探索并推动这一领域的发展,以实现其…...

Redis6.2.1版本集群新加副本
测试数据 通过redis-benchmark生成测试数据 ./bin/redis-benchmark -h 172.31.4.18 -p 6381 -a Redis_6.2.1_Sc --cluster -t set -d 128 -n 10000000 -r 100000000 -c 200新加节点 172.31.4.18:6381> AUTH Redis_6.2.1_Sc OK172.31.4.18:6381> cluster meet 172.31.4…...