A1-2017级算法上机第一次练习赛 P ModricWang's Number Theory II

题目描述

ModricWang has found a list containing n numbers. He calls a list bad if and only if it is not empty and gcd (see notes section for more information) of numbers in the list is 1.

ModricWang can perform two types of operations:

  • Choose a number and delete it with cost x.
  • Choose a number and increase it by 1 with cost y.

ModricWang can apply these operations to as many numbers as he wishes, and he is allowed to apply the second operation arbitrarily many times on the same number.

Help ModricWang to find the minimum possible cost to make the list good.

输入

First line contains three integers n,xn,x and y(1?≤?n?≤?5?105,1?≤x,?y?≤?109)y(1?≤?n?≤?5·105,1?≤x,?y?≤?109) — the number of elements in the list and the integers x and y.

Second line contains n integers a1,?a2,?...,?an(1?≤?ai?≤?106)a1,?a2,?...,?an(1?≤?ai?≤?106) — the elements of the list.

输出

Print a single integer: the minimum possible cost to make the list good.

输入样例

4 23 17

1 17 17 16

输出样例

40

Note

In example, number 1 must be deleted (with cost 23) and number 16 must increased by 1 (with cost 17).

A gcd (greatest common divisor) of a set of numbers is the maximum integer that divides all integers in the set. Read more about gcd here.

思路

A1-2017级算法上机第一次练习赛 P ModricWang's Number Theory II

原文地址:https://www.cnblogs.com/zjsyzmx0527/p/10182676.html

时间: 2024-11-04 04:20:41

A1-2017级算法上机第一次练习赛 P ModricWang's Number Theory II的相关文章

A1-2017级算法上机第一次练习赛 B ModricWang和数论

题目描述 给定一个正整数a,对于所有的正整数b,求a%b可能有多少种不同的值? 输入 一个整数a, 1≤a≤10181≤a≤1018 输出 一个整数,a%b可能出现的不同的值的个数 输入样例 3 输出样例 3 思路 懒得写了.应该也不会有人需要看. 参考代码 #include<stdio.h>   int main()   {       long long a;       scanf("%lld",&a);       if(a%2 == 0)         

A1-2017级算法上机第一次练习赛 D 水水的Horner Rule

题目描述 霍纳(Horner)规则是一种将一元n次多项式的求值问题转化为n个一次式的算法.采用最小的乘法运算策略,用于求多项式A(x)=a0+a1x+a2x^2+...+an-1x^n-1+anx^n在x处的值,转化为A(x)=a0+x(a1+x(a2+...+x(an-1+xan)···)).其伪代码如下: y = 0 for i = n downto 0 y = ai + x * y 好的,现在你已经掌握了本题的核心算法! AlvinZH发现,进制之间的转换其实就是霍纳法则的简单应用,如八进

A1-2017级算法上机第一次练习赛 I jhljx学位运算

Problem Description jhljx在C++程序设计课程中学习了位运算这个高端的知识,现在他开始上算法课,决定活学活用.. 位运算中异或是一个比较神奇的操作,有0^1=1,1^0=1,0^0=0,1^1=0. 于是jhljx给你了一个长度为n的数组,让你求出该数组的某个子数组(数组中下标连续的一些元素组成的数组)的异或值之和. Input 输入多组数据.对于每组数据,第一个行为数据组数n(1<=n<=1000000)第二行为n个数组元素(保证元素在int范围内)第三行为一个正整数

A1-2017级算法上机第一次练习赛 L Bamboo的OS实验

题目描述 每周五Bamboo都要"恋恋不舍"的早退OS的上机实验千里迢迢来看望大家上机 :) 于是第二天Bamboo就要着手赶OS的ddl. 是这样,这次的OS实验给了x个编号为1-30的命令(比如5个命令1 2 3 3 3 ),要求在小黑窗上自己应用. 假设Bamboo每1分钟能完成一个命令,完成这些命令的顺序无所谓,以1分钟为单元,在1分钟里,Bamboo可以选择完成一个命令或者思考人生.更重要的是,为了不产生崩溃情绪,Bamboo要求在执行两个相同编号的命令之间必须要有n个分钟单

A1-2017级算法上机第一次练习赛 A The stupid owls

题目描述 Bamboo recently bought an owl for sending and receiving letters. Every owl will bring a letter to exactly one person, so normally Bamboo's owl will only bring letters for her. Although most owls sold in the magical stores are extremely conscient

A1-2017级算法上机第一次练习赛 G 股票交易

题目描述 一般一家公司的股票价格是不稳定的,就像图里所展示的这样,每时每刻的价格都在变.(图片来源网络) 现在,有一份很长很长的连续时间点股票价格数据(按时间从先到后顺序),老板需要你快速的寻找在这段数据范围内一次买卖股票的每股最大收益(假设所有人买卖股票都在给定时间点的数据范围内). 要想解决这个问题,你该怎么办? 输入 多组测试数据(10组左右),以EOF结尾. 每组测试数据分为两行第一行为数组长度n,正整数,代表股票价格数据长度,数据范围为0<n<=1000000 第二行为n个正整数,为

A1-2017级算法上机第一次练习赛 K 画个圈圈诅咒你

题目描述 AlvinZH最近很慌,先是被宋老师一句 "和我们有关系吗" 吓的不行,然后又被原老师批判了一番 "害怕" ,小日子整天过的提心吊胆的,没准儿这题就是你们做的AlvinZH的最后一题(不会的,后面还有一题). 不安的AlvinZH只能通过画圈圈诅咒那些威胁世界和平的人来安慰自己,他不是随便的画圈,所有的圈圆心都在同一条直线上,圈圈有大有小.AlvinZH看着这一个个连着的圈圈,突然想知道哪些圈圈是完全分开的. 请你帮他计算一下有多少对圈圈是完全分开的吧!

2016级算法期末模拟练习赛-C.AlvinZH的青春记忆II

1084 AlvinZH的青春记忆II 思路 中等题,二分. 简化题意,一列数字,每秒会自动-1,特殊操作可以使一个数在1s内-k,问这些数都减至0需要多久. 答案肯定在[1,xMax]之间,采用二分的方法找到最小时间. 如何判断一个时间值是否符合要求呢?对于≤mid的数,自然消减就好,对于>mid的数,需要特殊操作,设特殊操作次数为s,则有 \(k*s + (mid-s) = Xi\),解得 \(s = (X[i]-mid) / (k-1)\). 分析 注意三个问题, 第一,除0问题,k-1可

2017级算法模拟上机准备篇(一)

回顾一下往年的考题知识点: The Last Battle!! 2014级算法期末上机 简单题--I wanna be the 升级者Ⅰ 结构体排序  STL:sort() 简单题--I wanna be the 升级者Ⅱ 二分 :STL : lower_bound () 简单题--Railway Station 数据结构 : 栈操作模拟 简单题--我在东北玩泥巴:博弈论 中等题--零崎的考试:DP 中等题--伪流水线调度:费用流 网络流 中等题--果园连连看:BFS 图论 难题--线段和直线: