3969: pq

2024-03-08 23:58
文章标签 pq 3969

本文主要是介绍3969: pq,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

时间限制: 1 Sec 内存限制: 512 MB O2
提交: 60 解决: 22
[提交][状态][博客][加入收藏]
题目描述
小q 的女朋友送给小q nn个整数。但是这些数太大了,小q 的女朋友拿不动,于是拜托小q把这些数减少一些。
小q 每次可以选择其中的两个x,y (不能同时选择同一个数) 变成x−P,y−Q,现在他希望能知道最多能帮女朋友减掉多少P,Q。
输入
第一行一个数表示n。
第二行由空格隔开的n个数。
第三行两个数,表示p,q。
输出
一行一个数,表示能减掉的P和Q的总和。
样例输入
输入样例1
2
100 100
50 50
输入样例2
3
50 250 50
50 100
输入样例3
4
123 456 789 555
58 158
样例输出
输出样例1
200
输出样例2
300
输出样例3
1728
提示
对于前20%的数据,n≤5n≤5;
对于100%的数据,1≤n≤50,ci≤2000,50≤P,Q≤2000。
来源
2018年10月hnsdfz集训

[提交][状态]

题解

考虑暴力,由数据发现每一个数被减的次数不超过40,而我们关心的只是每个数被减去p,q的次数x,y,枚举x可求得y,那么枚举每一个数的x,即可判断是否合法,取最大值即可。
考虑优化,由于在枚举的过程中,对于新的一个数,已知x,y,我们关心的只有前面的被减去且还未被匹配的p,q的个数总和(用此来判断能多匹配多个),而不必关心每个数分别被减去多少p、q,故状态可以减少。那么用DP表示,设F[i][j][k]为前i个数剩j个p,k个q需要匹配,最多能减去多少,转移分讨一下即可。而j、k均不为0时,它们都不大于40,一个数为0时,另一个数不大于2000,故状态数不会太多,时间效率正确。

这篇关于3969: pq的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/788851

相关文章

电力系统潮流计算的计算机算法(四)——PQ快速解耦潮流算法

本篇为本科课程《电力系统稳态分析》的笔记。 本篇为这一章的第四篇笔记。上一篇传送门。 潮流计算的快速解耦法 牛顿-拉夫逊法潮流计算,主要的工作量在于形成雅可比矩阵和求解修正方程。由于雅可比矩阵的阶数为n+m-1,约为节点总数的两倍,非对称矩阵,且在迭代过程中需要不断的变化,所以大规模的电力系统中应用该算法很费时费力。 PQ分解法潮流计算的修正方程 有一种快速解耦法,是最有效且应用最广。电

PQ(product quantization) 算法---(二)

PQ(productquantization)算法:乘积量化,这里的乘积为笛卡尔积;从字面理解包括了两个过程特征的分组量化过程和类别的笛卡尔积过程。它属于ANN(approximatenearest neighbor)算法。与它相关的算法有E2LSH(EuclideanLocality-SensitiveHashing), KD-trees,K-means。 假设有一个数据集: 由n个D维向量组

PQ(product quantization) 算法---(一)

转自:http://vividfree.github.io/    1. 引言 Product quantization,国内有人直译为乘积量化,这里的乘积是指笛卡尔积(Cartesian product),意思是指把原来的向量空间分解为若干个低维向量空间的笛卡尔积,并对分解得到的低维向量空间分别做量化(quantization)。这样每个向量就能由多个低维空间的量化code组合表示。为简洁描

海思平台(hi3559av100)的pq_sample代码编译过程和执行过程

目录 1.文件目录结构 2.Makefile 3.源代码分析 3.1pq_sample.c文件 3.2pq_stream的注册过程: 3.3pq_control的实现过程:   pq_sample的代码是用于海思的ISP在线调试的代码,本系统是采用的海思的异构方案(linux+liteos)的系统形式,pq_sample的代码是运行于a53上面的liteos系统中,实现了pq_

ANN之乘积量化PQ

一、何为乘积量化 乘积量化(Product Quantization)简称 PQ。是和VLAD算法由法国INRIA实验室一同提出来的,为的是加快图像的检索速度,所以它是一种检索算法。现有的检索算法存在一些弊端,如 kd树不适合维度高的数据,哈希(LSH)适用中小数据集,而乘积量化这类方法,内存占用更小、数据动态增删更方便。 乘积量化的核心思想是分段(划分子空间)和聚类,然后进行最近邻搜索。

linux安装后的PQ分区表#114

ROC 2005.11.29 哎,已经因为安装过Redhat AS4后,导致#114错误,因为数据也太大了,所以没法备份,导致所有数据完全丢失,昨天有发生了相同的问题,安装SUSE 10.0后,进入光盘启动模式,DOS下PQ还是出现了#114,随后GRUB引导出现故障提示,无法恢复!使用root (hd0,?) setup (hd0)也无济于事。本来有先见之明,备份了分区表,进入Disk Gen

BI神器Power Query(16)-- PQ制作时间维度表(5)

在上一篇博客中,使用【添加列】选项卡中【日期】按钮的相关添加新列,如下图所示。 虽然这些内置功能已经添加了年月日等列,但是实际使用中可能会用到多种不同的形式,例如2019年四季度会记作:Y2019Q4,接下来看看如何在PQ中获取这些不同的日期格式。 依次单击【添加列】=>【自定义列】,在【添加自定义列】对话框中,指定【新列名】为“年份”,输入公式="Y" & Text.From([Year]

BI神器Power Query(15)-- PQ制作时间维度表(4)

在上一篇博客中,使用【重复列】添加新列,如下图所示。 接下来讲解一下【添加列】选项卡中【日期】按钮的使用方法。 如果选中的列不是日期类型,那么多数功能将被禁用,如下图所示。 选中【Date】列,依次单击【日期】下拉按钮=>【年】=>【年】,提取日期中的“年”插入新列,如下图所示。 使用类似的方法插入月和日。 依次单击【日期】下拉按钮=>【月份】=>【月份】依次单击【日期】下拉按钮

BI神器Power Query(14)-- PQ制作时间维度表(3)

在上一篇博客中,根据日期序列新建了文本日期列,如下图所示。 接下来将在时间维度表新建整数型的日期列,使用上一篇博客中添加自定义列的方法可以实现这个要求,本文将使用不同的操作方法来实现。 选中“DataText”列(前三列任何一列都可以),依次单击【添加列】选项卡=>【重复列】,将复制指定列添加新列,新列的数据类型与指定列相同,这里是文本类型。 在列标题上右击,在弹出的快捷菜单中选择【重命名】

BI神器Power Query(13)-- PQ制作时间维度表(2)

在上一篇博客中,创建了日期序列,如下图所示。 接下来我们继续创建时间维度表的其他列,依次单击【添加列】选项卡=>【日期】下拉按钮=>【仅日期】,将添加新列,可以从指定数据列(例如包含日期和时间)中提取“日期”,由于本示例中第一列只有日期,因此新创建的第二列实际上与第一列完全相同。 接下来创建文本日期列,依次单击【添加列】选项卡=>【自定义列】,在弹出的【添加自定义列】对话框中输入新列名和公