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…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
