AtCoder Beginner Contest 397(ABCDE)

目录

A - Thermometer

翻译:

思路:

实现:

B - Ticket Gate Log

翻译:

思路:

实现:

C - Variety Split Easy

翻译:

思路:

实现:

D - Cubes

翻译:

思路:

实现:


A - Thermometer

翻译:

        高桥测量了自己的体温,发现它是 X^0C

        体温分为以下几种:

  • 高于或等于 38.0^0C:"高烧"
  • 高于或等于 37.5^0C 和低于 38.0^0C:"发烧"
  • 低于 37.5^0C:"正常"

高桥的体温属于哪种分类?请根据输出部分以整数形式给出答案。

思路:

        先判断>=38.0再判断<37.5,都不对输出发烧。可以写快点。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 1e5+10;void solve(){double n;cin>>n;if (n>=38){cout<<"1\n";}else if (n<37.5){cout<<"3\n";}else{cout<<"2\n";}
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();solve();return 0;
}



B - Ticket Gate Log

翻译:

        高桥汇总了检票口的使用记录。但是,他不小心删除了一些进出站记录。他正试图恢复被删除的记录。

        给你一个由 i 和 o 组成的字符串 S。我们想在 S 的任意位置插入 0 个或多个字符,这样得到的字符串就能满足以下条件:

  • 它的长度是偶数,每个奇数(第 1、第 3......个)字符都是 i,而每个偶数(第 2、第 4......个)字符都是 o。

        求需要插入的最少字符数。在此问题的约束条件下,可以证明通过插入适当数量的字符、 S 就能满足条件。

思路:

        字符串 io 是没问题,无需改变的。那么删除这些没问题的后剩下都是要在前后插入的字符了,统计一下剩下字符串长度即可。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 1e5+10;void solve(){string s;cin>>s;int cnt = 0;for (int i=1;i<s.size();i++){if (s[i]=='o' && s[i-1]=='i') cnt++;}int n = s.size();cout<<n-2*cnt<<"\n";
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();solve();return 0;
}



C - Variety Split Easy

翻译:

        给你一个长度为 N 的整数序列:A=(A_1,A_2,...,A_N)

        当把 A 在一个位置分割成两个非空(连续)子数组时,求这两个子数组中不同整数的计数之和的最大值。

        更具体地说,对于整数 i,求以下两个值的最大和,使得 1≤i≤N-1:(A_1,A_2,...,A_i) 中不同整数的数量,和(A_{i+1},A_{i+2},...,A_N)中不同整数的数量。 

思路:

        前后缀分解,倒序遍历设立一个数组suffix,suffix[i]为[ i : n ]中A的不同整数数量。之后正序遍历求出以每个为分割点得到的和,比较下。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int MX = 3e5+10;
int vis[MX];
void solve(){int n;cin>>n;vector<int> a(n+1);for (int i=1;i<=n;++i) cin>>a[i];vector<int> suffix(n+1);memset(vis,0,sizeof(vis));for (int cnt=0,i=n;i>=1;--i){vis[a[i]]++;if (vis[a[i]]==1) cnt++;suffix[i] = cnt;}int maxx = 0;memset(vis,0,sizeof(vis));for (int cnt=0,i=1;i<n;i++){vis[a[i]]++;if (vis[a[i]]==1) cnt++;maxx = max(maxx,cnt+suffix[i+1]);}cout<<maxx<<"\n";
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();solve();return 0;
}

D - Cubes

翻译:

        你被给予一个正整数N。决定是否存在一个正整数对(x,y)使得X^3-y^3=N。如果这个整数对,输出这样一个整数对(x,y)。

