【Codeforces Round #432 (Div. 1) B】Arpa and a list of numbers
【链接】h在这里写链接
【题意】
【题解】
sum[R-1]-sum[R-x/y-1];
【错的次数】
【反思】
【代码】
/*
所有数字都等于1
①把n-1个数字删掉,剩下一个数字,再递增1? (n-1)*x + y = n*x + y - x
②或者,把n个数字都加上1,花费为n*y
n*x + y - x > n*y
n*x - n*y > x - y;
n*(x-y) > (x-y)
如果x > y
选第二种
如果x < y
选第一种
但是,也可以其中一些数字加上1,剩下的全删掉.
一个数字加上1之后,就不用删掉了.
所以,哪一个花费比较低,就优先操作那一个就好.
那最后如果全是选删掉怎么办?
那就只能留一个选增加了。
枚举最后的gcd为i.
然后如果一个数字比它小的话,就看一下加的费用和删的费用,哪一个比较大。
选那个费用比较小的。
然后选取费用差值最小的那个,以防全都被删掉了。
O(N^2)的复杂度了
比i小的数字,肯定是要删掉的->不一定,可以加到gcd.
但加到一定程度,就一定要删掉的。
因为删掉的花费不变,但是你一直增加,花费是会变多的。
但是也不一定能被i整除,整体的gcd就是i啊
give up. */ #include <bits/stdc++.h>
using namespace std; const int N = 2e6; int n;
long long num[N+10], sum[N+10],x,y,ans = -1; void inandpre() {
cin >> n >> x >> y;
for (int i = 1; i <= n; i++) {
int t;
cin >> t;
num[t]++, sum[t] += t;
} for (int i = 1; i <= N; i++)
sum[i] += sum[i - 1],num[i]+=num[i-1];
} const int M = 1e6;
bool iszs[M + 10];
vector <int> zsb;
void getzhishu() {
memset(iszs, true,sizeof iszs);
for (int i = 2; i <= M; i++){
if (iszs[i]) zsb.push_back(i);
int len = zsb.size();
for (int j = 0; j <= len - 1; j++) {
int t = zsb[j];
if (i*t > M) break;
iszs[i*t] = false;
if (i%t == 0) break;
}
}
} void meiju() {
for (int ii = 0; ii <= (int) zsb.size()-1; ii++) {
long long rest = 0;
int i = zsb[ii];
for (int j = i; j <= N; j += i) {
long long temp = x / y;
long long ju = j - temp,l = j-i+1,r = j;
ju = max(ju, l);
rest += x*(num[ju-1] - num[l - 1]);//删掉
rest += y*((num[r - 1] - num[ju - 1])*r - (sum[r-1]-sum[ju-1]));//加上
}
if (ans == -1)
ans = rest;
else
ans = min(ans, rest);
}
} void out() {
cout << ans << endl;
} int main() {
//freopen("F:\\rush.txt", "r", stdin);
ios::sync_with_stdio(0);
inandpre();
getzhishu();
meiju();
out();
return 0;
}
【Codeforces Round #432 (Div. 1) B】Arpa and a list of numbers的更多相关文章
- 【Codeforces Round #432 (Div. 2) A】 Arpa and a research in Mexican wave
[链接]h在这里写链接 [题意] 在这里写题意 [题解] t<=k,输出t t>=n,输出k-t+n 其他情况都是k [错的次数] 0 [反思] 在这了写反思 [代码] /* */ #in ...
- 【Codeforces Round #432 (Div. 2) B】Arpa and an exam about geometry
[链接]h在这里写链接 [题意] 给你3个点A,B,C 问你能不能将纸绕着坐标轴上的一点旋转.使得A与B重合,B与C重合 [题解] 这3个点必须共圆. 则A,B,C不能为一条直线.否则无解. 共圆之后 ...
- 【Codeforces Round #432 (Div. 1) A】 Five Dimensional Points
[链接]点击打开链接 [题意] 给你n个5维的点. 然后让你以其中的某一个点作为起点a. 另选两个点b,c. 组成向量a->b,a->c 如果所有的a->b和a->c的夹角都是 ...
- 【Codeforces Round #420 (Div. 2) C】Okabe and Boxes
[题目链接]:http://codeforces.com/contest/821/problem/C [题意] 给你2*n个操作; 包括把1..n中的某一个数压入栈顶,以及把栈顶元素弹出; 保证压入和 ...
- 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees
[题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...
- 【Codeforces Round #420 (Div. 2) A】Okabe and Future Gadget Laboratory
[题目链接]:http://codeforces.com/contest/821/problem/A [题意] 给你一个n*n的数组; 然后问你,是不是每个位置(x,y); 都能找到一个同一行的元素q ...
- 【Codeforces Round #423 (Div. 2) C】String Reconstruction
[Link]:http://codeforces.com/contest/828/problem/C [Description] 让你猜一个字符串原来是什么; 你知道这个字符串的n个子串; 且知道第i ...
- 【Codeforces Round #423 (Div. 2) B】Black Square
[Link]:http://codeforces.com/contest/828/problem/B [Description] 给你一个n*m的格子; 里面包含B和W两种颜色的格子; 让你在这个格子 ...
- 【Codeforces Round #423 (Div. 2) A】Restaurant Tables
[Link]:http://codeforces.com/contest/828/problem/A [Description] 有n个组按照时间顺序来餐馆; 每个组由一个人或两个人组成; 每当有一个 ...
随机推荐
- OpenCASCADE7.3.0 is available for download
OpenCASCADE7.3.0 is available for download OPEN CASCADE is pleased to announce a new public release ...
- js插件---JS表格组件BootstrapTable行内编辑解决方案x-editable
js插件---JS表格组件BootstrapTable行内编辑解决方案x-editable 一.总结 一句话总结:bootstrap能够做为最火的框架,绝对不仅仅只有我看到的位置,它应该还有很多位置可 ...
- POJ 1904 思路题
思路: 思路题 题目诡异地给了一组可行匹配 肯定有用啊-. 就把那组可行的解 女向男连一条有向边 如果男喜欢女 男向女连一条有向边 跑一边Tarjan就行了 (这个时候 环里的都能选 "增广 ...
- ActionListener三种实现
/** * Simple1.java - 处理事件的第一种方法 * 在这个例子中,利用一个ActionListener来监听事件源产生的事件 * 用一些if语句来决定是哪个事件源 */ import ...
- js实现 导航移入移出效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Ubuntu 16.04下的LAMP环境配置
在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ...
- BZOJ4652: [Noi2016]循环之美(莫比乌斯反演,杜教筛)
Description 牛牛是一个热爱算法设计的高中生.在他设计的算法中,常常会使用带小数的数进行计算.牛牛认为,如果在 k 进制下,一个数的小数部分是纯循环的,那么它就是美的.现在,牛牛想知道:对 ...
- ELK+KAFKA安装部署指南
一.ELK 背景 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如: ...
- [Docker 官方文档] 理解 Docker
http://segmentfault.com/a/1190000002609286 什么是 Docker? Docker 是一个用于开发.交付和执行应用的开放平台,Docker 设计用来更快的交付你 ...
- apache activemq Failed to bind to server socket 61616
windows环境上: 首先 nestat -ano | findstr "61616" 查看是否有进程,有的话kill掉, 若没有发现,查看windows Internet Co ...