沪粤联赛 2025年3月月赛Div-2

news/2025/4/2 10:52:12/文章来源:https://www.cnblogs.com/Easoncalm/p/18799685

问题 A: 道路清扫

赛时思路

贪心思路,枚举位置。(比较方法为绝对值)

赛后思路

按照排序 \(D_i\) ,枚举 \(N\) 个垃圾的起点和终点,计算移动距离即可。

代码

#include <bits/stdc++.h>
using namespace std;int main() {freopen("clean.in","r",stdin);freopen("clean.out","w",stdout);int n, m;cin >> n >> m;int d[m];for (int i = 0; i < m; ++i) cin >> d[i];sort(d, d + m);int res = 1e9; for (int i = 0; i <= m - n; ++i) {int l = d[i], r = d[i + n - 1];int dist = l >= 0 ? r : (r <= 0 ? -l : min(r - 2*l, 2*r - l));if (dist < res) res = dist;}cout << res << endl;return 0;
}

问题 B: 滑动拼图

赛前思路

正向模拟暴力骗分。

赛后思路

直接模拟会超时。

反过来考虑,计算最后左上角的格子在上一次的位置,可以做到O(n)。

代码

#include <bits/stdc++.h>
using namespace std;struct Crystal { int x, y, c; };int main() {freopen("crystal.in","r",stdin);freopen("crystal.out","w",stdout);int Gx, Gy, N, F;cin >> Gx >> Gy >> N >> F;Crystal* c = new Crystal[N];for (int i = 0; i < N; ++i)cin >> c[i].x >> c[i].y >> c[i].c;int** dp = new int*[Gx+1];for (int x = 0; x <= Gx; ++x) {dp[x] = new int[Gy+1];for (int y = 0; y <= Gy; ++y)dp[x][y] = (x + y) * F;}for (int i = 0; i < N; ++i) {int xi = c[i].x, yi = c[i].y, ci = c[i].c;for (int x = Gx; x >= 0; --x) {for (int y = Gy; y >= 0; --y) {if (x >= xi && y >= yi) {int px = x - xi, py = y - yi;if (px <= Gx && px >= 0 && py <= Gy && py >= 0)if (dp[x][y] > dp[px][py] + ci)dp[x][y] = dp[px][py] + ci;}}}}cout << dp[Gx][Gy] << endl;for (int x = 0; x <= Gx; ++x) delete[] dp[x];delete[] dp;delete[] c;return 0;
}

问题 C: 水晶城

赛前思路

暴力枚举。

赛后思路

考虑 DP,设 $ dp_{x,y} $ 表示走到 \((x,y)\) 的最小费用,初始化时$dp_{x,y} = (x + y) \times F $。

对于每一颗移动水晶,刷新 DP 表,转移为$dp_{x-x_i,y-y_i}+c_i \rightarrow dp_{x,y} $。

要求的答案为\(dp_{G_x,G_y}\)

代码

#include <bits/stdc++.h>
using namespace std;struct Crystal { int x, y, c; };int main() {freopen("crystal.in","r",stdin);freopen("crystal.out","w",stdout);int Gx, Gy, N, F;cin >> Gx >> Gy >> N >> F;Crystal* c = new Crystal[N];for (int i = 0; i < N; ++i)cin >> c[i].x >> c[i].y >> c[i].c;int** dp = new int*[Gx+1];for (int x = 0; x <= Gx; ++x) {dp[x] = new int[Gy+1];for (int y = 0; y <= Gy; ++y)dp[x][y] = (x + y) * F;}for (int i = 0; i < N; ++i) {int xi = c[i].x, yi = c[i].y, ci = c[i].c;for (int x = Gx; x >= 0; --x) {for (int y = Gy; y >= 0; --y) {if (x >= xi && y >= yi) {int px = x - xi, py = y - yi;if (px <= Gx && px >= 0 && py <= Gy && py >= 0)if (dp[x][y] > dp[px][py] + ci)dp[x][y] = dp[px][py] + ci;}}}}cout << dp[Gx][Gy] << endl;for (int x = 0; x <= Gx; ++x) delete[] dp[x];delete[] dp;delete[] c;return 0;
}

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

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

