24年大一尺取练习(东北林业大学)

news2024/12/28 17:46:55

前言:

  今天下午才刚看到oj上发了这次练习,我已经错过了截止时间,刚好不是很想复习六级,就把这次练习补了吧。

正文:

Problem:A 尺取Language:

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int a[N];
int book[N],book2[N];
int n,cnt=0,ans=0x3f3f3f;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(book[a[i]]==0){
			book[a[i]]++;
			cnt++;
		}
	}
	//cout<<cnt<<endl;
	int l=0,r=0,cnt2=0;
	while(l<=r&&r<=n){
		//cout<<cnt<<cnt2<<endl;
		if(cnt2<cnt){
			r++;
			if(book2[a[r]]==0){
				cnt2++;
			}
			book2[a[r]]++;
		}
		else{
			ans=min(ans,r-l+1);
			book2[a[l]]--;
			if(book2[a[l]]==0)cnt2--;
			l++;
		}
	}
	cout<<ans<<endl;
	return 0;
}

根据字母出现次数来判断是否包含所有。

Problem:B 尺取-Graveyard Design:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
typedef struct stu{
	int t;
	int l;
	int r;
}ans;
ans anss[1000];
int main(){
	cin>>n;
	ll l=1,r=1,cnt=0,tmp=1;
	while(l<=r&&r<=(int)sqrt(n)+2){
		if(tmp<n){
			r++;tmp+=r*r;
		}
		else{
			if(tmp==n){
				anss[++cnt]={r-l+1,l,r};
			}
			tmp-=l*l;
			l++;
		}
		//cout<<l<<" "<<r<<endl;
	}
	cout<<cnt<<endl;
	for(int i=1;i<=cnt;i++){
		cout<<anss[i].t<<" ";
		for(int j=anss[i].l;j<=anss[i].r;j++){
			cout<<j<<" ";
		}
		cout<<endl;
	}
	return 0;
}

数据是小于10^14,记得开long long,然后就是经典的尺取,注意答案先用自定义的结构体存下来,记得输出个数和长短。

