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

51.哀家要长脑子了!

1.P1003 [NOIP2011 提高组] 铺地毯​​​​​​ 

重复 模拟 要求覆盖在最上面的地毯编号,用四个数组abgk分别记录地毯起点的左下角横纵坐标,地毯的长度宽度,输入的坐标x y 当它满足大于等于左下角坐标 并且 小于等于 地毯左下角横纵坐标的时候,就表示它在这个地毯上了 一直遍历完所有输入的地毯,最后就是覆盖在最上面的地毯

C++版本

#include<iostream>
using namespace std;const int N = 1e6+10;
int a[N], b[N], g[N], k[N];int main(){int n;cin >> n;for(int i = 1; i <= n; i++)cin >> a[i] >> b[i] >> g[i] >> k[i];int x,y;cin >> x >> y;int res = -1;for(int i = 1; i <= n; i++)if(x >= a[i] && y >= b[i] && x <= a[i]+g[i] && y <= b[i]+k[i])res = i;cout << res;return 0;
}

Java版本

import java.util.Scanner;public class Main{static final int N = (int)1e6 + 10;static int[] a = new int[N];static int[] b = new int[N];static int[] g = new int[N];static int[] k = new int[N];public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();for(int i = 0; i < n; i++){a[i] = sc.nextInt();b[i] = sc.nextInt();g[i] = sc.nextInt();k[i] = sc.nextInt();}int x = sc.nextInt();int y = sc.nextInt();int res = -1;for(int i = 0; i < n; i++)if(x>=a[i] && y>=b[i] && x<=a[i]+g[i] && y<=b[i]+k[i])res = i + 1;System.out.println(res);}
}
2.P1007 独木桥 

 其实一个点下桥的最近距离就是转头直接下去,最远就是走到对面去,但因为题目要求相遇要转身给了干扰,但是,其实也还是可以看成相遇的时候不用转身继续往对面走,因为继续走不转身相当于对面的士兵帮你把你自己转身之后的路走了,这样子就简化了。

C++版本

#include<iostream>
using namespace std; int main(){int l;cin >> l;int n;cin >> n;int ans = 0, res = 0;for(int i = 0; i < n; i++){int a;cin >> a;ans = max(max(l-a+1, a), ans);res = max(min(l-a+1, a), res);}cout << res << " " << ans;return 0;
}

Java版本

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int l = sc.nextInt();int n = sc.nextInt();int max = 0;int min = 0;for (int i = 0; i < n; i++) {int a = sc.nextInt();max = Math.max(Math.max(l+1-a, a), max);min = Math.max(Math.min(l+1-a, a), min);}System.out.println(min + " " + max);}
}
3.P1008 [NOIP1998 普及组] 三连击 

哎呀,其实挺好想到的,但是我还是想不到。。。。。

注意百位数枚举到3就好了,再大就溢出来了 

C++版本