相关文章

SvelteKit 最新中文文档教程(16)—— Service workers

前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:Svelte 以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构…

OLLAMA 自定义大模型角色

在Ollama中通过deepseek-r1生成特定角色的模板(如教案设计),核心是通过Modelfile定义模型的系统提示(SYSTEM)和对话模板(TEMPLATE)。以下是具体步骤和示例: 一、Modelfile 基本结构与关键指令FROM指令指定基础模型,这里你可以使用ollama本地下载的模型,也可以去Huggi…

WebSocket调试神器对决:Apipost凭何碾压Apifox?

你以为所有API工具都能玩转WebSocket? 当你的APP需要实时股票行情推送,当你的游戏要处理千人同屏交互,当你的IM系统必须保障消息零延迟——传统HTTP协议的"一问一答"模式瞬间破功。此刻WebSocket协议才是真正的救世主,这个全双工通信协议能让客户端与服务器建立&…

一年前的无心之举,一年后我想要将其做的更好——公众号开通。

大家好,答应的事情要做到。 我是晚秋,我在这里,这是我的公众号。 一年前我想把学过的技术,解决得问题都记录下来,帮助更多的人。 日复一日,也放弃过。 但是到今日,忽然看到自己的无心之举帮助了很多刚进入技术这一行的人。 他们迷茫,他们困顿,正如当初的我一样。 谢谢…

用户头像呼吸光环+鼠标悬停旋转放大

用户头像呼吸光环+鼠标悬停旋转放大在 子比主题后台 – 自定义代码 – 自定 CSS 样式代码 里面添加下面代码: /*【用户头像呼吸光环+鼠标悬停旋转放大】开始 */ .avatar{border-radius: 50%; animation: light 4s ease-in-out infinite; transition: 0.5s;}.avatar:hover{tran…

开源守护,智护童年——幼儿园未成年行为与安全智能监控系统

在孩子成长的每一步,安全始终是第一位的。幼儿园作为孩子们探索世界的起点,其安全管理的重要性不言而喻。然而,哭闹、打闹、意外跌倒,甚至外部隐患如陌生人逗留、内部管理疏漏等问题,常常让传统人工监控捉襟见肘。家长们也迫切希望了解孩子在园的点滴,渴望一份安心与信任…

20241220廖补林实验二《Python程序设计》实验报告

实验二 计算器设计 (一)实验内容 设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。 考核基本语法、判定语句、循环语句、逻辑运算等知识点 (二)实验要求 创建工程项目,使用Python语言实现具体的操作运算,并完成程序调试和运行,代码托管到码云。 我用…

网络基础

一、概念 冲突域设备发送数据会产生冲突的网络范围 集线器的所有接口在同一个冲突域 交换机的每个接口都是一个独立的冲突域寻址IP寻址是寻找目标在某一个范围 MAC寻址是具体寻找某一个设备MTU数据包的最大传输单元 接口收发数据支持的单个包的最大长度 以太网接口默认MTU1500B…

20241309 实验二《Python程序设计》实验报告

20241309 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2413 姓名: 梅良谦 学号:20241309 实验教师:王志强 实验日期:2025年3月26日 必修/选修: 公选课 一、实验内容 1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善。…

【操作系统】进程管理(二)

一、前言之前已经介绍了操作系统的各个模块,现在来具体深入学习操作系统中的进程管理。 二、进程的基本概念在未配置OS的系统中,程序的执行方式是顺序执行,即必须在一个程序执行完成后,才允许另外一个程序执行;在多道程序环境下,则允许多个程序并发执行。也正是程序的并发…

MybatisPlus--持久层接口

IService: Save()boolean save(T entity) //批量插入 boolean saveBatch(Collection<T> entityList) boolean saveBatch(Collection<T> entityList, int vatchSIze)SQL:INSERT INTO user (name, email) VALUES (John Doe, john.doe@example.com)批量SQL:INSERT…