CCF CAT- 全国算法精英大赛(2024第二场)往届真题练习 2 | 珂学家


前言

这是第二场CCF的练习赛,找找手感,顺便熟悉下赛氪OJ平台。

当前就做了5题,感觉还可以,部分题目质量蛮高的,但是易错。

第1题dp入门题, 第5属于诈骗题,第2和第3挺有难度的,第四题感觉放水了。
在这里插入图片描述


真题

Hotpot

在这里插入图片描述

思路: 状态机DP

这是时间复杂度为 o ( n ) o(n) o(n)

应该是存在矩阵幂的解法的

n = int(input())s0, s1, s2, s3 = 1, 0, 0, 0mod = 10 ** 9 + 7
for i in range(n):s0, s1, s2, s3 = s0 + s1 + s2 + s3, s0 + s2, s0 + s1, s0s0 %= mods1 %= mods2 %= mods3 %= modprint ((s0+s1+s2+s3)%mod)

Hearthstone

在这里插入图片描述

思路:环型DP

其实也是线性DP,无非多了一个环型限制,题目保证n为偶数。

# 思维题n = int(input())arr = []
for _ in range(n):v1, v2, v3 = list(map(int, input().split()))arr.append((v1, v2, v3))from math import inf
def solve(f, tag):if tag == 1 and f == 2:return 0if tag == 0 and f == 0:return 0dp = [-inf] * 3dp[f] = arr[0][f]for i in range(1, n):v1, v2, v3 = arr[i]dp2 = [-inf] * 3if i % 2 == tag:dp2[1] = dp[0] + v2dp2[2] = max(dp[0], dp[1]) + v3else:dp2[0] = max(dp[1], dp[2]) + v1dp2[1] = dp[2] + v2dp = dp2res = 0for i in range(3):if tag == 0 and f > i:res = max(res, dp[i])elif tag == 1 and f < i:res = max(res, dp[i])return resans = 0
for i in range(0, 3):for j in (0, 1):ans = max(ans, solve(i, j))print (ans)

Best Travel Plans

在这里插入图片描述

思路: 反悔堆

挺难的这题,一开始普通的BFS写法,TLE到奔溃

然后想了想,是不是可以枚举最远的位子,然后贪心求解。

这样的话,就可以构建反悔堆求解最优场景了。

n, T = list(map(int, input().split()))es = list(map(int, input().split()))
us = list(map(int, input().split()))
vs = list(map(int, input().split()))from math import inf
import heapqhq = []res = 0
tmp = 0
acc = 0
for i in range(n):if i > 0:acc += es[i - 1]if acc > T:breakwhile acc + len(hq) > T and len(hq) > 0:tmp -= heapq.heappop(hq)j = 0while True:ng = us[i] - j * vs[i]if ng <= 0:breakif acc + len(hq) < T:heapq.heappush(hq, ng)tmp += ngelse:if len(hq) > 0 and hq[0] >= ng:breaktmp -= heapq.heappop(hq)heapq.heappush(hq, ng)tmp += ngj += 1res = max(res, tmp)print (res)

Tree

在这里插入图片描述

解题突破口: n ≤ 1000 n \le 1000 n1000

这题就是单纯的模拟,就算二叉搜索树退化为链表,最多 O ( n 2 ) O(n^2) O(n2)

涉及DFS操作,采用java编写

import java.io.BufferedInputStream;
import java.util.Scanner;public class Main {static class TreeNode {int val;TreeNode left, right;public TreeNode(int val) {this.val = val;}public void insert(int v) {if (this.val == v) return;if (this.val > v) {if (this.left == null) {this.left = new TreeNode(v);return;}this.left.insert(v);} else if (this.val < v) {if (this.right == null) {this.right = new TreeNode(v);return;}this.right.insert(v);}}public int insert(int v, int depth) {if (this.val == v) return depth;else if (this.val > v) {if (this.left == null) {return depth + 1;}return this.left.insert(v, depth + 1);} else {if (this.right == null) {return depth + 1;}return this.right.insert(v, depth +1);}}}public static void main(String[] args) {Scanner sc = new Scanner(new BufferedInputStream(System.in));int n = sc.nextInt();TreeNode root = null;int v = sc.nextInt();root = new TreeNode(v);for (int i = 1; i < n; i++) {int t = sc.nextInt();root.insert(t);}for (int i = 0; i < n; i++) {int t = sc.nextInt();System.out.println(root.insert(t, 1));}}}

