C. Against the Difference

题目:

思路:

简单DP

不难发现我们贪心是没法贪的,因此考虑DP

我们令 dp[i] 为 前 i 个元素能构造出的最长整齐子序列的长度,不难发现一个很简单的转移,即直接继承 dp[i] = dp[i-1],那么现在考虑增加奉献的情况

对于 a[i],如果我们此时要选择增加奉献,那么就要从前 a[i] 个位置转移,且这 a[i] 个位置 j 的 a[j] 都是 a[i]

所以考虑储存 a[i] 的位置,如果 pos[a[i]].size() >= a[i],那么说明此时可以转移,贪心的想,我们肯定是越后转移越好,所以我们直接从前 a[i] 个位置转移即可,此时增加的奉献就是 a[i]

具体实现看代码 

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());void solve()
{int n, x;cin >> n;vector<int> dp(n + 1, 0);vector<vector<int>> pos(n + 1);for (int i = 1; i <= n; i++){cin >> x;dp[i] = dp[i - 1];pos[x].push_back(i);if (pos[x].size() >= x)dp[i] = max(dp[i], dp[pos[x][pos[x].size() - x] - 1] + x);}cout << dp[n] << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;cin >> t;while (t--){solve();}return 0;
}

D. For the Champion

题目:

思路:

经典距离

我们不难发现,绝对值很麻烦,所以我们应该考虑删除绝对值的影响

同时我们还能发现,如果 k 很小,这其实不利于我们寻找,因为会有很多的节点干扰我们

所以我们考虑一个很大的坐标,如 (∞,∞),这样的话我们肯定能确定是哪个点的结果

考虑十步内得出,我们不妨考虑两个极端: P1 (∞,∞),P2 (∞,-∞)


我们假设求出的答案是 ask,原始坐标是 (x, y)

①.对于 P1,我们不难写出对应式子

\left | x+x_m-x_i \right |+\left | y+y_m-y_i \right |=ask

其中 x/y_m 代表移动的距离,x/y_i 代表距离最短时对应的点,那么拆开就有(这里直接化简)

x+y=ask-x_m-y_m+x_i+y_i

其中两个 x/y_m 都是 ∞ 均为已知量,那么为了让 ask 最小,我们的 x_i + y_i 肯定是最大的,所以预处理即可

②.对于 P2,我们同理可写出

\left | x+x_m-x_i \right |+\left | y-y_m-y_i \right |=ask

但是由于此时 y-y_m 小于 y_i,因此考虑变号,则有

x+x_m-x_i+(y_i - y + y_m) = ask

化简得

x-y=ask-x_m-y_m-(y_i - x_i)

同理为了让 ask 最小,我们就要让 y_i - x_i 最小,所以也是预处理出来


我们将上面两个式子优化一下,则有

x+y=res1

x-y=res2

由于 res1 和 res2 我们可以求出来,那么也就能求出 x,y 的坐标


具体的,由于我们无法一次直接移动 ∞ 长度,那我们就移动一个很长的距离即可,由于 k <= 1e9,所以我们考虑移动四次 1e9,其中两次 R 来达到 x 轴无限远,两次 D 来达到 y 轴无限远,这样就能得到一个 res 了

而对于另一个 res,我们直接四次 U 即可,因为 x 轴无限远了,所以只需要考虑 y 轴,所以先两次抵消向下无限远,然后向上即可,这样另一个 res 也解决了

综上,我们只使用了 8 次即可完成问题

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());void solve()
{int n;cin >> n;int mx = -1e18, mi = 1e18;for (int i = 0; i < n; i++){int x, y;cin >> x >> y;mi = min(mi, y - x);mx = max(mx, x + y);}int ask;cout << "? R 1000000000" << endl;cin >> ask;cout << "? R 1000000000" << endl;cin >> ask;cout << "? D 1000000000" << endl;cin >> ask;cout << "? D 1000000000" << endl;cin >> ask;int res1 = ask - 4000000000LL - mi;cout << "? U 1000000000" << endl;cin >> ask;cout << "? U 1000000000" << endl;cin >> ask;cout << "? U 1000000000" << endl;cin >> ask;cout << "? U 1000000000" << endl;cin >> ask;int res2 = ask - 4000000000LL + mx;cout << "! " << (res1 + res2) / 2 << " " << (res2 - res1) /2 << endl;
}signed main()
{int t = 1;cin >> t;while (t--){solve();}return 0;
}

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

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

