/*
不要低头,不要放弃,不要气馁,不要慌张。
题意:
给一列数a,可以进行k次操作,每次操作可以选取任意一个数加x或者减x,x是固定的数。求如何才能使得这个数列所有数乘积最小。
思路:
贪心...讨论这列数中负数的个数,如果为偶数,那么把数列中绝对值最小的数使其往0的方向前进。
如果为奇数,同样选择绝对值最小的数,使其往背离0的方向前进。
道理很简单...自己写写就看出来了...
wa点:
有一个细节没处理好,如果经过某次操作某个数变成0了...那么我们的负数记录并没有更新...
默认下一次会减...因为我们需要构造一个新的负数...所以这里gg了...
*/ #include<bits/stdc++.h>
#define N 200050
using namespace std;
long long jilu[N];
long long ans[N];
struct st{
st(){}
st(long long a,int aa){
bb=a;
jue=max(a,-a);
id=aa;
}
int id;
long long bb,jue;
};
bool operator < (const st &a,const st &b){
return a.jue<b.jue;
}
multiset<st> ms;
int main()
{
int n,k;
long long x;
int zero=,zheng=,fu=;
scanf("%d%d%lld",&n,&k,&x);
int ddd=;
for(int i=;i<=n;i++){
scanf("%lld",jilu+i);
if(jilu[i]!=-)ddd++;
if(jilu[i]==)zero++;
else if(jilu[i]>)zheng++;
else fu++;
}
for(int i=;i<=n;i++)ms.insert(st(jilu[i],i));
st tmp;
for(int i=;i<=k;i++){
tmp=*ms.begin();
ms.erase(ms.begin());
if(fu%==){
if(tmp.jue<=x)fu++;
if(tmp.bb>=){
tmp.bb-=x;
if(tmp.bb==&&i!=k){
i++;
tmp.bb-=x;
}
}
else{
tmp.bb+=x;
if(tmp.bb==&&i!=k){
tmp.bb+=x;
i++;
}
}
ms.insert(st(tmp.bb,tmp.id));
}
else{
if(tmp.bb>=)tmp.bb+=x;
else tmp.bb-=x;
ms.insert(st(tmp.bb,tmp.id));
}
}
multiset<st>::iterator it;
for(it=ms.begin();it!=ms.end();it++){
ans[it->id]=it->bb;
}
for(int i=;i<=n;i++){
printf("%lld ",ans[i]);
}
}

Codeforces 721D [贪心]的更多相关文章

  1. Maxim and Array CodeForces - 721D (贪心)

    大意: 给定序列, 每次操作选择一个数+x或-x, 最多k次操作, 求操作后所有元素积的最小值 贪心先选出绝对值最小的调整为负数, 再不断选出绝对值最小的增大它的绝对值 #include <io ...

  2. CodeForces - 721D 贪心+优先队列(整理一下优先队列排序情况)

    题意: 给你一个长度为n的数组,你可以对其中某个元素加上x或者减去x,这种操作你最多只能使用k次,让你输出操作后的数组,且保证这个数组所有元素的乘积尽可能小 题解: 在这之前我们要知道a*b>a ...

  3. CodeForces - 721D Maxim and Array (贪心)

    Recently Maxim has found an array of n integers, needed by no one. He immediately come up with idea ...

  4. CodeForces - 893D 贪心

    http://codeforces.com/problemset/problem/893/D 题意 Recenlty Luba有一张信用卡可用,一开始金额为0,每天早上可以去充任意数量的钱.到了晚上, ...

  5. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) Problem D (Codeforces 831D) - 贪心 - 二分答案 - 动态规划

    There are n people and k keys on a straight line. Every person wants to get to the office which is l ...

  6. Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) Problem D (Codeforces 828D) - 贪心

    Arkady needs your help again! This time he decided to build his own high-speed Internet exchange poi ...

  7. CodeForces - 93B(贪心+vector<pair<int,double> >+double 的精度操作

    题目链接:http://codeforces.com/problemset/problem/93/B B. End of Exams time limit per test 1 second memo ...

  8. C - Ordering Pizza CodeForces - 867C 贪心 经典

    C - Ordering Pizza CodeForces - 867C C - Ordering Pizza 这个是最难的,一个贪心,很经典,但是我不会,早训结束看了题解才知道怎么贪心的. 这个是先 ...

  9. Codeforces 570C 贪心

    题目:http://codeforces.com/contest/570/problem/C 题意:给你一个字符串,由‘.’和小写字母组成.把两个相邻的‘.’替换成一个‘.’,算一次变换.现在给你一些 ...

随机推荐

  1. 【USB多路电源】layout

    USB多路电源的layout 图:第一次layout 缺点: 1.散,空间利用率不高: 2.不整齐: 3.没有符合左上进,右下出(当然也不必墨守): 4.输出排针没有放到最边上: 5.信号流向问题 6 ...

  2. Node.js 全局对象

    JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可 以在程序的任何地方访问,即全局变量. 在浏览器JavaScript 中,通常window 是全 ...

  3. valueOf() toString() typeof instanceof

    ******在chrome console中运行{a:1}.valueOf(); 报错:"SyntaxError: Unexpected token . ",这是由于{}被js引擎 ...

  4. VMware安装虚拟系统问题

    问题1: 我装了vmware 6.5.2,用它来安装深度的 GhostXP 时,在分区之后重启出现Invalid system disk,Replace the disk and then press ...

  5. hdu 2073

    ps:感觉纯数学题.....我的思路就是找规律,发现dp(x+y) 就是 (0,x+y)的值,然后再加上x*根号2.就是他的距离.然后两个距离相减的绝对值就是两个点之间的距离了. 代码: #inclu ...

  6. 三部曲一(数据结构)-1020-Ultra-QuickSort

    通过这道题我大体理解了树状数组的原理和用法,完全用的别人的算法,我把别人算法看懂之后有自己敲了一遍,不得不说这算法真是高深巧妙啊,我开始看都看不懂,还是在别人的讲解下才看懂的,我觉得有必要写个博客记录 ...

  7. linux命令:less

    1.命令介绍: less用来逐页输出文件内容,less相比more功能更加强大,less可以前后翻页,前后搜索. 2.命令格式: less [选项] 文件 3.命令参数: -b <缓冲区大小&g ...

  8. java 后台校验格式

    package com.hengxin.qianee.utils; import java.net.InetAddress; public class RegexUtils { /** * 用户名是否 ...

  9. Python::OS 模块 -- 文件和目录操作

    os模块的简介参看 Python::OS 模块 -- 简介 os模块的进程管理 Python::OS 模块 -- 进程管理 os模块的进程参数 Python::OS 模块 -- 进程参数 os模块中包 ...

  10. 全面理解面向对象的 JavaScript (share)

     以下分享自:  http://www.ibm.com/developerworks/cn/web/1304_zengyz_jsoo/   简介: JavaScript 函数式脚本语言特性以及其看似随 ...