Flower

在这里插入图片描述

思路: 排序即可

题目感觉有些绕,挺无语的,小诈骗吧

n, k = list(map(int, input().split()))arr = list(map(int, input().split()))
brr = list(map(int, input().split()))ls = brr
ls.sort(key=lambda x: -x)res = 0
for i in range(min(k, len(ls))):res += ls[i]
print (res)

写在最后

在这里插入图片描述

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

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

相关文章

【杂七杂八】Huawei Gt runner手表系统降级

文章目录 Step1&#xff1a;下载安装修改版华为运动与健康Step2&#xff1a;在APP里进行配置Step3&#xff1a;更新固件(时间会很长) 目前在使用用鸿蒙4 111版本的手表系统&#xff0c;但是感觉睡眠检测和运动心率检测一言难尽&#xff0c;于是想到是否能回退到以前的版本&…

设计模式14——组合模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 组合模式&#xff08;Composit…

LeetCode199二叉树的右视图

题目描述 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 解析 这一题的关键其实就是找到怎么去得到当前是哪一层级&#xff0c;可以利用队列对二叉树进行层次遍历&#xff0c;但…

ICRA 2024: NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院等研究人员开发了精细操作的手术机器人

英伟达&#xff08;NVIDIA&#xff09;正与学术研究人员合作&#xff0c;研究手术机器人。 NVIDIA 联合多伦多大学、加州大学伯克利分校、苏黎世联邦理工学院和佐治亚理工学院的研究人员开发了 ORBIT-Surgical&#xff0c;一个训练机器人的模拟框架&#xff0c;可以提高手术团…

vue3的api风格

Vue的组件有两种不同的风格&#xff1a;组合式API 和 选项式API 选项式api 选项式API&#xff0c;可以用包含多个选项的对象来描述组件的逻辑&#xff0c;如&#xff1a;data&#xff0c;methods&#xff0c;mounted等。 组合式api setup&#xff1a;是一个标识&#xff0c;告…

图像上下文学习|多模态基础模型中的多镜头情境学习

【原文】众所周知&#xff0c;大型语言模型在小样本上下文学习&#xff08;ICL&#xff09;方面非常有效。多模态基础模型的最新进展实现了前所未有的长上下文窗口&#xff0c;为探索其执行 ICL 的能力提供了机会&#xff0c;并提供了更多演示示例。在这项工作中&#xff0c;我…

Docker简单使用

1.简单认识 软件的打包技术&#xff0c;就是将打乱的多个文件打包为一个整体&#xff0c;比如想使用nginx&#xff0c;需要先有一台linux的虚拟机&#xff0c;然后在虚拟机上安装nginx.比如虚拟机大小1G&#xff0c;nginx100M。当有了docker后我们可以下载nginx 的镜像文件&am…

【openlayers系统学习】1.6下载要素,将要素数据序列化为 GeoJSON并下载

六、下载要素 下载要素 上传数据并编辑后&#xff0c;我们想让用户下载结果。为此&#xff0c;我们将要素数据序列化为 GeoJSON&#xff0c;并创建一个带有 download​ 属性的 <a>​ 元素&#xff0c;该属性会触发浏览器的文件保存对话框。同时&#xff0c;我们将在地图…

Linux--07---查看CPU、内存、磁盘

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 常用命令1.查看CPU使用率1.1 top 命令第一行是任务队列信息&#xff1a; top第二行为进程的信息 Tasks第三行为CPU的信息Mem:Swap 1.2 vmstat命令参数详解每个参数的…

CentOS部署NFS