相关文章

如何评价 Kimi 开源的推理平台 Mooncake?对行业有什么影响?

2月26日&#xff0c;Mooncake的论文获得「计算机存储顶会 FAST 2025」Best Paper&#xff0c;这也是国内连续第三年拿到FAST Best Paper。同时&#xff0c;Mooncake 团队宣布和 vLLM 团队已经合作制定了一个多阶段路线图。这次整合将为 vLLM 引入 P/D&#xff08;Prefill/Decod…

Java中不太常见的语法-总结

简介 读源码时&#xff0c;或者看同事写的代码&#xff0c;经常看到一些不太常见的语法&#xff0c;这里做一个总结 不太常见的语法 成员变量的默认值 案例&#xff1a; public class Person2 {private String name "张三";private Integer age;public String getNa…

Easytier异地组网与移动光猫GS220-s

Easytier异地组网与Nginx反向代理_--relay-network-whitelis easytier-CSDN博客 上一篇文章介绍了Easytier实现异地组网&#xff0c;基于Windows应用&#xff0c;本篇将探讨如何将Easytier写入光猫GS220-s中&#xff0c;实现更方便的家庭组网。 一、Telnet移动光猫GS220-s 1…

卫星信号和无线信号的设备厂商

以下是一些与卫星信号相关的公司&#xff1a;中国卫通集团股份有限公司&#xff1a;中国航天科技集团有限公司从事卫星运营服务业的核心专业子公司&#xff0c;是中国唯一拥有通信卫星资源且自主可控的卫星通信运营企业。运营管理着多颗在轨民商用通信广播卫星&#xff0c;覆盖…

HyperPlonk 的硬件友好性

1. 引言 在工业界广泛使用的 Plonk SNARK 协议高度依赖 NTT 来完成计算。HyperPlonk 是 Plonk 的一个变种&#xff0c;它试图通过用 Sumcheck 替代 NTT&#xff08;以及其它改进&#xff09;来提升并行性。Ingonyama团队认为&#xff1a; Sumcheck 在 HyperPlonk 中所谓的并行…

Visual Studio内置环境变量有哪些

在 Visual Studio 中&#xff0c;内置变量&#xff08;也称为宏&#xff09;可以用于在项目配置中指定特定的路径、环境变量或其他值。这些变量可以在项目的属性页面中使用&#xff0c;也可以在代码中使用。以下是一些常用的内置变量及其用途&#xff1a; 常用内置变量 $(Solut…

大模型入门学习微调实战:基于PyTorch和Hugging Face电影评价情感分析模型微调全流程(附完整代码)手把手教你做

深入浅出&#xff1a;如何训练一个属于你的大模型&#xff1f; “一个强大的大模型&#xff0c;究竟是如何训练出来的&#xff1f;” 本文将基于行业共识&#xff0c;为您详细拆解大模型的完整训练流程&#xff0c;并提供一个基于开源模型和数据集的实战代码示例&#xff0c;…

零、2025 年软件设计师考试大纲

一、考试说明 1.考试目标 通过本考试的合格人员能根据软件开发项目管理和软件工程的要求&#xff0c;按照系统总体设计规格说明书进行软件设计&#xff0c;编写程序设计规格说明书等相应的文档&#xff0c;组织和指导程序员编写、调试程序&#xff0c;并对软件进行优化和集成…

uniapp npm安装形式 全局分享和按钮分享设置