思路:

       N=x^3-y^3 \leq (y+1)^3-y^3=3y^2+3y+1如果y存在,可得y至少都为y<\sqrt\frac{N}{3}。而直接遍历明显不行。

        令d=x-y, 由N=x^3-y^3=(x-y)(x^2+xy+y^2)\geq (x-y)(x-y)^2=d^3可得d\leq \sqrt[3]N。那么如果(x,y)存在,则满足(d+y)^3-y^3=N=>d^3+3d^2y+3dy^2=N=>d^2+3dy+3y^2=\frac{N}{d}。(注意求幂使用pow返回的是浮点型存在精度问题)。且在d确定的情况下上式单调递增,可用二分判断在d确定下y是否存在。

        结论:先遍历d区间[1,\sqrt\frac{N}{3}),在内部二分搜索y是否有y满足d^2+3dy+3y^2=\frac{N}{d}。即可。时间复杂度为O(\sqrt[3]NlogN)。注意在此题中要注意整型越界问题。(纯纯数学题)

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
void solve(){ll n;cin>>n;for (ll d=1;d*d*d<=n;d++){if (n%d!=0) continue;ll l = 0,r = 900000010;while (l+1!=r){ll mid = (l+r)/2;if (d*d+3*d*mid+3*mid*mid>=n/d){r = mid;}else{l = mid;}}if (d*d+3*d*r+3*r*r==n/d){cout<<r+d<<" "<<r<<"\n";return;}}cout<<-1<<"\n";
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);solve();
}

E - Path Decomposition of a Tree

翻译:

        给你一颗有NK个点的树。点的编号为1,2,...,NK,并且第 i 条边(i=1,2,...,NK-1)连接点u_iv_i

        确定这棵树是否可以分解成 N 条路径,每条路径的长度为 K。更确切地说,确定是否存在满足以下条件的 N×K 矩阵 P:

  •  P_{1,1},...,P_{1,K},P_{2,1},...,P_{N,K}是一个由1,2,...,NK组成的排列。
  • 对于每个i=1,2,...,N和j=1,2,...,K-1它们间有边连接着点P_{i,j},P_{i,j+1}

思路:

        对于一个有NK个节点的树(以1为根节点),要求得到N个互不干扰大小为K的子树。

        如果一个子树的大小为k(当前树的根节点也算上)且子节点数量 <= 2。那么这颗子树为可用路径,删除它。

        如果子树大小 >k 或 子节点数量 >=3 或 子树大小 <k 且 子节点数量 >=2。那么答案就只能为No。对于上面子树的情况可以画图辅助思考下。  

实现:

#include<bits/stdc++.h>
using namespace std;
const int MX = 2e5+10;
int n,k;
vector<vector<int>> tree(MX);
int f = 1;
// 属于当前点的子树大小
int dfs(int now,int fa){int res = 1,cnt = 0;for (int& i:tree[now]){if (i==fa) continue;int tree_size = dfs(i,now);res += tree_size;if (tree_size) cnt++;}if (res>k || cnt>=3 || res<k && cnt>=2){f = 0;}if (res==k && cnt<=2){res = 0;}return res;
}
void solve(){cin>>n>>k;for (int x,y,i=1;i<n*k;i++){cin>>x>>y;tree[x].push_back(y);tree[y].push_back(x);}dfs(1,1);if (f){cout<<"Yes\n";}else{cout<<"No\n";}
}
int main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);solve();
}

  有建议可以评论,我会积极改进qwq。

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

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

相关文章

数模AI使用教程(新) 2025.3.17

DeepseekR1doubao1.5大模型组合&#xff0c;数模智能体题目解答一等水平&#xff0c;另外也有统计建模、期刊复现智能体。 功能&#xff1a;问题重述、解释数据文件、深度思考与逻辑梳理、问题关键点分析、知识整理、查找数据源、问题分析、使用方法推荐[会询问要求]、模型建立…

Spring Cloud Gateway 生产级实践:高可用 API 网关架构与流量治理解析

API 网关的核心价值 在分布式微服务架构中&#xff0c;API 网关作为系统流量的唯一入口&#xff0c;承担着路由分发、安全防护、流量治理三大核心职责。Spring Cloud Gateway 基于响应式编程模型与 Netty 高性能网络框架&#xff0c;提供灵活的路由规则、动态过滤器链和深度集…