#include<iostream>
using namespace std;int main(){for(int i = 1; i <= 3; i++){  //百位数for(int j = 1; j <= 9; j++){  //十位数for(int k = 1; k <= 9; k++){  //个位数if(i == k || j == i || k == j) continue;  //跳过相同的int a = i*100 + j*10 + k;int b = a * 2;int c = a * 3;if(c >= 1000) return 0;int l = b/100, m = b/10%10, n = b%10;  //取出每一位上的数int o = c/100, p = c/10%10, q = c%10;if(i+j+k+l+m+n+o+p+q == 1+2+3+4+5+6+7+8+9 && //一个数字用一次i*j*k*l*m*n*o*p*q == 1*2*3*4*5*6*7*8*9)cout << a << " " << b << " " << c << endl;}}}return 0;
}

Java版本

public class Main{public static void main(String[] args){for(int i = 1; i <= 3; i++){for(int j = 1; j <= 9; j++){for(int k = 1; k <= 9; k++){if(i == j || j == k || i == k) continue;int a = i*100 + j*10 + k;int b = a * 2;int c = a * 3;if(c >= 1000) break;int l = b/100, m = b/10%10, n = b%10;int o = c/100, p = c/10%10, q = c%10; if(i+j+k+l+m+n+o+p+q == 1+2+3+4+5+6+7+8+9 &&i*j*k*l*m*n*o*p*q == 1*2*3*4*5*6*7*8*9)System.out.println(a + " " + b + " " + c);}}}}
}
 4.220. 存在重复元素 III - 力扣(LeetCode)

首先用的双重for循环还想着简简单单。。

可以用set(滑动窗口和查找,但是桶排序效率更高

C++版本

class Solution {
public:bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) {set<long> st;for (int i = 0; i < nums.size(); i++) {auto lb = st.lower_bound((long)nums[i] - t);if (lb != st.end() && *lb <= (long)nums[i] + t) return 1;st.insert(nums[i]);if (i >= k) st.erase(nums[i - k]);}return 0;}
};

Java版本

class Solution {public boolean containsNearbyAlmostDuplicate(int[] nums, int indexDiff, int valueDiff) {int n = nums.length ;TreeSet<Long> ts = new TreeSet<>();for(int i = 0; i < n; i++){Long val = nums[i]*1L;// 小于等于nums[i] 的最大元素Long left = ts.floor(val);// 大于等于nums[i] 的最小元素Long right = ts.ceiling(val);if(left!=null && val - left <= valueDiff) return true;if(right!=null && right - val <= valueDiff) return true;ts.add(val);if(i >= indexDiff) ts.remove(nums[i-indexDiff]*1L);}return false;}
}
Java中的TreeSeet 

 有序、唯一

  1.创建TreeSet
import java.util.TreeSetTreeSet<Integer> ts = new TreeSet<>();
  2.添加元素
ts.add(要添加的元素);
   3.删除元素
ts.remove(要删除的元素);
  4.查找元素
boolean chazhao = ts.contains(要查找的元素值);
  5.获取子集
// 获取从 1 到 5 的子集
TreeSet<数据类型> subSet = (TreeSet<数据类型>) ts.subSet(1, 5);
  6.获取头尾元素
// 获取最小元素
接收 = ts.first();// 获取最大元素
接收 = ts.last();
  7.获取上下界元素
// 获取大于等于val 的最小元素
接收 = ts.ceiling(val);// 获取小于等于val 的最大元素
接受 = ts.floor(val);
  8.获取下一个元素和前一个元素
// 获取 val 的下一个元素
接收 = ts.higher(val);// 获取 val 的前一个元素
接收 = ts.lower(val);

相关文章:

51.哀家要长脑子了!

1.P1003 [NOIP2011 提高组] 铺地毯​​​​​​ 重复 模拟 要求覆盖在最上面的地毯编号&#xff0c;用四个数组abgk分别记录地毯起点的左下角横纵坐标&#xff0c;地毯的长度宽度&#xff0c;输入的坐标x y 当它满足大于等于左下角坐标 并且 小于等于 地毯左下角横纵坐标的时候…...

Overleaf 无法显示图片

问题描述 在Overleaf中的代码为&#xff1a; \begin{figure}\centering\includegraphics[width0.98\linewidth]{figures/test.png}\caption{This is a test.}\label{fig:test} \end{figure}但无法正常显示图片&#xff1a; 解决方案 修改编译模式为正常Normal而非快速Fast …...

如何实现 C/C++ 与 Python 的通信?

在现代编程中&#xff0c;C/C与Python的通信已经成为一种趋势&#xff0c;尤其是在需要高性能和灵活性的场景中。本文将深入探讨如何实现这两者之间的互通&#xff0c;包括基础和高级方法&#xff0c;帮助大家在混合编程中游刃有余。 C/C 调用 Python&#xff08;基础篇&#…...

音视频入门基础:FLV专题(13)——FFmpeg源码中,解析任意Type值的SCRIPTDATAVALUE类型的实现

一、SCRIPTDATAVALUE类型 从《音视频入门基础&#xff1a;FLV专题&#xff08;9&#xff09;——Script Tag简介》中可以知道&#xff0c;根据《video_file_format_spec_v10_1.pdf》第80到81页&#xff0c;SCRIPTDATAVALUE类型由一个8位&#xff08;1字节&#xff09;的Type和…...

jvm里的metaspace oom 排查问题思路-使用MAT

文章目录 metapace oom 问题排查点-1-duplicate class 数量排查点-2-classloader 数量一些可能迷惑人的方向 metapace oom 问题 metapace 问题都是由加载的class 太多&#xff0c;导致内存不够报出来的。 排查点-1-duplicate class 数量 首先看这里&#xff0c;通常一个clas…...

2025舜宇招聘【内推码】

【2025内推码】 DSwNQ9yu DSJXN8Mr 舜宇集团2025届全球校园招聘正式启动&#xff01;&#xff01;&#xff01; 专业需求&#xff1a;机械、自动化、电子、电气、通信、控制、测控、计算机、软件、物理、光学等专业&#xff1b; 工作地点&#xff1a;宁波余姚、浙江杭州、广东…...

APP自动化搭建与应用

APP自动化环境搭建 用于做APP端UI自动化&#xff0c;adb连接手机设备。 需要的工具java编辑器&#xff1a;jdk、Android-sdk软件开发工具组、appium的python客户端、nodes.js、夜神模拟器、apk包、uiautomatorviewer 第一步&#xff1a;安装sdk&#xff0c;里面包含建立工具bu…...

kafka-windows集群部署

kafka-windows集群部署目录 文章目录 kafka-windows集群部署目录前言一、复制出来四个kafka文件夹二、修改集群每个kafka的配置文件四、启动zookeeper&#xff0c;kafka集群 前言 部署本文步骤可以先阅读这一篇博客&#xff0c;这篇是关于单机kafka部署测试的。本文用到的文件…...

4个顶级的大模型推理引擎

LLM 在文本生成应用中表现出色&#xff0c;例如具有高理解度和流畅度的聊天和代码完成模型。然而&#xff0c;它们的庞大规模也给推理带来了挑战。基本推理速度很慢&#xff0c;因为 LLM 会逐个生成文本标记&#xff0c;需要对每个下一个标记进行重复调用。随着输入序列的增长&…...

Oracle中ADD_MONTHS()函数详解

文章目录 前言一、ADD_MONTHS()的语法二、主要用途三、测试用例总结 前言 在Oracle数据库中&#xff0c;ADD_MONTHS()函数用于在日期中添加指定的月数。 一、ADD_MONTHS()的语法 ADD_MONTHS(date, n) 其中&#xff0c;date是一个日期值&#xff0c;n是一个整数值&#xff0c…...

【SQL】掌握SQL查询技巧:高效数据整合与查询优化

目录 1. SQL 的基本构成2. SQL 联接&#xff08;JOIN&#xff09;2.1 内联接&#xff08;INNER JOIN&#xff09;2.2 外联接&#xff08;OUTER JOIN&#xff09;2.2.1 左外联接&#xff08;LEFT JOIN&#xff09;2.2.2 右外联接&#xff08;RIGHT JOIN&#xff09;2.2.3 全外联…...

一个月学会Java 第5天 控制结构

Day5 控制结构 这么叫可能有些就算有基础的人也看不懂&#xff0c;其实就是if-else、switch-case、for、while、do-while这几个&#xff0c;没基础的听到了这个也不要慌张&#xff0c;这几个是程序的基础&#xff0c;多多训练就好 第一章 顺序结构 这章其实没有什么好讲的&…...

世界职业院校技能大赛(大数据技术与应用)参赛项目介绍内容模拟示例参考

最近关注世界职业院校技能大赛的同学应该都知道了&#xff0c;比赛已经正式改为”世界职业院校技能大赛“了&#xff0c;不仅仅是名称变化&#xff0c;而且比赛的形式也发生了巨大的改革&#xff0c;2024年世界职业院校技能大赛设置42个赛道&#xff0c;要求各比赛项目提交项目…...

【Python】文件及目录

文章目录 概要一、文件对象的函数1.1 open()函数1.2 文件对象的函数1.3 with语句 二、基于os和os.path模块的目录操作三、基于Pandas的文件处理3.1 Pandas读写各种类型文件 其他章节的内容 概要 本文主要将了打开文件的函数open()的参数&#xff0c;以及文件对象的函数&#x…...

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(下)

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 概述 OpenHarmony Camera驱动模型结构 HDI Implementation&#x…...

霓虹灯数字时钟(可复制源代码)

文章目录 一、效果演示二、CodeHTMLCSSJavaScript 三、实现思路拆分CSS 部分JavaScript 部分 四、源代码 一、效果演示 文末可一键复制完整代码 二、Code HTML <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><…...

大模型微调技术之 LoRA:开启高效微调新时代

一、LoRA 简介 LoRA&#xff0c;即低秩适应&#xff08;Low-Rank Adaptation&#xff09;&#xff0c;是一种用于微调大型语言模型的技术&#xff0c;旨在以较小的计算资源和数据量实现模型的快速适应特定任务或领域。 LoRA 方法通过引入低秩近似的思想&#xff0c;对大型预训…...

【Vue】Vue2(2)

文章目录 1 数据代理1.1 回顾Object.defineproperty方法1.2 何为数据代理1.3 Vue中的数据代理 2 事件处理2.1 事件的基本使用2.2 事件修饰符2.3 键盘事件 1 数据代理 1.1 回顾Object.defineproperty方法 <!DOCTYPE html> <html><head><meta charset&quo…...

如何实现一个基于 HTML+CSS+JS 的任务进度条

如何实现一个基于 HTMLCSSJS 的任务进度条 在网页开发中&#xff0c;任务进度条是一种常见的 UI 组件&#xff0c;它可以直观地展示任务的完成情况。本文将向你展示如何使用 HTML CSS JavaScript 来创建一个简单的、交互式的任务进度条。用户可以通过点击进度条的任意位置来…...

学会流体力学,冬天洗澡再也不冷啦

前些日子收到一位网友“究极理性怪物”的私信&#xff0c;说最近在学校的公共浴室洗澡时&#xff0c;快被冻死了&#xff0c;希望我从流体力学角度帮他分析一下浴室的温度分布&#xff0c;以便找到相对温暖的洗澡位置。 我看到后觉得很有意思&#xff0c;就与他展开了关于澡堂…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

大数据治理的常见方式

大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法&#xff0c;以下是几种常见的治理方式&#xff1a; 1. 数据质量管理 核心方法&#xff1a; 数据校验&#xff1a;建立数据校验规则&#xff08;格式、范围、一致性等&#xff09;数据清洗&…...

CTF show 数学不及格

拿到题目先查一下壳&#xff0c;看一下信息 发现是一个ELF文件&#xff0c;64位的 ​ 用IDA Pro 64 打开这个文件 ​ 然后点击F5进行伪代码转换 可以看到有五个if判断&#xff0c;第一个argc ! 5这个判断并没有起太大作用&#xff0c;主要是下面四个if判断 ​ 根据题目…...

统计按位或能得到最大值的子集数目

我们先来看题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;请你找出 nums 子集 按位或 可能得到的 最大值 &#xff0c;并返回按位或能得到最大值的 不同非空子集的数目 。 如果数组 a 可以由数组 b 删除一些元素&#xff08;或不删除&#xff09;得到&#xff0c;…...

Electron通信流程

前言 今天讲Electron框架的通信流程&#xff0c;首先我们需要知道为什么需要通信。这得益于Electron的多进程模型&#xff0c;它主要模仿chrome的多进程模型如下图&#xff1a; 作为应用开发者&#xff0c;我们将控制两种类型的进程&#xff1a;主进程和渲染器进程 。 …...