Problem:C 尺取-Sum of Consecutive Prime Numbers:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
int prime[N],b[N];
void init(){
	int cnt=0;
	for(int i=2;i<=N;i++){
		if(b[i]==0){
			prime[++cnt]=i;
			for(int j=1;j*i<=N;j++){
				b[j*i]=1;
			}
		}
	}
}
int main(){
	init();
	int x;
	while(cin>>x){
		if(x==0)return 0;
		int l=1,r=1,cnt=2,ans=0;
		while(l<=r&&prime[r]<=x){
			if(cnt<x){
				r++;
				cnt+=prime[r];
			}
			else{
				if(cnt==x)ans++;
				cnt-=prime[l];
				l++;
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}

先算出规定范围内的素数数组,再进行尺取。

Problem:D 尺取-序列:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
ll a[N];
int main(){
	int t;
	cin>>t;;
	while(t--){
		ll n,s;
		cin>>n>>s;
		for(int i=1;i<=n;i++){
			cin>>a[i];
		}
		ll l=0,r=0;ll cnt=0,ans=0x3f3f3f;
		while(l<=r&&r<=n){
			if(cnt<s){
				r++;
				cnt+=a[r];
			}
			else{
				ans=min(ans,r-l+1);
				cnt-=a[l];
				l++;
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}

这应该是尺取最标准的模板题了,求满足条件的子序列的最小长度。

Problem:E 尺取-字符串:

#include<bits/stdc++.h>
using namespace std;
int book[100000];
int main(){
	string s;
	int cnt2=1,ans=106;
	cin>>s;
	int l=0,r=0;book[s[0]]++;
	while(l<=r&&r<s.size()){
		if(cnt2<26){
			r++;
			if(book[s[r]]==0)cnt2++;
			book[s[r]]++;
		}
		else{
			ans=min(ans,r-l+1);
			book[s[l]]--;
			if(book[s[l]]==0)cnt2--;
			l++;
		}
	}
	cout<<ans<<endl;
	return 0;
}

依旧是通过记录次数来判断条件是否成立和指针移动情况。

Problem:F 林大实验林场--尺取法:

和A题一个代码,没什么好说的。

后记:

  英语六级就要开始了,我连真题都还没刷几道,离考试越近反而学习激情少了许多。最近也开始考虑后面的专业(转,主要是cs,ce或大数据)选择与未来大学学习的规划了,是卷绩点保研(其实自己好像也卷不过)还是根据网上的一些学习路线去面向就业(好像自己也找不到),目前还是很纠结的,感觉不管做哪种选择都有点后悔啊(

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何把路由器设备的LAN口地址为三大私网地址

要将路由器的LAN口地址配置为三大私有IP地址范围之一&#xff08;10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16&#xff09;&#xff0c;我们需要访问路由器的管理界面并进行相应的设置。 下面是步骤&#xff1a; 连接到路由器&#xff1a; 连接到路由器的管理界面&#xf…

C++设计模式——Bridge桥接模式

一&#xff0c;桥接模式简介 桥接模式是一种结构型设计模式&#xff0c;用于将抽象与实现分离&#xff0c;这里的"抽象"和"实现"都有可能是接口函数或者类。 桥接模式让抽象与实现之间解耦合&#xff0c;使得开发者可以更关注于实现部分&#xff0c;调用…

谷粒商城实战(036 k8s集群学习2-集群的安装)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第343p-第p345的内容 k8s 集群安装 kubectl --》命令行操作 要进入服务器 而且对一些不懂代码的产品经理和运维人员不太友好 所以我们使用可视化…

【5.x】ELK日志分析

ELK日志分析 一、ELK概述 1、ELK简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将ElasticSearch、Logstash和Kiabana三个开源工具配合使用&#xff0c;完成更强大的用户对日志的查询、排序、统计需求。 一个完整的集中式日志系统&#xff0c;需要包含以下几个主…

Java | Leetcode Java题解之第149题直线上最多的点数

题目&#xff1a; 题解&#xff1a; class Solution {public int maxPoints(int[][] points) {int n points.length;if (n < 2) {return n;}int ret 0;for (int i 0; i < n; i) {if (ret > n - i || ret > n / 2) {break;}Map<Integer, Integer> map ne…

SpringBoot系列——使用Spring Cache和Redis实现查询数据缓存

文章目录 1. 前言2. 缓存2.1 什么是缓存2.2 使用缓存的好处2.3 缓存的成本2.4 使用Spring Cache和Redis的优点 3. Spring Cache基础知识3.1 Spring Cache的核心概念3.2 Spring Cache的注解3.2.1 SpEL表达式3.2.2 Cacheable3.2.3 CachePut3.2.4 CacheEvict 4. 实现查询数据缓存4…

eclipse创建maven项目

第一步&#xff1a;打开eclipse 我们选择java项目即可 点击finish即可 它会自动下载插件 然后在控制台上输入Y即可

C语言 | Leetcode C语言题解之第150题逆波兰表达式求值

题目&#xff1a; 题解&#xff1a; int evalRPN(char** tokens, int tokensSize) {int n tokensSize;int stk[(n 1) / 2];memset(stk, 0, sizeof(stk));int index -1;for (int i 0; i < n; i) {char* token tokens[i];if (strlen(token) > 1 || isdigit(token[0])…

LeetCode | 28.找出字符串中第一个匹配项的下标 KMP

这是字符串匹配问题&#xff0c;朴素做法是两重遍历&#xff0c;依次从主串的i位置开始查看是否和模式串匹配&#xff0c;若不匹配就换下一个位置进行判断&#xff0c;直到找到或者遍历完&#xff0c;时间复杂度 O ( m n ) O(m \times n) O(mn) 还可以对主串进行处理&#xff…

Django 5 Web应用开发实战

文章目录 一、内容简介二、目录内容三、值得一读四、适读人群 一、内容简介 《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体&#xff0c;是一本从零基础到精通Django Web企业级开发技术的实战指南。《Django 5 Web应用开发实战》内容以Python 3.x和…

边坡监测规范:确保边坡工程安全稳定的专业准则

边坡工程是土木工程中不可或缺的一部分&#xff0c;其安全性直接关系到工程整体的质量与稳定性。因此&#xff0c;在边坡工程中实施有效的监测措施&#xff0c;遵循一系列专业的监测规范&#xff0c;对于预防边坡失稳、滑坡等灾害的发生&#xff0c;保障人民群众的生命财产安全…

Leetcode 力扣119. 杨辉三角 II (抖音号:708231408)

给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: rowIndex 3 输出: [1,3,3,1]示例 2: 输入: rowIndex 0 输出: [1]示例 3: 输入: rowIndex 1 输出: [1,1]提示…

Golang | Leetcode Golang题解之第150题逆波兰表达式求值

题目&#xff1a; 题解&#xff1a; func evalRPN(tokens []string) int {stack : make([]int, (len(tokens)1)/2)index : -1for _, token : range tokens {val, err : strconv.Atoi(token)if err nil {indexstack[index] val} else {index--switch token {case ""…

Java | Leetcode Java题解之第150题逆波兰表达式求值

题目&#xff1a; 题解&#xff1a; class Solution {public int evalRPN(String[] tokens) {int n tokens.length;int[] stack new int[(n 1) / 2];int index -1;for (int i 0; i < n; i) {String token tokens[i];switch (token) {case "":index--;stack…

【ElasticSearch】windows server 2019安装ES8.9.1 + kibana8.9.1 + IK分词器

目录 准备工作 ES Kibana IK 安装 es es访问测试 将es安装为系统服务 Kibana 配置es 运行kibana 访问测试 IK 补充 准备工作 ES8.9.1 kibana8.9.1 IK的版本最好要对应上&#xff01;&#xff01;&#xff01; ES es8.9.1&#xff1a; https://artifa…

[大模型]Phi-3-mini-4k-Instruct Lora 微调

本节我们简要介绍如何基于 transformers、peft 等框架&#xff0c;对 Phi-3-mini-4k-Instruct 模型进行 Lora 微调。Lora 是一种高效微调方法&#xff0c;深入了解其原理可参见博客&#xff1a;知乎|深入浅出 Lora。 这个教程会在同目录下给大家提供一个 nodebook 文件&#x…

简单了解RS485与RS232(UART)

简单了解RS485与RS232&#xff08;UART&#xff09; 一、UART和RS232、RS485的关系1、UART2、RS232/RS4853、RS232 与 RS485 的区别与联系 二、Modbus协议说明1、什么是协议2、Modbus协议说明3、Modebus通信过程4、Modbus存储区5、Modbus协议类型6、Modbus功能码 三、stm32HC-S…

【StableDiffusion】采样方法对比优缺点及评估,采样器 调度器(目前已有的 采样器介绍与评估)

采样器 Sampler 采样方法 决定了 如何从 噪声 生成 图像 的过程&#xff0c;也就是去噪过程如何进行 包含 DPM 的采样方法&#xff08;逆转扩散采样&#xff09; DPM → Diffusion Probabilistic Models&#xff08;扩散概率模型&#xff09; DPM、DPM2 包含 DPM 的采样方…

FastAPI 作为H5中流式输出的后端

FastAPI 作为H5中流式输出的后端 最近大家都在玩LLM&#xff0c;我也凑了热闹&#xff0c;简单实现了一个本地LLM应用&#xff0c;分享给大家&#xff0c;百分百可以用哦&#xff5e;^ - ^ 先介绍下我使用的三种工具&#xff1a; Ollama&#xff1a;一个免费的开源框架&…

Redisson原理解析

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…