在Pycharm配置conda虚拟环境的Python解释器

〇、前言 今天在配置python解释器时遇到了这样的问题 经过一下午自行摸索、上网搜寻后&#xff0c;终于找到的解决的方案&#xff0c;遂将该方法简要的记录下来&#xff0c;以备后用&#xff0c;并希望能帮助到有同样问题或需求的朋友:) 我所使用的软件的版本如下&#xff0c;假…

宽带(Broadband)

宽带&#xff08;Broadband&#xff09; 是一种高速互联网接入技术&#xff0c;能够同时传输多种类型的数据&#xff08;如语音、视频、文本等&#xff09;。与传统的窄带&#xff08;如拨号上网&#xff09;相比&#xff0c;宽带提供了更高的数据传输速率和更稳定的连接&#…

集成学习(上):Bagging集成方法

一、什么是集成学习&#xff1f; 在机器学习的世界里&#xff0c;没有哪个模型是完美无缺的。就像古希腊神话中的"盲人摸象"&#xff0c;单个模型往往只能捕捉到数据特征的某个侧面。但当我们把多个模型的智慧集合起来&#xff0c;就能像拼图一样还原出完整的真相&a…

VLLM:虚拟大型语言模型(Virtual Large Language Model)

VLLM&#xff1a;虚拟大型语言模型&#xff08;Virtual Large Language Model&#xff09; VLLM指的是一种基于云计算的大型语言模型的虚拟实现。它通常是指那些由多个服务器组成的分布式计算环境中的复杂机器学习模型&#xff0c;这些模型能够处理和理解大量的文本数据。VLLM的…

Springboot+Vue登录、注册功能(含验证码)(后端!)

我们首先写一个接口&#xff0c;叫login&#xff01;然后对传入一个user&#xff0c;因为我们前端肯定是要传过来一个user&#xff0c;然后我们后端返回一个user&#xff0c;因为我们要根据这个去校验&#xff01;我们还引入了一个hutool的一个东西&#xff0c;在pom文件里面引…

冯 • 诺依曼体系结构

冯 • 诺依曼体系结构 一、冯 • 诺依曼体系结构推导阶段 1&#xff1a;初始计算机体系结构&#xff08;仅输入、运算、输出&#xff09;阶段 2&#xff1a;加入控制功能&#xff0c;初步形成 CPU 概念阶段 3&#xff1a;性能瓶颈与引入内存阶段 4&#xff1a;最终冯诺依曼体系…

Python print() 打印多个变量时,可变对象和不可变对象的区别

先来看这段代码&#xff1a; tmp [] print(tmp, tmp.append(1), tmp)输出&#xff1a; [1] None [1]并不是一些人认为的 [] None [1] 这是因为列表是可变对象&#xff0c;print()打印前会先计算出所有结果&#xff0c;最后再打印出来&#xff0c;中间在列表中添加了1&#…

【数学 线性代数】差分约束

前言 C算法与数据结构 本博文代码打包下载 什么是差分约束 x系列是变量&#xff0c;y系列是常量&#xff0c;差分系统由若干如下不等式组成。 x1-x2 < y1 x2-x3 < y2 ⋯ \cdots ⋯ 可能有负环的最短路 个人习惯&#xff1a;如果存在a指向b的边&#xff0c;则a是b的…

AutoGen :使用 Swarm 构建自治型多智能体团队

👉👉👉本人承接各类AI相关应用开发项目(包括但不限于大模型微调、RAG、AI智能体、NLP、机器学习算法、运筹优化算法、数据分析EDA等) !!!👉👉👉 有意愿请私信!!!AutoGen 的 AgentChat 模块提供了一种强大的方法来构建多智能体协作系统。 在之前的文章中,我们探讨了…

2025人工智能“落地生花”:这六大领域正掀起颠覆性革命