全局分享方法新建一个shareUtil.ts方法import { storageConfig } from /config/storageConfig; export default {data() {return {miniShareOptions: {title: 标题,path: /pages/tabbar/index?inviteCode,summary: 描述,imageUrl: /userPages/static/img/invitation_h_bg.png,…

【数据结构】树和二叉树——树和森林

目录树和二叉树树和森林树的存储结构双亲表示法孩子表示法孩子兄弟表示法森林与二叉树的转换树和森林的遍历树的先根遍历树的后根遍历树的层次遍历森林的先序遍历森林的中序遍历树的应用求树的深度输出树中所有从根到叶子的路径的算法建树的存储结构的算法哈夫曼树与哈夫曼编码…

【小宁学习日记5 PCB】电路定理

目录 一、先搞懂&#xff1a;原理图的 “构成密码” &#xff08;1&#xff09;连接线&#xff1a;别被 “直线” 骗了&#xff01; &#xff08;2&#xff09;结点&#xff1a;红色小圆点才是 “真・连接” &#xff08;3&#xff09;网络标签&#xff1a;“无形的连线” …

ans1语法的一个例子nt5inf.cat

第二部分&#xff1a;语法第一部分&#xff1a;头部语法第一部分A&#xff1a;0x30 类型位0x10SEQUENCE and SEQUENCE OF10语法第一部分B&#xff1a;83 长度3个字节&#xff0c;如果为1个字节&#xff0c;第一部分B则没有。语法第一部分C&#xff1a;长度 0x09 …

三电平逆变器SVPWM控制(无解耦功能)与谐波分析

三电平逆变器的空间矢量脉宽调制(SVPWM)控制方法&#xff0c;重点分析在不使用解耦控制的情况下实现5%谐波含量的技术方案。我们将使用MATLAB/Simulink进行建模和仿真分析。 一、三电平逆变器基本原理 三电平逆变器相比传统两电平逆变器具有以下优势&#xff1a; 输出电压波形质…

模拟实现C++中的string类型:从底层理解字符串操作

string前言核心成员变量设计构造函数与析构函数默认构造函数从C风格字符串构造填充构造拷贝构造函数迭代器范围构造析构函数基本操作实现迭代器支持容量管理元素访问字符串修改操作拼接操作插入与删除字符串查找操作运算符重载总结每文推荐前言 在C中&#xff0c;std::string是…

pdf转ofd之移花接木

文章目录1.pdf转ofd的方法1.1 spire.pdf.free1.2 ofdrw2.移花接木3.总结1.pdf转ofd的方法 1.1 spire.pdf.free 这个是一个半开源的类库&#xff0c;免费版本的在转换的时候会有一个10的限制&#xff0c;所以不推荐使用&#xff0c;具体教程网上都有&#xff0c;这里只是分享有…

用【Coze】实现文案提取+创作

在AI技术飞速发展的当下&#xff0c;打造专属智能应用成为不少人的向往。今天&#xff0c;就带大家走进字节跳动的扣子Coze平台&#xff0c;看看如何借助它搭建智能体&#xff0c;还会介绍AI工作流&#xff0c;以及详细的Coze搭建步骤&#xff0c;开启你的AI创作之旅&#xff5…

buuctf——web刷题第5页

第五页 目录 [EIS 2019]EzPOP [WMCTF2020]Make PHP Great Again 2.0 [BSidesCF 2020]Hurdles [安洵杯 2019]iamthinking [GWCTF 2019]mypassword [HFCTF2020]BabyUpload [NewStarCTF 2023 公开赛道]include 0。0 [SWPU2019]Web4 [PASECA2019]honey_shop [Black Watc…

果蔬采摘机器人:自动驾驶融合视觉识别,精准定位,高效作业

在智慧农业的快速发展中&#xff0c;果蔬采摘机器人以其自动驾驶技术与视觉识别技术的完美融合&#xff0c;正逐步成为农业生产中的重要力量。这些机器人不仅实现了对果蔬的精准定位&#xff0c;还显著提高了采摘效率&#xff0c;展现了强大的技术优势。一、自动驾驶技术的引领…

2025年职业发展关键证书分析:提升专业能力的路径选择

在当今职场环境中&#xff0c;专业能力的提升已成为职业发展的重要方面。各类专业证书作为系统学习与能力验证的方式&#xff0c;受到越来越多职场人士的关注。本文基于当前行业发展趋势&#xff0c;分析8个在不同领域具有代表性的专业资格认证&#xff0c;为职场人士提供参考信…

【Qt】QCryptographicHash 设置密钥(Key)

QCryptographicHash 本身不能设置密钥&#xff08;Key&#xff09;。 它是一个用于计算非密钥型加密哈希的函数&#xff0c;其设计目的和 HMAC 或加密算法完全不同。 下面我详细解释为什么&#xff0c;以及如何正确地实现你可能想要的功能。 1. QCryptographicHash 的核心功能&…