NFS服务端 部署NFS服务端 sudo yum install -y nfs-utils挂载目录 给 NFS 指定一个存储位置&#xff0c;也就是网络共享目录。一般来说&#xff0c;应该建立一个专门的 /data 目录&#xff0c;方便起见使用临时目录 /tmp/nfs&#xff1a; mkdir -p /tmp/nfs #修改权限 chmo…

响应式处理-一篇打尽

纯pc端响应式 pc端平常用到的响应式布局 大致就如下三种&#xff0c;当然也会有其他方法&#xff0c;欢迎评论区补充 将div height、width设置成100% flex布局 flex布局主要是将flex-wrap: wrap&#xff0c; 最后&#xff0c;你可以通过给子元素设置 flex 属性来控制它们的…

Leecode热题100---45:跳跃游戏②

题目&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。 返回到达 nums[n - 1] 的最小跳跃次数。 思路&#xff1a; 如果某一个作为 起跳点 的格子可以跳跃的距离是 3&#xff0c;那么表示后面…

最新Adaptive特征融合策略,涨点又高效,想发表论文可以参考

自适应特征融合是一种非常高效的数据处理方法&#xff0c;它比传统的特征更能适应不同的数据和任务需求&#xff0c;也因此拥有广泛的应用前景&#xff0c;是深度学习领域的研究热点。 这种方法通过动态选择和整合来自不同层次或尺度的特征信息&#xff0c;不仅显著提升了模型…

4月空调行业线上市场销售数据分析

随着生活品质的提升&#xff0c;消费者对家用空调的诉求不仅仅满足于基本制冷制热功能&#xff0c;而是在环保节能、功能升维、舒适送风、智能科技、焕新设计等多维度提出需求。这种多样化的需求推动了空调产品的创新和升级&#xff0c;这不仅提高了空调的市场竞争力&#xff0…

如何改变echo在Linux下的输出颜色

文章目录 问题回答常规输出字体加粗斜体字带下划线闪烁效果 参考 问题 我正在尝试使用 echo 命令在终端中打印文本。 我想把文本打印成红色。我该怎么做&#xff1f; 回答 你可以使用 ANSI escape codes 定义控制输出颜色的变量。 ANSI escape codes是一种用于在文本中设置…

STM32 MAP文件结合固件文件分析

文章目录 加载域的结束地址并不是固件的结束地址&#xff1f;ROM中执行域的描述RAM中执行域的描述问题分析 中断向量表在固件中的存储位置代码段在固件中的位置只读数据Regin$$Table RW Data段其中的内部机理 总结 MAP 文件分析可以参考之前的文章 程序代码在未运行时在存储器…

element-ui手机区号+手机号

需求场景 项目开发中对方要求手机号带上全球区号 需求分析 项目使用的是若依前端框架&#xff0c;element-ui的框架。尝试使用已经网上的组件vue-country-intl等发现不怎么适配element-ui的样式等。这还不是关键的&#xff0c;关键的是弹窗中使用这些组件发现区号的下拉展示框…

一文了解基于ITIL的运维管理体系框架

本文来自腾讯蓝鲸智云社区用户&#xff1a;CanWay ITIL&#xff08;Information Technology Infrastructure Library&#xff09;是全球最广泛使用的 IT 服务管理方法&#xff0c;旨在帮助组织充分利用其技术基础设施和云服务来实现增长和转型。优化IT运维&#xff0c;作为企业…

Docker 容器间通讯

1、虚拟ip/访问 同一网络 安装docker时&#xff0c;docker会默认创建一个内部的桥接网络docker0&#xff0c;每创建一个容器分配一个虚拟网卡&#xff0c;容器之间(包括宿主机)可以根据分配的ip互相访问(ps:其他主机(包括其他主机的容器)无法ping通docker容器ip无法访问&#…

【qt】标准项模型

标准项模型 一.使用标准型项模型1.应用场景2.界面拖放3.创建模型4.配套模型5.视图设置模型6.视图属性的设置 二.从文件中拿到数据1.文件对话框获取文件名2.创建文件对象并初始化3.打开文件对象4.创建文本流并初始化5.读取文本流6.关闭文件7.完整代码 三.为模型添加数据1.自定义…