——从医疗到养老&#xff0c;一场“AI”的全民狂欢正在上演 2025年的春天&#xff0c;全球科技界的热搜被一个中国AI大模型“霸榜”——DeepSeek。从春晚的机器人热舞到政务系统的“数字员工上岗”&#xff0c;从医疗诊断到工业炼钢&#xff0c;这场始于春节的技术海啸&#…

第27周JavaSpringboot git初识

Git 课程笔记 一、Git 的介绍 1. Git 的诞生背景 Git 是 Linux 内核的作者 Linus Torvalds 为了更好地管理 Linux 内核开发而创建的版本控制系统。在 Linux 内核开发初期&#xff0c;由于开发者众多&#xff0c;协作成本很高&#xff0c;后来使用了 BitKeeper 工具来辅助协作…

蓝耘智算|从静态到动态:探索Maas平台海螺AI图片生成视频功能的强大能力

文章目录 &#x1f44f;一、技术介绍&#x1f44f;二、平台注册&#x1f44f;三、功能体验&#x1f44f;四、总结 随着人工智能技术的快速发展&#xff0c;视频处理和生成技术已经成为了众多行业关注的热点。最近&#xff0c;我有机会体验了蓝耘智算平台的Maas平海螺AI视频产品…

解决从deepseek接口获取的流式响应输出到前端都是undefined的问题

你的前端 EventSource 代码遇到了 undefined 连续输出 的问题&#xff0c;通常是因为&#xff1a; AI 返回的内容被拆成了单个字符&#xff0c;导致前端 JSON.parse(event.data).content 获取到的是单个字符&#xff0c;而 undefined 可能是因为某些数据块没有 content 字段。…

VLLM专题(二十七)—使用 Kubernetes

在Kubernetes上部署vLLM是一种可扩展且高效的方式来服务机器学习模型。本指南将引导您使用原生Kubernetes部署vLLM。 此外,您还可以使用以下任意一种方式将vLLM部署到Kubernetes: HelmInftyAI/llmazKServekubernetes-sigs/lwsmeta-llama/llama-stacksubstratusai/kubeaivllm…

前缀和 之 哈希表 之 和 的奇偶与倍数

文章目录 930.和相同的二元子数组523.连续的子数组和 求解连续子数组的和的问题&#xff0c;常常会使用到这个前缀和的思路&#xff0c;当然当数组存在单调性的时候&#xff0c;可以考虑使用不定长滑动窗口&#xff0c;在这里解释一下&#xff0c;何为数组的和存在这个单调性&a…

Docker Compose 和 Kubernetes(K8s)对比

Docker Compose 和 Kubernetes&#xff08;K8s&#xff09;在某些方面有相似的功能&#xff0c;但它们的 核心用途和适用场景不同。以下是它们的主要区别和联系&#xff1a; 1. Docker Compose 和 Kubernetes 的区别 对比项Docker ComposeKubernetes&#xff08;K8s&#xff0…

晶艺代理,100V3.5A高耐压LA1823完全替换MP9487--启烨科技有限公司

晶艺品牌LA1823是异步降压转换器&#xff0c;COT控制&#xff0c;PFM工作模式, 150KHz/ 250KHz/ 450KHz &#xff0c;开关频率可调节&#xff0c;输入电压4.5~100V&#xff0c;2A平均电流&#xff0c;峰值电流3.5A&#xff0c;采用ESOP8封装。 晶艺LA1823的特性&#xff1a; 4.…

PLC控制柜在技术创新驱动中功能演进 尤劲恩科技

在智能制造体系中&#xff0c;PLC控制柜不仅承担着传统设备控制的基础功能&#xff0c;更通过工业以太网、PROFIBUS等现场总线技术&#xff0c;构建起分布式控制系统&#xff08;DCS&#xff09;。这种拓扑结构使生产线具备实时数据采集、远程监控和智能决策能力&#xff0c;显…